summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugues Hiegel <root@paranoid>2014-08-05 16:44:07 +0200
committerHugues Hiegel <root@paranoid>2014-08-05 16:44:07 +0200
commitf91f8533678c388b879d9e999a6bcc9e22ad7e19 (patch)
treec0099e25a932399d6cd1066607a42e7fe220b977
parentec116d33c22b371328c8557158736e3d2ee479a8 (diff)
lot of stuff
-rw-r--r--.htaccess24
-rw-r--r--index.php11
-rw-r--r--main.inc.php.dist9
-rw-r--r--plugins/acl/acl.php56
-rw-r--r--plugins/acl/config.inc.php.dist16
-rw-r--r--plugins/acl/localization/az_AZ.inc11
-rw-r--r--plugins/acl/localization/bs_BA.inc9
-rw-r--r--plugins/acl/localization/ca_ES.inc9
-rw-r--r--plugins/acl/localization/cs_CZ.inc29
-rw-r--r--plugins/acl/localization/cy_GB.inc9
-rw-r--r--plugins/acl/localization/da_DK.inc11
-rw-r--r--plugins/acl/localization/de_CH.inc9
-rw-r--r--plugins/acl/localization/de_DE.inc9
-rw-r--r--plugins/acl/localization/en_GB.inc10
-rw-r--r--plugins/acl/localization/en_US.inc4
-rw-r--r--plugins/acl/localization/eo.inc35
-rw-r--r--plugins/acl/localization/es_ES.inc11
-rw-r--r--plugins/acl/localization/et_EE.inc26
-rw-r--r--plugins/acl/localization/fa_IR.inc37
-rw-r--r--plugins/acl/localization/fi_FI.inc56
-rw-r--r--plugins/acl/localization/fr_FR.inc9
-rw-r--r--plugins/acl/localization/gl_ES.inc73
-rw-r--r--plugins/acl/localization/he_IL.inc11
-rw-r--r--plugins/acl/localization/hu_HU.inc9
-rw-r--r--plugins/acl/localization/hy_AM.inc10
-rw-r--r--plugins/acl/localization/id_ID.inc9
-rw-r--r--plugins/acl/localization/it_IT.inc9
-rw-r--r--plugins/acl/localization/ja_JP.inc9
-rw-r--r--plugins/acl/localization/ko_KR.inc11
-rw-r--r--plugins/acl/localization/lt_LT.inc11
-rw-r--r--plugins/acl/localization/nb_NO.inc10
-rw-r--r--plugins/acl/localization/nl_NL.inc9
-rw-r--r--plugins/acl/localization/nn_NO.inc10
-rw-r--r--plugins/acl/localization/pl_PL.inc11
-rw-r--r--plugins/acl/localization/pt_BR.inc9
-rw-r--r--plugins/acl/localization/pt_PT.inc11
-rw-r--r--plugins/acl/localization/ro_RO.inc11
-rw-r--r--plugins/acl/localization/ru_RU.inc9
-rw-r--r--plugins/acl/localization/sk_SK.inc15
-rw-r--r--plugins/acl/localization/sl_SI.inc9
-rw-r--r--plugins/acl/localization/sr_CS.inc77
-rw-r--r--plugins/acl/localization/sv_SE.inc9
-rw-r--r--plugins/acl/localization/tr_TR.inc11
-rw-r--r--plugins/acl/localization/vi_VN.inc10
-rw-r--r--plugins/acl/localization/zh_CN.inc18
-rw-r--r--plugins/acl/localization/zh_TW.inc9
-rw-r--r--plugins/acl/package.xml2
-rw-r--r--plugins/acl/skins/classic/acl.css4
-rw-r--r--plugins/acl/skins/larry/acl.css24
-rw-r--r--plugins/additional_message_headers/additional_message_headers.php4
-rw-r--r--plugins/additional_message_headers/config.inc.php.dist10
-rw-r--r--plugins/archive/archive.js44
-rw-r--r--plugins/archive/archive.php188
-rw-r--r--plugins/archive/localization/ar_SA.inc21
-rw-r--r--plugins/archive/localization/az_AZ.inc3
-rw-r--r--plugins/archive/localization/be_BE.inc23
-rw-r--r--plugins/archive/localization/bg_BG.inc15
-rw-r--r--plugins/archive/localization/br.inc12
-rw-r--r--plugins/archive/localization/bs_BA.inc3
-rw-r--r--plugins/archive/localization/ca_ES.inc3
-rw-r--r--plugins/archive/localization/cs_CZ.inc3
-rw-r--r--plugins/archive/localization/cy_GB.inc3
-rw-r--r--plugins/archive/localization/da_DK.inc3
-rw-r--r--plugins/archive/localization/de_CH.inc3
-rw-r--r--plugins/archive/localization/de_DE.inc3
-rw-r--r--plugins/archive/localization/el_GR.inc3
-rw-r--r--plugins/archive/localization/en_GB.inc12
-rw-r--r--plugins/archive/localization/en_US.inc11
-rw-r--r--plugins/archive/localization/eo.inc12
-rw-r--r--plugins/archive/localization/es_AR.inc3
-rw-r--r--plugins/archive/localization/es_ES.inc3
-rw-r--r--plugins/archive/localization/et_EE.inc3
-rw-r--r--plugins/archive/localization/fa_IR.inc9
-rw-r--r--plugins/archive/localization/fi_FI.inc3
-rw-r--r--plugins/archive/localization/fr_FR.inc3
-rw-r--r--plugins/archive/localization/gl_ES.inc3
-rw-r--r--plugins/archive/localization/he_IL.inc3
-rw-r--r--plugins/archive/localization/hr_HR.inc12
-rw-r--r--plugins/archive/localization/hu_HU.inc3
-rw-r--r--plugins/archive/localization/hy_AM.inc12
-rw-r--r--plugins/archive/localization/id_ID.inc3
-rw-r--r--plugins/archive/localization/it_IT.inc3
-rw-r--r--plugins/archive/localization/ja_JP.inc3
-rw-r--r--plugins/archive/localization/km_KH.inc12
-rw-r--r--plugins/archive/localization/ko_KR.inc3
-rw-r--r--plugins/archive/localization/ku.inc12
-rw-r--r--plugins/archive/localization/lt_LT.inc3
-rw-r--r--plugins/archive/localization/lv_LV.inc25
-rw-r--r--plugins/archive/localization/ml_IN.inc12
-rw-r--r--plugins/archive/localization/mr_IN.inc12
-rw-r--r--plugins/archive/localization/nb_NO.inc3
-rw-r--r--plugins/archive/localization/nl_NL.inc3
-rw-r--r--plugins/archive/localization/nn_NO.inc3
-rw-r--r--plugins/archive/localization/pl_PL.inc3
-rw-r--r--plugins/archive/localization/pt_BR.inc3
-rw-r--r--plugins/archive/localization/pt_PT.inc3
-rw-r--r--plugins/archive/localization/ro_RO.inc3
-rw-r--r--plugins/archive/localization/ru_RU.inc3
-rw-r--r--plugins/archive/localization/si_LK.inc12
-rw-r--r--plugins/archive/localization/sk_SK.inc21
-rw-r--r--plugins/archive/localization/sl_SI.inc3
-rw-r--r--plugins/archive/localization/sr_CS.inc12
-rw-r--r--plugins/archive/localization/sv_SE.inc3
-rw-r--r--plugins/archive/localization/tr_TR.inc3
-rw-r--r--plugins/archive/localization/uk_UA.inc12
-rw-r--r--plugins/archive/localization/vi_VN.inc12
-rw-r--r--plugins/archive/localization/zh_CN.inc3
-rw-r--r--plugins/archive/localization/zh_TW.inc3
-rw-r--r--plugins/archive/package.xml48
-rw-r--r--plugins/autologon/autologon.php4
-rw-r--r--plugins/database_attachments/database_attachments.php126
-rw-r--r--plugins/database_attachments/package.xml6
-rw-r--r--plugins/debug_logger/debug_logger.php10
-rw-r--r--plugins/debug_logger/runlog/runlog.php2
-rw-r--r--plugins/enigma/README35
-rw-r--r--plugins/enigma/config.inc.php.dist14
-rw-r--r--plugins/enigma/enigma.js206
-rw-r--r--plugins/enigma/enigma.php476
-rw-r--r--plugins/enigma/home/.htaccess2
-rw-r--r--plugins/enigma/lib/enigma_driver.php106
-rw-r--r--plugins/enigma/lib/enigma_driver_gnupg.php305
-rw-r--r--plugins/enigma/lib/enigma_engine.php533
-rw-r--r--plugins/enigma/lib/enigma_error.php62
-rw-r--r--plugins/enigma/lib/enigma_key.php129
-rw-r--r--plugins/enigma/lib/enigma_signature.php34
-rw-r--r--plugins/enigma/lib/enigma_subkey.php57
-rw-r--r--plugins/enigma/lib/enigma_ui.php455
-rw-r--r--plugins/enigma/lib/enigma_userid.php31
-rw-r--r--plugins/enigma/localization/en_US.inc53
-rw-r--r--plugins/enigma/localization/ja_JP.inc49
-rw-r--r--plugins/enigma/localization/ru_RU.inc59
-rw-r--r--plugins/enigma/skins/classic/enigma.css182
-rw-r--r--plugins/enigma/skins/classic/enigma.pngbin1592 -> 0 bytes
-rw-r--r--plugins/enigma/skins/classic/enigma_error.pngbin1960 -> 0 bytes
-rw-r--r--plugins/enigma/skins/classic/key.pngbin1743 -> 0 bytes
-rw-r--r--plugins/enigma/skins/classic/key_add.pngbin1967 -> 0 bytes
-rw-r--r--plugins/enigma/skins/classic/keys_toolbar.pngbin14977 -> 0 bytes
-rw-r--r--plugins/enigma/skins/classic/templates/keyimport.html20
-rw-r--r--plugins/enigma/skins/classic/templates/keyinfo.html17
-rw-r--r--plugins/enigma/skins/classic/templates/keys.html80
-rw-r--r--plugins/enigma/tests/Enigma.php23
-rw-r--r--plugins/filesystem_attachments/filesystem_attachments.php1
-rw-r--r--plugins/filesystem_attachments/package.xml2
-rw-r--r--plugins/help/config.inc.php.dist34
-rw-r--r--plugins/help/content/license.html2
-rw-r--r--plugins/help/help.php74
-rw-r--r--plugins/help/localization/ar_SA.inc3
-rw-r--r--plugins/help/localization/az_AZ.inc3
-rw-r--r--plugins/help/localization/ber.inc1
-rw-r--r--plugins/help/localization/br.inc3
-rw-r--r--plugins/help/localization/bs_BA.inc3
-rw-r--r--plugins/help/localization/ca_ES.inc3
-rw-r--r--plugins/help/localization/cs_CZ.inc3
-rw-r--r--plugins/help/localization/cy_GB.inc3
-rw-r--r--plugins/help/localization/da_DK.inc3
-rw-r--r--plugins/help/localization/de_CH.inc3
-rw-r--r--plugins/help/localization/de_DE.inc3
-rw-r--r--plugins/help/localization/en_GB.inc3
-rw-r--r--plugins/help/localization/en_US.inc4
-rw-r--r--plugins/help/localization/eo.inc3
-rw-r--r--plugins/help/localization/es_ES.inc3
-rw-r--r--plugins/help/localization/et_EE.inc3
-rw-r--r--plugins/help/localization/fa_IR.inc3
-rw-r--r--plugins/help/localization/fi_FI.inc3
-rw-r--r--plugins/help/localization/fr_FR.inc3
-rw-r--r--plugins/help/localization/gl_ES.inc5
-rw-r--r--plugins/help/localization/he_IL.inc3
-rw-r--r--plugins/help/localization/hu_HU.inc3
-rw-r--r--plugins/help/localization/hy_AM.inc3
-rw-r--r--plugins/help/localization/id_ID.inc3
-rw-r--r--plugins/help/localization/it_IT.inc3
-rw-r--r--plugins/help/localization/ja_JP.inc3
-rw-r--r--plugins/help/localization/km_KH.inc3
-rw-r--r--plugins/help/localization/ko_KR.inc3
-rw-r--r--plugins/help/localization/lt_LT.inc3
-rw-r--r--plugins/help/localization/nb_NO.inc3
-rw-r--r--plugins/help/localization/nl_NL.inc3
-rw-r--r--plugins/help/localization/nn_NO.inc3
-rw-r--r--plugins/help/localization/pl_PL.inc3
-rw-r--r--plugins/help/localization/pt_BR.inc3
-rw-r--r--plugins/help/localization/pt_PT.inc3
-rw-r--r--plugins/help/localization/ru_RU.inc3
-rw-r--r--plugins/help/localization/sk_SK.inc3
-rw-r--r--plugins/help/localization/sl_SI.inc3
-rw-r--r--plugins/help/localization/sr_CS.inc3
-rw-r--r--plugins/help/localization/sv_SE.inc3
-rw-r--r--plugins/help/localization/tr_TR.inc3
-rw-r--r--plugins/help/localization/vi_VN.inc3
-rw-r--r--plugins/help/localization/zh_CN.inc5
-rw-r--r--plugins/help/localization/zh_TW.inc3
-rw-r--r--plugins/help/package.xml9
-rw-r--r--plugins/help/skins/classic/help.css16
-rw-r--r--plugins/help/skins/classic/templates/help.html17
-rw-r--r--plugins/help/skins/larry/help.css1
-rw-r--r--plugins/help/skins/larry/templates/help.html8
-rw-r--r--plugins/hide_blockquote/hide_blockquote.php4
-rw-r--r--plugins/hide_blockquote/localization/az_AZ.inc3
-rw-r--r--plugins/hide_blockquote/localization/bs_BA.inc3
-rw-r--r--plugins/hide_blockquote/localization/ca_ES.inc3
-rw-r--r--plugins/hide_blockquote/localization/cs_CZ.inc3
-rw-r--r--plugins/hide_blockquote/localization/cy_GB.inc3
-rw-r--r--plugins/hide_blockquote/localization/da_DK.inc3
-rw-r--r--plugins/hide_blockquote/localization/de_CH.inc3
-rw-r--r--plugins/hide_blockquote/localization/de_DE.inc3
-rw-r--r--plugins/hide_blockquote/localization/en_GB.inc3
-rw-r--r--plugins/hide_blockquote/localization/en_US.inc4
-rw-r--r--plugins/hide_blockquote/localization/eo.inc3
-rw-r--r--plugins/hide_blockquote/localization/es_ES.inc3
-rw-r--r--plugins/hide_blockquote/localization/et_EE.inc3
-rw-r--r--plugins/hide_blockquote/localization/fa_IR.inc3
-rw-r--r--plugins/hide_blockquote/localization/fi_FI.inc3
-rw-r--r--plugins/hide_blockquote/localization/fr_FR.inc3
-rw-r--r--plugins/hide_blockquote/localization/gl_ES.inc3
-rw-r--r--plugins/hide_blockquote/localization/he_IL.inc3
-rw-r--r--plugins/hide_blockquote/localization/hu_HU.inc3
-rw-r--r--plugins/hide_blockquote/localization/hy_AM.inc3
-rw-r--r--plugins/hide_blockquote/localization/id_ID.inc3
-rw-r--r--plugins/hide_blockquote/localization/it_IT.inc3
-rw-r--r--plugins/hide_blockquote/localization/ja_JP.inc3
-rw-r--r--plugins/hide_blockquote/localization/ko_KR.inc3
-rw-r--r--plugins/hide_blockquote/localization/lt_LT.inc3
-rw-r--r--plugins/hide_blockquote/localization/nb_NO.inc3
-rw-r--r--plugins/hide_blockquote/localization/nl_NL.inc3
-rw-r--r--plugins/hide_blockquote/localization/nn_NO.inc3
-rw-r--r--plugins/hide_blockquote/localization/pl_PL.inc3
-rw-r--r--plugins/hide_blockquote/localization/pt_BR.inc3
-rw-r--r--plugins/hide_blockquote/localization/pt_PT.inc3
-rw-r--r--plugins/hide_blockquote/localization/ru_RU.inc3
-rw-r--r--plugins/hide_blockquote/localization/sk_SK.inc3
-rw-r--r--plugins/hide_blockquote/localization/sl_SI.inc3
-rw-r--r--plugins/hide_blockquote/localization/sr_CS.inc3
-rw-r--r--plugins/hide_blockquote/localization/sv_SE.inc3
-rw-r--r--plugins/hide_blockquote/localization/tr_TR.inc3
-rw-r--r--plugins/hide_blockquote/localization/vi_VN.inc3
-rw-r--r--plugins/hide_blockquote/localization/zh_CN.inc3
-rw-r--r--plugins/hide_blockquote/localization/zh_TW.inc3
-rw-r--r--plugins/http_authentication/config.inc.php.dist4
-rw-r--r--plugins/http_authentication/http_authentication.php16
-rw-r--r--plugins/jqueryui/config.inc.php.dist4
l---------plugins/jqueryui/css1
-rw-r--r--plugins/jqueryui/jqueryui.php1
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery-ui-i18n.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/js/jquery-ui-1.9.1.custom.min.js0
l---------plugins/jqueryui/js/jquery-ui.min.js1
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-bg_flat_0_aaaaaa_40x100.pngbin180 -> 180 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-bg_flat_75_ffffff_40x100.pngbin178 -> 178 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-bg_flat_90_cc3333_40x100.pngbin212 -> 212 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-bg_glass_95_fef1ec_1x400.pngbin119 -> 119 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_a3a3a3_1x100.pngbin114 -> 114 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_e6e6e7_1x100.pngbin101 -> 101 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_f4f4f4_1x100.pngbin122 -> 122 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.pngbin5355 -> 5355 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/classic/jquery-ui-1.9.1.custom.css0
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_55_b0ccd7_1x100.pngbin117 -> 117 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_65_ffffff_1x100.pngbin93 -> 93 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_75_eaeaea_1x100.pngbin136 -> 136 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_75_f8f8f8_1x100.pngbin88 -> 88 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/images/ui-bg_highlight-soft_75_fafafa_1x100.pngbin117 -> 117 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/images/ui-bg_highlight-soft_90_e4e4e4_1x100.pngbin111 -> 111 bytes
-rw-r--r--plugins/jqueryui/themes/larry/images/ui-icons-datepicker.pngbin437 -> 1160 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/images/ui-icons_004458_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/larry/jquery-ui-1.9.1.custom.css31
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.pngbin180 -> 180 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.pngbin182 -> 182 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.pngbin162 -> 162 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.pngbin123 -> 123 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.pngbin119 -> 119 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.pngbin3457 -> 3457 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.pngbin104 -> 104 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.pngbin88 -> 88 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]plugins/jqueryui/themes/redmond/jquery-ui-1.9.1.custom.css0
-rw-r--r--plugins/managesieve/Changelog43
-rw-r--r--plugins/managesieve/config.inc.php.dist34
-rw-r--r--plugins/managesieve/lib/Roundcube/rcube_sieve.php16
-rw-r--r--plugins/managesieve/lib/Roundcube/rcube_sieve_script.php492
-rw-r--r--plugins/managesieve/localization/az_AZ.inc17
-rw-r--r--plugins/managesieve/localization/be_BE.inc287
-rw-r--r--plugins/managesieve/localization/bg_BG.inc221
-rw-r--r--plugins/managesieve/localization/bs_BA.inc31
-rw-r--r--plugins/managesieve/localization/ca_ES.inc59
-rw-r--r--plugins/managesieve/localization/cs_CZ.inc33
-rw-r--r--plugins/managesieve/localization/cy_GB.inc33
-rw-r--r--plugins/managesieve/localization/da_DK.inc37
-rw-r--r--plugins/managesieve/localization/de_CH.inc45
-rw-r--r--plugins/managesieve/localization/de_DE.inc39
-rw-r--r--plugins/managesieve/localization/el_GR.inc34
-rw-r--r--plugins/managesieve/localization/en_GB.inc39
-rw-r--r--plugins/managesieve/localization/en_US.inc33
-rw-r--r--plugins/managesieve/localization/eo.inc126
-rw-r--r--plugins/managesieve/localization/es_AR.inc94
-rw-r--r--plugins/managesieve/localization/es_ES.inc55
-rw-r--r--plugins/managesieve/localization/et_EE.inc42
-rw-r--r--plugins/managesieve/localization/fa_IR.inc39
-rw-r--r--plugins/managesieve/localization/fi_FI.inc114
-rw-r--r--plugins/managesieve/localization/fr_FR.inc40
-rw-r--r--plugins/managesieve/localization/gl_ES.inc46
-rw-r--r--plugins/managesieve/localization/he_IL.inc39
-rw-r--r--plugins/managesieve/localization/hr_HR.inc39
-rw-r--r--plugins/managesieve/localization/hu_HU.inc35
-rw-r--r--plugins/managesieve/localization/hy_AM.inc39
-rw-r--r--plugins/managesieve/localization/ia.inc156
-rw-r--r--plugins/managesieve/localization/id_ID.inc20
-rw-r--r--plugins/managesieve/localization/it_IT.inc49
-rw-r--r--plugins/managesieve/localization/ja_JP.inc49
-rw-r--r--plugins/managesieve/localization/ko_KR.inc43
-rw-r--r--plugins/managesieve/localization/lt_LT.inc40
-rw-r--r--plugins/managesieve/localization/lv_LV.inc171
-rw-r--r--plugins/managesieve/localization/ml_IN.inc39
-rw-r--r--plugins/managesieve/localization/mr_IN.inc143
-rw-r--r--plugins/managesieve/localization/nb_NO.inc38
-rw-r--r--plugins/managesieve/localization/nl_NL.inc67
-rw-r--r--plugins/managesieve/localization/nn_NO.inc21
-rw-r--r--plugins/managesieve/localization/pl_PL.inc37
-rw-r--r--plugins/managesieve/localization/pt_BR.inc45
-rw-r--r--plugins/managesieve/localization/pt_PT.inc35
-rw-r--r--plugins/managesieve/localization/ro_RO.inc114
-rw-r--r--plugins/managesieve/localization/ru_RU.inc43
-rw-r--r--plugins/managesieve/localization/si_LK.inc135
-rw-r--r--plugins/managesieve/localization/sk_SK.inc91
-rw-r--r--plugins/managesieve/localization/sl_SI.inc41
-rw-r--r--plugins/managesieve/localization/sv_SE.inc27
-rw-r--r--plugins/managesieve/localization/tr_TR.inc31
-rw-r--r--plugins/managesieve/localization/uk_UA.inc98
-rw-r--r--plugins/managesieve/localization/vi_VN.inc23
-rw-r--r--plugins/managesieve/localization/zh_CN.inc33
-rw-r--r--plugins/managesieve/localization/zh_TW.inc29
-rw-r--r--plugins/managesieve/managesieve.js187
-rw-r--r--plugins/managesieve/managesieve.php1919
-rw-r--r--plugins/managesieve/package.xml18
-rw-r--r--plugins/managesieve/skins/classic/managesieve.css103
-rw-r--r--plugins/managesieve/skins/classic/managesieve_mail.css2
-rw-r--r--plugins/managesieve/skins/classic/templates/managesieve.html6
-rw-r--r--plugins/managesieve/skins/larry/managesieve.css116
-rw-r--r--plugins/managesieve/tests/src/parser4
-rw-r--r--plugins/managesieve/tests/src/parser.out6
-rw-r--r--plugins/managesieve/tests/src/parser_enotify_b6
-rw-r--r--plugins/managesieve/tests/src/parser_notify_b6
-rw-r--r--plugins/managesieve/tests/src/parser_relational2
-rw-r--r--plugins/managesieve/tests/src/parser_subaddress2
-rw-r--r--plugins/markasjunk/localization/az_AZ.inc3
-rw-r--r--plugins/markasjunk/localization/be_BE.inc7
-rw-r--r--plugins/markasjunk/localization/ber.inc1
-rw-r--r--plugins/markasjunk/localization/br.inc3
-rw-r--r--plugins/markasjunk/localization/bs_BA.inc3
-rw-r--r--plugins/markasjunk/localization/ca_ES.inc3
-rw-r--r--plugins/markasjunk/localization/cs_CZ.inc3
-rw-r--r--plugins/markasjunk/localization/cy_GB.inc3
-rw-r--r--plugins/markasjunk/localization/da_DK.inc3
-rw-r--r--plugins/markasjunk/localization/de_CH.inc3
-rw-r--r--plugins/markasjunk/localization/de_DE.inc3
-rw-r--r--plugins/markasjunk/localization/el_GR.inc3
-rw-r--r--plugins/markasjunk/localization/en_GB.inc3
-rw-r--r--plugins/markasjunk/localization/en_US.inc4
-rw-r--r--plugins/markasjunk/localization/eo.inc3
-rw-r--r--plugins/markasjunk/localization/es_AR.inc3
-rw-r--r--plugins/markasjunk/localization/es_ES.inc3
-rw-r--r--plugins/markasjunk/localization/et_EE.inc3
-rw-r--r--plugins/markasjunk/localization/fa_IR.inc3
-rw-r--r--plugins/markasjunk/localization/fi_FI.inc3
-rw-r--r--plugins/markasjunk/localization/fr_FR.inc3
-rw-r--r--plugins/markasjunk/localization/gl_ES.inc3
-rw-r--r--plugins/markasjunk/localization/he_IL.inc3
-rw-r--r--plugins/markasjunk/localization/hr_HR.inc4
-rw-r--r--plugins/markasjunk/localization/hu_HU.inc3
-rw-r--r--plugins/markasjunk/localization/hy_AM.inc3
-rw-r--r--plugins/markasjunk/localization/id_ID.inc3
-rw-r--r--plugins/markasjunk/localization/it_IT.inc3
-rw-r--r--plugins/markasjunk/localization/ja_JP.inc3
-rw-r--r--plugins/markasjunk/localization/km_KH.inc3
-rw-r--r--plugins/markasjunk/localization/ko_KR.inc3
-rw-r--r--plugins/markasjunk/localization/ku.inc4
-rw-r--r--plugins/markasjunk/localization/lt_LT.inc3
-rw-r--r--plugins/markasjunk/localization/lv_LV.inc9
-rw-r--r--plugins/markasjunk/localization/ml_IN.inc4
-rw-r--r--plugins/markasjunk/localization/mr_IN.inc4
-rw-r--r--plugins/markasjunk/localization/nb_NO.inc3
-rw-r--r--plugins/markasjunk/localization/nl_NL.inc3
-rw-r--r--plugins/markasjunk/localization/nn_NO.inc3
-rw-r--r--plugins/markasjunk/localization/pl_PL.inc3
-rw-r--r--plugins/markasjunk/localization/pt_BR.inc3
-rw-r--r--plugins/markasjunk/localization/pt_PT.inc3
-rw-r--r--plugins/markasjunk/localization/ro_RO.inc3
-rw-r--r--plugins/markasjunk/localization/ru_RU.inc7
-rw-r--r--plugins/markasjunk/localization/si_LK.inc4
-rw-r--r--plugins/markasjunk/localization/sk_SK.inc3
-rw-r--r--plugins/markasjunk/localization/sl_SI.inc3
-rw-r--r--plugins/markasjunk/localization/sr_CS.inc3
-rw-r--r--plugins/markasjunk/localization/sv_SE.inc3
-rw-r--r--plugins/markasjunk/localization/tr_TR.inc3
-rw-r--r--plugins/markasjunk/localization/uk_UA.inc4
-rw-r--r--plugins/markasjunk/localization/vi_VN.inc3
-rw-r--r--plugins/markasjunk/localization/zh_CN.inc3
-rw-r--r--plugins/markasjunk/localization/zh_TW.inc3
-rw-r--r--plugins/new_user_dialog/localization/az_AZ.inc3
-rw-r--r--plugins/new_user_dialog/localization/be_BE.inc7
-rw-r--r--plugins/new_user_dialog/localization/bg_BG.inc7
-rw-r--r--plugins/new_user_dialog/localization/bs_BA.inc3
-rw-r--r--plugins/new_user_dialog/localization/ca_ES.inc3
-rw-r--r--plugins/new_user_dialog/localization/cs_CZ.inc3
-rw-r--r--plugins/new_user_dialog/localization/cy_GB.inc3
-rw-r--r--plugins/new_user_dialog/localization/da_DK.inc3
-rw-r--r--plugins/new_user_dialog/localization/de_CH.inc3
-rw-r--r--plugins/new_user_dialog/localization/de_DE.inc3
-rw-r--r--plugins/new_user_dialog/localization/el_GR.inc3
-rw-r--r--plugins/new_user_dialog/localization/en_GB.inc3
-rw-r--r--plugins/new_user_dialog/localization/en_US.inc4
-rw-r--r--plugins/new_user_dialog/localization/eo.inc3
-rw-r--r--plugins/new_user_dialog/localization/es_ES.inc3
-rw-r--r--plugins/new_user_dialog/localization/et_EE.inc3
-rw-r--r--plugins/new_user_dialog/localization/fa_IR.inc3
-rw-r--r--plugins/new_user_dialog/localization/fi_FI.inc3
-rw-r--r--plugins/new_user_dialog/localization/fr_FR.inc3
-rw-r--r--plugins/new_user_dialog/localization/gl_ES.inc3
-rw-r--r--plugins/new_user_dialog/localization/he_IL.inc3
-rw-r--r--plugins/new_user_dialog/localization/hr_HR.inc3
-rw-r--r--plugins/new_user_dialog/localization/hu_HU.inc3
-rw-r--r--plugins/new_user_dialog/localization/hy_AM.inc3
-rw-r--r--plugins/new_user_dialog/localization/id_ID.inc3
-rw-r--r--plugins/new_user_dialog/localization/it_IT.inc3
-rw-r--r--plugins/new_user_dialog/localization/ja_JP.inc3
-rw-r--r--plugins/new_user_dialog/localization/km_KH.inc3
-rw-r--r--plugins/new_user_dialog/localization/ko_KR.inc3
-rw-r--r--plugins/new_user_dialog/localization/ku.inc3
-rw-r--r--plugins/new_user_dialog/localization/lt_LT.inc3
-rw-r--r--plugins/new_user_dialog/localization/lv_LV.inc7
-rw-r--r--plugins/new_user_dialog/localization/ml_IN.inc3
-rw-r--r--plugins/new_user_dialog/localization/mr_IN.inc3
-rw-r--r--plugins/new_user_dialog/localization/nb_NO.inc3
-rw-r--r--plugins/new_user_dialog/localization/nl_NL.inc3
-rw-r--r--plugins/new_user_dialog/localization/nn_NO.inc3
-rw-r--r--plugins/new_user_dialog/localization/pl_PL.inc3
-rw-r--r--plugins/new_user_dialog/localization/pt_BR.inc3
-rw-r--r--plugins/new_user_dialog/localization/pt_PT.inc3
-rw-r--r--plugins/new_user_dialog/localization/ro_RO.inc3
-rw-r--r--plugins/new_user_dialog/localization/ru_RU.inc3
-rw-r--r--plugins/new_user_dialog/localization/sk_SK.inc3
-rw-r--r--plugins/new_user_dialog/localization/sl_SI.inc3
-rw-r--r--plugins/new_user_dialog/localization/sr_CS.inc3
-rw-r--r--plugins/new_user_dialog/localization/sv_SE.inc3
-rw-r--r--plugins/new_user_dialog/localization/tr_TR.inc3
-rw-r--r--plugins/new_user_dialog/localization/uk_UA.inc3
-rw-r--r--plugins/new_user_dialog/localization/vi_VN.inc3
-rw-r--r--plugins/new_user_dialog/localization/zh_CN.inc3
-rw-r--r--plugins/new_user_dialog/localization/zh_TW.inc3
-rw-r--r--plugins/new_user_dialog/new_user_dialog.php69
-rw-r--r--plugins/new_user_dialog/package.xml91
-rw-r--r--plugins/new_user_identity/new_user_identity.php11
-rw-r--r--plugins/new_user_identity/package.xml2
-rw-r--r--plugins/newmail_notifier/config.inc.php.dist9
-rw-r--r--plugins/newmail_notifier/localization/ar_SA.inc2
-rw-r--r--plugins/newmail_notifier/localization/az_AZ.inc2
-rw-r--r--plugins/newmail_notifier/localization/be_BE.inc13
-rw-r--r--plugins/newmail_notifier/localization/br.inc9
-rw-r--r--plugins/newmail_notifier/localization/bs_BA.inc3
-rw-r--r--plugins/newmail_notifier/localization/ca_ES.inc3
-rw-r--r--plugins/newmail_notifier/localization/cs_CZ.inc3
-rw-r--r--plugins/newmail_notifier/localization/cy_GB.inc3
-rw-r--r--plugins/newmail_notifier/localization/da_DK.inc3
-rw-r--r--plugins/newmail_notifier/localization/de_CH.inc3
-rw-r--r--plugins/newmail_notifier/localization/de_DE.inc3
-rw-r--r--plugins/newmail_notifier/localization/en_GB.inc2
-rw-r--r--plugins/newmail_notifier/localization/en_US.inc3
-rw-r--r--plugins/newmail_notifier/localization/eo.inc2
-rw-r--r--plugins/newmail_notifier/localization/es_ES.inc3
-rw-r--r--plugins/newmail_notifier/localization/et_EE.inc2
-rw-r--r--plugins/newmail_notifier/localization/fa_IR.inc3
-rw-r--r--plugins/newmail_notifier/localization/fi_FI.inc3
-rw-r--r--plugins/newmail_notifier/localization/fr_FR.inc3
-rw-r--r--plugins/newmail_notifier/localization/gl_ES.inc2
-rw-r--r--plugins/newmail_notifier/localization/he_IL.inc2
-rw-r--r--plugins/newmail_notifier/localization/hr_HR.inc2
-rw-r--r--plugins/newmail_notifier/localization/hu_HU.inc3
-rw-r--r--plugins/newmail_notifier/localization/hy_AM.inc2
-rw-r--r--plugins/newmail_notifier/localization/ia.inc7
-rw-r--r--plugins/newmail_notifier/localization/id_ID.inc2
-rw-r--r--plugins/newmail_notifier/localization/it_IT.inc3
-rw-r--r--plugins/newmail_notifier/localization/ja_JP.inc3
-rw-r--r--plugins/newmail_notifier/localization/km_KH.inc6
-rw-r--r--plugins/newmail_notifier/localization/ko_KR.inc2
-rw-r--r--plugins/newmail_notifier/localization/lt_LT.inc2
-rw-r--r--plugins/newmail_notifier/localization/lv_LV.inc19
-rw-r--r--plugins/newmail_notifier/localization/ml_IN.inc2
-rw-r--r--plugins/newmail_notifier/localization/mr_IN.inc6
-rw-r--r--plugins/newmail_notifier/localization/nb_NO.inc2
-rw-r--r--plugins/newmail_notifier/localization/nl_NL.inc3
-rw-r--r--plugins/newmail_notifier/localization/nn_NO.inc2
-rw-r--r--plugins/newmail_notifier/localization/pl_PL.inc3
-rw-r--r--plugins/newmail_notifier/localization/pt_BR.inc3
-rw-r--r--plugins/newmail_notifier/localization/pt_PT.inc3
-rw-r--r--plugins/newmail_notifier/localization/ro_RO.inc3
-rw-r--r--plugins/newmail_notifier/localization/ru_RU.inc3
-rw-r--r--plugins/newmail_notifier/localization/si_LK.inc10
-rw-r--r--plugins/newmail_notifier/localization/sk_SK.inc3
-rw-r--r--plugins/newmail_notifier/localization/sl_SI.inc3
-rw-r--r--plugins/newmail_notifier/localization/sr_CS.inc2
-rw-r--r--plugins/newmail_notifier/localization/sv_SE.inc3
-rw-r--r--plugins/newmail_notifier/localization/tr_TR.inc3
-rw-r--r--plugins/newmail_notifier/localization/uk_UA.inc2
-rw-r--r--plugins/newmail_notifier/localization/vi_VN.inc2
-rw-r--r--plugins/newmail_notifier/localization/zh_CN.inc6
-rw-r--r--plugins/newmail_notifier/localization/zh_TW.inc3
-rw-r--r--plugins/newmail_notifier/newmail_notifier.js116
-rw-r--r--plugins/newmail_notifier/newmail_notifier.php110
-rw-r--r--plugins/newmail_notifier/package.xml8
-rw-r--r--plugins/password/README116
-rw-r--r--plugins/password/config.inc.php.dist142
-rw-r--r--plugins/password/drivers/chpasswd.php2
-rw-r--r--plugins/password/drivers/cpanel.php110
-rw-r--r--plugins/password/drivers/dbmail.php2
-rw-r--r--plugins/password/drivers/directadmin.php3
-rw-r--r--plugins/password/drivers/domainfactory.php117
-rw-r--r--plugins/password/drivers/expect.php2
-rw-r--r--plugins/password/drivers/hmail.php12
-rw-r--r--plugins/password/drivers/ldap.php169
-rw-r--r--plugins/password/drivers/ldap_simple.php228
-rw-r--r--plugins/password/drivers/pam.php4
-rw-r--r--plugins/password/drivers/pw_usermod.php2
-rw-r--r--plugins/password/drivers/sasl.php2
-rw-r--r--plugins/password/drivers/smb.php14
-rw-r--r--plugins/password/drivers/sql.php19
-rw-r--r--plugins/password/drivers/virtualmin.php2
-rw-r--r--plugins/password/drivers/xmail.php16
-rw-r--r--plugins/password/localization/az_AZ.inc5
-rw-r--r--plugins/password/localization/ber.inc1
-rw-r--r--plugins/password/localization/bg_BG.inc21
-rw-r--r--plugins/password/localization/br.inc6
-rw-r--r--plugins/password/localization/bs_BA.inc5
-rw-r--r--plugins/password/localization/ca_ES.inc5
-rw-r--r--plugins/password/localization/cs_CZ.inc5
-rw-r--r--plugins/password/localization/cy_GB.inc5
-rw-r--r--plugins/password/localization/da_DK.inc5
-rw-r--r--plugins/password/localization/de_CH.inc5
-rw-r--r--plugins/password/localization/de_DE.inc5
-rw-r--r--plugins/password/localization/en_GB.inc5
-rw-r--r--plugins/password/localization/en_US.inc2
-rw-r--r--plugins/password/localization/eo.inc5
-rw-r--r--plugins/password/localization/es_AR.inc5
-rw-r--r--plugins/password/localization/es_ES.inc5
-rw-r--r--plugins/password/localization/et_EE.inc5
-rw-r--r--plugins/password/localization/fa_IR.inc5
-rw-r--r--plugins/password/localization/fi_FI.inc5
-rw-r--r--plugins/password/localization/fr_FR.inc5
-rw-r--r--plugins/password/localization/gl_ES.inc7
-rw-r--r--plugins/password/localization/he_IL.inc5
-rw-r--r--plugins/password/localization/hr_HR.inc5
-rw-r--r--plugins/password/localization/hu_HU.inc5
-rw-r--r--plugins/password/localization/hy_AM.inc5
-rw-r--r--plugins/password/localization/id_ID.inc5
-rw-r--r--plugins/password/localization/it_IT.inc5
-rw-r--r--plugins/password/localization/ja_JP.inc5
-rw-r--r--plugins/password/localization/ko_KR.inc5
-rw-r--r--plugins/password/localization/ku.inc18
-rw-r--r--plugins/password/localization/lt_LT.inc5
-rw-r--r--plugins/password/localization/lv_LV.inc21
-rw-r--r--plugins/password/localization/nb_NO.inc5
-rw-r--r--plugins/password/localization/nl_NL.inc5
-rw-r--r--plugins/password/localization/nn_NO.inc5
-rw-r--r--plugins/password/localization/pl_PL.inc5
-rw-r--r--plugins/password/localization/pt_BR.inc5
-rw-r--r--plugins/password/localization/pt_PT.inc5
-rw-r--r--plugins/password/localization/ro_RO.inc5
-rw-r--r--plugins/password/localization/ru_RU.inc9
-rw-r--r--plugins/password/localization/sk_SK.inc5
-rw-r--r--plugins/password/localization/sl_SI.inc5
-rw-r--r--plugins/password/localization/sr_CS.inc5
-rw-r--r--plugins/password/localization/sv_SE.inc5
-rw-r--r--plugins/password/localization/tr_TR.inc5
-rw-r--r--plugins/password/localization/vi_VN.inc5
-rw-r--r--plugins/password/localization/zh_CN.inc5
-rw-r--r--plugins/password/localization/zh_TW.inc5
-rw-r--r--plugins/password/package.xml40
-rw-r--r--plugins/password/password.js7
-rw-r--r--plugins/password/password.php92
-rw-r--r--plugins/show_additional_headers/package.xml2
-rw-r--r--plugins/show_additional_headers/show_additional_headers.php6
-rw-r--r--plugins/squirrelmail_usercopy/config.inc.php.dist18
-rw-r--r--plugins/squirrelmail_usercopy/squirrelmail_usercopy.php18
-rw-r--r--plugins/subscriptions_option/localization/bs_BA.inc3
-rw-r--r--plugins/subscriptions_option/localization/ca_ES.inc3
-rw-r--r--plugins/subscriptions_option/localization/cs_CZ.inc3
-rw-r--r--plugins/subscriptions_option/localization/cy_GB.inc3
-rw-r--r--plugins/subscriptions_option/localization/da_DK.inc3
-rw-r--r--plugins/subscriptions_option/localization/de_CH.inc3
-rw-r--r--plugins/subscriptions_option/localization/de_DE.inc3
-rw-r--r--plugins/subscriptions_option/localization/en_GB.inc3
-rw-r--r--plugins/subscriptions_option/localization/en_US.inc2
-rw-r--r--plugins/subscriptions_option/localization/eo.inc3
-rw-r--r--plugins/subscriptions_option/localization/es_ES.inc3
-rw-r--r--plugins/subscriptions_option/localization/et_EE.inc3
-rw-r--r--plugins/subscriptions_option/localization/fa_IR.inc3
-rw-r--r--plugins/subscriptions_option/localization/fi_FI.inc3
-rw-r--r--plugins/subscriptions_option/localization/fr_FR.inc3
-rw-r--r--plugins/subscriptions_option/localization/gl_ES.inc5
-rw-r--r--plugins/subscriptions_option/localization/he_IL.inc3
-rw-r--r--plugins/subscriptions_option/localization/hu_HU.inc3
-rw-r--r--plugins/subscriptions_option/localization/hy_AM.inc3
-rw-r--r--plugins/subscriptions_option/localization/it_IT.inc3
-rw-r--r--plugins/subscriptions_option/localization/ja_JP.inc3
-rw-r--r--plugins/subscriptions_option/localization/ko_KR.inc3
-rw-r--r--plugins/subscriptions_option/localization/lt_LT.inc3
-rw-r--r--plugins/subscriptions_option/localization/nb_NO.inc3
-rw-r--r--plugins/subscriptions_option/localization/nl_NL.inc3
-rw-r--r--plugins/subscriptions_option/localization/pl_PL.inc3
-rw-r--r--plugins/subscriptions_option/localization/pt_BR.inc3
-rw-r--r--plugins/subscriptions_option/localization/pt_PT.inc3
-rw-r--r--plugins/subscriptions_option/localization/ru_RU.inc5
-rw-r--r--plugins/subscriptions_option/localization/sk_SK.inc3
-rw-r--r--plugins/subscriptions_option/localization/sl_SI.inc3
-rw-r--r--plugins/subscriptions_option/localization/sr_CS.inc3
-rw-r--r--plugins/subscriptions_option/localization/sv_SE.inc3
-rw-r--r--plugins/subscriptions_option/localization/tr_TR.inc3
-rw-r--r--plugins/subscriptions_option/localization/vi_VN.inc3
-rw-r--r--plugins/subscriptions_option/localization/zh_CN.inc3
-rw-r--r--plugins/subscriptions_option/localization/zh_TW.inc3
-rw-r--r--plugins/subscriptions_option/package.xml2
-rw-r--r--plugins/subscriptions_option/subscriptions_option.php9
-rw-r--r--plugins/userinfo/localization/ar_SA.inc3
-rw-r--r--plugins/userinfo/localization/az_AZ.inc3
-rw-r--r--plugins/userinfo/localization/be_BE.inc5
-rw-r--r--plugins/userinfo/localization/ber.inc1
-rw-r--r--plugins/userinfo/localization/br.inc4
-rw-r--r--plugins/userinfo/localization/bs_BA.inc3
-rw-r--r--plugins/userinfo/localization/ca_ES.inc3
-rw-r--r--plugins/userinfo/localization/cs_CZ.inc3
-rw-r--r--plugins/userinfo/localization/cy_GB.inc3
-rw-r--r--plugins/userinfo/localization/da_DK.inc3
-rw-r--r--plugins/userinfo/localization/de_CH.inc3
-rw-r--r--plugins/userinfo/localization/de_DE.inc3
-rw-r--r--plugins/userinfo/localization/en_GB.inc3
-rw-r--r--plugins/userinfo/localization/en_US.inc2
-rw-r--r--plugins/userinfo/localization/eo.inc3
-rw-r--r--plugins/userinfo/localization/es_ES.inc3
-rw-r--r--plugins/userinfo/localization/et_EE.inc3
-rw-r--r--plugins/userinfo/localization/fa_IR.inc3
-rw-r--r--plugins/userinfo/localization/fi_FI.inc3
-rw-r--r--plugins/userinfo/localization/fr_FR.inc3
-rw-r--r--plugins/userinfo/localization/gl_ES.inc3
-rw-r--r--plugins/userinfo/localization/he_IL.inc3
-rw-r--r--plugins/userinfo/localization/hr_HR.inc3
-rw-r--r--plugins/userinfo/localization/hu_HU.inc3
-rw-r--r--plugins/userinfo/localization/hy_AM.inc3
-rw-r--r--plugins/userinfo/localization/ia.inc3
-rw-r--r--plugins/userinfo/localization/id_ID.inc3
-rw-r--r--plugins/userinfo/localization/it_IT.inc3
-rw-r--r--plugins/userinfo/localization/ja_JP.inc3
-rw-r--r--plugins/userinfo/localization/km_KH.inc3
-rw-r--r--plugins/userinfo/localization/ko_KR.inc3
-rw-r--r--plugins/userinfo/localization/ku.inc3
-rw-r--r--plugins/userinfo/localization/lt_LT.inc3
-rw-r--r--plugins/userinfo/localization/lv_LV.inc3
-rw-r--r--plugins/userinfo/localization/ml_IN.inc3
-rw-r--r--plugins/userinfo/localization/mr_IN.inc5
-rw-r--r--plugins/userinfo/localization/nb_NO.inc3
-rw-r--r--plugins/userinfo/localization/nl_NL.inc3
-rw-r--r--plugins/userinfo/localization/nn_NO.inc3
-rw-r--r--plugins/userinfo/localization/pl_PL.inc3
-rw-r--r--plugins/userinfo/localization/pt_BR.inc3
-rw-r--r--plugins/userinfo/localization/pt_PT.inc3
-rw-r--r--plugins/userinfo/localization/ro_RO.inc3
-rw-r--r--plugins/userinfo/localization/ru_RU.inc3
-rw-r--r--plugins/userinfo/localization/sk_SK.inc3
-rw-r--r--plugins/userinfo/localization/sl_SI.inc3
-rw-r--r--plugins/userinfo/localization/sr_CS.inc3
-rw-r--r--plugins/userinfo/localization/sv_SE.inc3
-rw-r--r--plugins/userinfo/localization/tr_TR.inc3
-rw-r--r--plugins/userinfo/localization/uk_UA.inc3
-rw-r--r--plugins/userinfo/localization/vi_VN.inc3
-rw-r--r--plugins/userinfo/localization/zh_CN.inc3
-rw-r--r--plugins/userinfo/localization/zh_TW.inc3
-rw-r--r--plugins/userinfo/userinfo.php24
-rw-r--r--plugins/vcard_attachments/localization/az_AZ.inc3
-rw-r--r--plugins/vcard_attachments/localization/be_BE.inc3
-rw-r--r--plugins/vcard_attachments/localization/bs_BA.inc3
-rw-r--r--plugins/vcard_attachments/localization/ca_ES.inc3
-rw-r--r--plugins/vcard_attachments/localization/cs_CZ.inc3
-rw-r--r--plugins/vcard_attachments/localization/cy_GB.inc3
-rw-r--r--plugins/vcard_attachments/localization/da_DK.inc3
-rw-r--r--plugins/vcard_attachments/localization/de_CH.inc3
-rw-r--r--plugins/vcard_attachments/localization/de_DE.inc3
-rw-r--r--plugins/vcard_attachments/localization/en_GB.inc3
-rw-r--r--plugins/vcard_attachments/localization/en_US.inc2
-rw-r--r--plugins/vcard_attachments/localization/eo.inc3
-rw-r--r--plugins/vcard_attachments/localization/es_ES.inc3
-rw-r--r--plugins/vcard_attachments/localization/et_EE.inc3
-rw-r--r--plugins/vcard_attachments/localization/fa_IR.inc3
-rw-r--r--plugins/vcard_attachments/localization/fi_FI.inc3
-rw-r--r--plugins/vcard_attachments/localization/fr_FR.inc3
-rw-r--r--plugins/vcard_attachments/localization/gl_ES.inc7
-rw-r--r--plugins/vcard_attachments/localization/he_IL.inc3
-rw-r--r--plugins/vcard_attachments/localization/hr_HR.inc3
-rw-r--r--plugins/vcard_attachments/localization/hu_HU.inc3
-rw-r--r--plugins/vcard_attachments/localization/hy_AM.inc3
-rw-r--r--plugins/vcard_attachments/localization/id_ID.inc3
-rw-r--r--plugins/vcard_attachments/localization/it_IT.inc3
-rw-r--r--plugins/vcard_attachments/localization/ja_JP.inc3
-rw-r--r--plugins/vcard_attachments/localization/km_KH.inc3
-rw-r--r--plugins/vcard_attachments/localization/ko_KR.inc3
-rw-r--r--plugins/vcard_attachments/localization/lt_LT.inc3
-rw-r--r--plugins/vcard_attachments/localization/lv_LV.inc3
-rw-r--r--plugins/vcard_attachments/localization/ml_IN.inc3
-rw-r--r--plugins/vcard_attachments/localization/mr_IN.inc3
-rw-r--r--plugins/vcard_attachments/localization/nb_NO.inc3
-rw-r--r--plugins/vcard_attachments/localization/nl_NL.inc3
-rw-r--r--plugins/vcard_attachments/localization/nn_NO.inc3
-rw-r--r--plugins/vcard_attachments/localization/pl_PL.inc3
-rw-r--r--plugins/vcard_attachments/localization/pt_BR.inc3
-rw-r--r--plugins/vcard_attachments/localization/pt_PT.inc3
-rw-r--r--plugins/vcard_attachments/localization/ro_RO.inc3
-rw-r--r--plugins/vcard_attachments/localization/ru_RU.inc3
-rw-r--r--plugins/vcard_attachments/localization/si_LK.inc3
-rw-r--r--plugins/vcard_attachments/localization/sk_SK.inc3
-rw-r--r--plugins/vcard_attachments/localization/sl_SI.inc3
-rw-r--r--plugins/vcard_attachments/localization/sr_CS.inc3
-rw-r--r--plugins/vcard_attachments/localization/sv_SE.inc3
-rw-r--r--plugins/vcard_attachments/localization/tr_TR.inc3
-rw-r--r--plugins/vcard_attachments/localization/uk_UA.inc3
-rw-r--r--plugins/vcard_attachments/localization/vi_VN.inc3
-rw-r--r--plugins/vcard_attachments/localization/zh_CN.inc3
-rw-r--r--plugins/vcard_attachments/localization/zh_TW.inc3
-rw-r--r--plugins/vcard_attachments/vcard_attachments.php15
-rw-r--r--plugins/virtuser_file/virtuser_file.php92
-rw-r--r--plugins/virtuser_query/package.xml8
-rw-r--r--plugins/virtuser_query/virtuser_query.php64
-rw-r--r--plugins/zipdownload/README2
-rw-r--r--plugins/zipdownload/config.inc.php.dist8
-rw-r--r--plugins/zipdownload/localization/az_AZ.inc3
-rw-r--r--plugins/zipdownload/localization/br.inc3
-rw-r--r--plugins/zipdownload/localization/bs_BA.inc3
-rw-r--r--plugins/zipdownload/localization/ca_ES.inc3
-rw-r--r--plugins/zipdownload/localization/cs_CZ.inc3
-rw-r--r--plugins/zipdownload/localization/cy_GB.inc3
-rw-r--r--plugins/zipdownload/localization/da_DK.inc3
-rw-r--r--plugins/zipdownload/localization/de_CH.inc3
-rw-r--r--plugins/zipdownload/localization/de_DE.inc3
-rw-r--r--plugins/zipdownload/localization/en_GB.inc3
-rw-r--r--plugins/zipdownload/localization/en_US.inc2
-rw-r--r--plugins/zipdownload/localization/es_AR.inc3
-rw-r--r--plugins/zipdownload/localization/es_ES.inc3
-rw-r--r--plugins/zipdownload/localization/et_EE.inc3
-rw-r--r--plugins/zipdownload/localization/fa_IR.inc3
-rw-r--r--plugins/zipdownload/localization/fr_FR.inc3
-rw-r--r--plugins/zipdownload/localization/gl_ES.inc3
-rw-r--r--plugins/zipdownload/localization/he_IL.inc3
-rw-r--r--plugins/zipdownload/localization/hu_HU.inc3
-rw-r--r--plugins/zipdownload/localization/it_IT.inc3
-rw-r--r--plugins/zipdownload/localization/ja_JP.inc3
-rw-r--r--plugins/zipdownload/localization/km_KH.inc3
-rw-r--r--plugins/zipdownload/localization/lt_LT.inc3
-rw-r--r--plugins/zipdownload/localization/nb_NO.inc3
-rw-r--r--plugins/zipdownload/localization/nl_NL.inc3
-rw-r--r--plugins/zipdownload/localization/nn_NO.inc3
-rw-r--r--plugins/zipdownload/localization/pl_PL.inc3
-rw-r--r--plugins/zipdownload/localization/pt_BR.inc3
-rw-r--r--plugins/zipdownload/localization/pt_PT.inc3
-rw-r--r--plugins/zipdownload/localization/ro_RO.inc3
-rw-r--r--plugins/zipdownload/localization/ru_RU.inc5
-rw-r--r--plugins/zipdownload/localization/sk_SK.inc3
-rw-r--r--plugins/zipdownload/localization/sr_CS.inc3
-rw-r--r--plugins/zipdownload/localization/sv_SE.inc3
-rw-r--r--plugins/zipdownload/localization/tr_TR.inc3
-rw-r--r--plugins/zipdownload/localization/vi_VN.inc3
-rw-r--r--plugins/zipdownload/localization/zh_TW.inc3
-rw-r--r--plugins/zipdownload/skins/larry/zipdownload.css4
-rw-r--r--plugins/zipdownload/zipdownload.php27
-rw-r--r--program/include/bc.php16
-rw-r--r--program/include/iniset.php9
-rw-r--r--program/include/rcmail.php431
-rw-r--r--program/include/rcmail_output_html.php155
-rw-r--r--program/include/rcmail_output_json.php7
-rw-r--r--program/js/app.js7271
-rw-r--r--program/js/common.js732
-rw-r--r--program/js/editor.js17
-rw-r--r--program/js/googiespell.js1136
l---------[-rw-r--r--]program/js/jquery.min.js3
-rw-r--r--program/js/jstz.min.js13
-rw-r--r--program/js/list.js1626
-rw-r--r--program/lib/Roundcube/bootstrap.php30
-rw-r--r--program/lib/Roundcube/html.php85
-rw-r--r--program/lib/Roundcube/rcube.php304
-rw-r--r--program/lib/Roundcube/rcube_addressbook.php57
-rw-r--r--program/lib/Roundcube/rcube_base_replacer.php6
-rw-r--r--program/lib/Roundcube/rcube_browser.php2
-rw-r--r--program/lib/Roundcube/rcube_cache.php45
-rw-r--r--program/lib/Roundcube/rcube_config.php276
-rw-r--r--program/lib/Roundcube/rcube_contacts.php8
-rw-r--r--program/lib/Roundcube/rcube_content_filter.php2
-rw-r--r--program/lib/Roundcube/rcube_csv2vcard.php59
-rw-r--r--program/lib/Roundcube/rcube_db.php216
-rw-r--r--program/lib/Roundcube/rcube_db_mssql.php32
-rw-r--r--program/lib/Roundcube/rcube_db_mysql.php48
-rw-r--r--program/lib/Roundcube/rcube_db_pgsql.php47
-rw-r--r--program/lib/Roundcube/rcube_db_sqlite.php47
-rw-r--r--program/lib/Roundcube/rcube_db_sqlsrv.php29
-rw-r--r--program/lib/Roundcube/rcube_enriched.php2
-rw-r--r--program/lib/Roundcube/rcube_html2text.php13
-rw-r--r--program/lib/Roundcube/rcube_image.php99
-rw-r--r--program/lib/Roundcube/rcube_imap.php290
-rw-r--r--program/lib/Roundcube/rcube_imap_cache.php340
-rw-r--r--program/lib/Roundcube/rcube_imap_generic.php293
-rw-r--r--program/lib/Roundcube/rcube_ldap.php1375
-rw-r--r--program/lib/Roundcube/rcube_message.php128
-rw-r--r--program/lib/Roundcube/rcube_mime.php20
-rw-r--r--program/lib/Roundcube/rcube_plugin.php36
-rw-r--r--program/lib/Roundcube/rcube_plugin_api.php119
-rw-r--r--program/lib/Roundcube/rcube_result_set.php47
-rw-r--r--program/lib/Roundcube/rcube_session.php187
-rw-r--r--program/lib/Roundcube/rcube_smtp.php12
-rw-r--r--program/lib/Roundcube/rcube_spellchecker.php343
-rw-r--r--program/lib/Roundcube/rcube_storage.php22
-rw-r--r--program/lib/Roundcube/rcube_string_replacer.php54
-rw-r--r--program/lib/Roundcube/rcube_user.php21
-rw-r--r--program/lib/Roundcube/rcube_utils.php173
-rw-r--r--program/lib/Roundcube/rcube_vcard.php40
-rw-r--r--program/lib/Roundcube/rcube_washtml.php28
-rw-r--r--program/localization/ar_SA/labels.inc100
-rw-r--r--program/localization/ar_SA/messages.inc19
-rw-r--r--program/localization/ast/labels.inc575
-rw-r--r--program/localization/ast/messages.inc255
-rw-r--r--program/localization/az_AZ/labels.inc75
-rw-r--r--program/localization/az_AZ/messages.inc15
-rw-r--r--program/localization/be_BE/labels.inc945
-rw-r--r--program/localization/be_BE/messages.inc304
-rw-r--r--program/localization/ber/labels.inc1
-rw-r--r--program/localization/bg_BG/labels.inc465
-rw-r--r--program/localization/bg_BG/messages.inc270
-rw-r--r--program/localization/bn_BD/labels.inc285
-rw-r--r--program/localization/bn_BD/messages.inc86
-rw-r--r--program/localization/br/labels.inc334
-rw-r--r--program/localization/br/messages.inc98
-rw-r--r--program/localization/bs_BA/labels.inc77
-rw-r--r--program/localization/bs_BA/messages.inc12
-rw-r--r--program/localization/ca_ES/labels.inc83
-rw-r--r--program/localization/ca_ES/messages.inc18
-rw-r--r--program/localization/cs_CZ/labels.inc85
-rw-r--r--program/localization/cs_CZ/messages.inc20
-rw-r--r--program/localization/cy_GB/labels.inc77
-rw-r--r--program/localization/cy_GB/messages.inc14
-rw-r--r--program/localization/da_DK/labels.inc85
-rw-r--r--program/localization/da_DK/messages.inc20
-rw-r--r--program/localization/de_CH/labels.inc83
-rw-r--r--program/localization/de_CH/messages.inc16
-rw-r--r--program/localization/de_DE/labels.inc75
-rw-r--r--program/localization/de_DE/messages.inc15
-rw-r--r--program/localization/el_GR/labels.inc71
-rw-r--r--program/localization/el_GR/messages.inc15
-rw-r--r--program/localization/en_GB/labels.inc76
-rw-r--r--program/localization/en_GB/messages.inc12
-rw-r--r--program/localization/en_US/csv2vcard.inc19
-rw-r--r--program/localization/en_US/labels.inc32
-rw-r--r--program/localization/en_US/messages.inc15
-rw-r--r--program/localization/eo/labels.inc214
-rw-r--r--program/localization/eo/messages.inc90
-rw-r--r--program/localization/es_AR/labels.inc121
-rw-r--r--program/localization/es_AR/messages.inc10
-rw-r--r--program/localization/es_ES/labels.inc77
-rw-r--r--program/localization/es_ES/messages.inc16
-rw-r--r--program/localization/et_EE/labels.inc71
-rw-r--r--program/localization/et_EE/messages.inc15
-rw-r--r--program/localization/eu_ES/labels.inc530
-rw-r--r--program/localization/eu_ES/messages.inc199
-rw-r--r--program/localization/fa_AF/labels.inc285
-rw-r--r--program/localization/fa_AF/messages.inc119
-rw-r--r--program/localization/fa_IR/labels.inc109
-rw-r--r--program/localization/fa_IR/messages.inc168
-rw-r--r--program/localization/fi_FI/labels.inc79
-rw-r--r--program/localization/fi_FI/messages.inc25
-rw-r--r--program/localization/fr_FR/csv2vcard.inc11
-rw-r--r--program/localization/fr_FR/labels.inc87
-rw-r--r--program/localization/fr_FR/messages.inc18
-rw-r--r--program/localization/fy_NL/labels.inc452
-rw-r--r--program/localization/fy_NL/messages.inc18
-rw-r--r--program/localization/ga_IE/labels.inc346
-rw-r--r--program/localization/ga_IE/messages.inc102
-rw-r--r--program/localization/gl_ES/labels.inc70
-rw-r--r--program/localization/gl_ES/messages.inc10
-rw-r--r--program/localization/he_IL/labels.inc71
-rw-r--r--program/localization/he_IL/messages.inc15
-rw-r--r--program/localization/hi_IN/labels.inc347
-rw-r--r--program/localization/hi_IN/messages.inc105
-rw-r--r--program/localization/hr_HR/labels.inc101
-rw-r--r--program/localization/hr_HR/messages.inc18
-rw-r--r--program/localization/hu_HU/labels.inc83
-rw-r--r--program/localization/hu_HU/messages.inc16
-rw-r--r--program/localization/hy_AM/labels.inc94
-rw-r--r--program/localization/hy_AM/messages.inc16
-rw-r--r--program/localization/ia/labels.inc250
-rw-r--r--program/localization/ia/messages.inc130
-rw-r--r--program/localization/id_ID/labels.inc85
-rw-r--r--program/localization/id_ID/messages.inc17
-rw-r--r--program/localization/index.inc3
-rw-r--r--program/localization/is_IS/labels.inc100
-rw-r--r--program/localization/is_IS/messages.inc113
-rw-r--r--program/localization/it_IT/labels.inc77
-rw-r--r--program/localization/it_IT/messages.inc20
-rw-r--r--program/localization/ja_JP/labels.inc83
-rw-r--r--program/localization/ja_JP/messages.inc16
-rw-r--r--program/localization/ka_GE/labels.inc181
-rw-r--r--program/localization/ka_GE/messages.inc55
-rw-r--r--program/localization/km_KH/labels.inc152
-rw-r--r--program/localization/km_KH/messages.inc44
-rw-r--r--program/localization/ko_KR/labels.inc83
-rw-r--r--program/localization/ko_KR/messages.inc15
-rw-r--r--program/localization/ku/labels.inc358
-rw-r--r--program/localization/ku/messages.inc98
-rw-r--r--program/localization/lt_LT/labels.inc77
-rw-r--r--program/localization/lt_LT/messages.inc15
-rw-r--r--program/localization/lv_LV/labels.inc397
-rw-r--r--program/localization/lv_LV/messages.inc102
-rw-r--r--program/localization/mk_MK/labels.inc265
-rw-r--r--program/localization/mk_MK/messages.inc73
-rw-r--r--program/localization/ml_IN/labels.inc263
-rw-r--r--program/localization/ml_IN/messages.inc144
-rw-r--r--program/localization/mr_IN/labels.inc156
-rw-r--r--program/localization/mr_IN/messages.inc57
-rw-r--r--program/localization/ms_MY/labels.inc257
-rw-r--r--program/localization/ms_MY/messages.inc98
-rw-r--r--program/localization/nb_NO/labels.inc65
-rw-r--r--program/localization/nb_NO/messages.inc10
-rw-r--r--program/localization/ne_NP/labels.inc328
-rw-r--r--program/localization/ne_NP/messages.inc102
-rw-r--r--program/localization/nl_BE/labels.inc167
-rw-r--r--program/localization/nl_BE/messages.inc10
-rw-r--r--program/localization/nl_NL/labels.inc83
-rw-r--r--program/localization/nl_NL/messages.inc14
-rw-r--r--program/localization/nn_NO/labels.inc70
-rw-r--r--program/localization/nn_NO/messages.inc10
-rw-r--r--program/localization/pl_PL/csv2vcard.inc7
-rw-r--r--program/localization/pl_PL/labels.inc79
-rw-r--r--program/localization/pl_PL/messages.inc14
-rw-r--r--program/localization/ps/labels.inc285
-rw-r--r--program/localization/ps/messages.inc86
-rw-r--r--program/localization/pt_BR/labels.inc87
-rw-r--r--program/localization/pt_BR/messages.inc14
-rw-r--r--program/localization/pt_PT/labels.inc87
-rw-r--r--program/localization/pt_PT/messages.inc18
-rw-r--r--program/localization/ro_RO/labels.inc77
-rw-r--r--program/localization/ro_RO/messages.inc15
-rw-r--r--program/localization/ru_RU/labels.inc89
-rw-r--r--program/localization/ru_RU/messages.inc180
-rw-r--r--program/localization/si_LK/labels.inc221
-rw-r--r--program/localization/si_LK/messages.inc83
-rw-r--r--program/localization/sk_SK/labels.inc123
-rw-r--r--program/localization/sk_SK/messages.inc32
-rw-r--r--program/localization/sl_SI/labels.inc91
-rw-r--r--program/localization/sl_SI/messages.inc14
-rw-r--r--program/localization/sq_AL/labels.inc358
-rw-r--r--program/localization/sq_AL/messages.inc98
-rw-r--r--program/localization/sr_CS/labels.inc119
-rw-r--r--program/localization/sr_CS/messages.inc10
-rw-r--r--program/localization/sv_SE/labels.inc83
-rw-r--r--program/localization/sv_SE/messages.inc68
-rw-r--r--program/localization/ta_IN/labels.inc265
-rw-r--r--program/localization/ta_IN/messages.inc73
-rw-r--r--program/localization/th_TH/labels.inc243
-rw-r--r--program/localization/th_TH/messages.inc86
-rw-r--r--program/localization/tr_TR/labels.inc79
-rw-r--r--program/localization/tr_TR/messages.inc20
-rw-r--r--program/localization/uk_UA/labels.inc588
-rw-r--r--program/localization/uk_UA/messages.inc114
-rw-r--r--program/localization/vi_VN/labels.inc76
-rw-r--r--program/localization/vi_VN/messages.inc10
-rw-r--r--program/localization/zh_CN/labels.inc129
-rw-r--r--program/localization/zh_CN/messages.inc21
-rw-r--r--program/localization/zh_TW/csv2vcard.inc9
-rw-r--r--program/localization/zh_TW/labels.inc108
-rw-r--r--program/localization/zh_TW/messages.inc17
-rw-r--r--program/steps/addressbook/copy.inc12
-rw-r--r--program/steps/addressbook/delete.inc38
-rw-r--r--program/steps/addressbook/export.inc113
-rw-r--r--program/steps/addressbook/func.inc187
-rw-r--r--program/steps/addressbook/import.inc71
-rw-r--r--program/steps/addressbook/list.inc49
-rw-r--r--program/steps/addressbook/save.inc29
-rw-r--r--program/steps/addressbook/show.inc63
-rw-r--r--program/steps/addressbook/undo.inc25
-rw-r--r--program/steps/mail/check_recent.inc9
-rw-r--r--program/steps/mail/compose.inc224
-rw-r--r--program/steps/mail/func.inc420
-rw-r--r--program/steps/mail/get.inc109
-rw-r--r--program/steps/mail/list.inc1
-rw-r--r--program/steps/mail/list_contacts.inc29
-rw-r--r--program/steps/mail/move_del.inc11
-rw-r--r--program/steps/mail/sendmail.inc86
-rw-r--r--program/steps/mail/show.inc58
-rw-r--r--program/steps/settings/about.inc67
-rw-r--r--program/steps/settings/edit_folder.inc9
-rw-r--r--program/steps/settings/edit_prefs.inc9
-rw-r--r--program/steps/settings/folders.inc20
-rw-r--r--program/steps/settings/func.inc2063
-rw-r--r--program/steps/settings/save_folder.inc6
-rw-r--r--program/steps/settings/save_prefs.inc6
-rw-r--r--program/steps/utils/spell.inc10
-rw-r--r--program/steps/utils/spell_html.inc5
-rw-r--r--skins/classic/addressbook.css79
-rw-r--r--skins/classic/common.css122
-rw-r--r--skins/classic/embed.css2
-rw-r--r--skins/classic/functions.js287
-rw-r--r--skins/classic/ie6hacks.css24
-rw-r--r--skins/classic/iehacks.css6
-rw-r--r--skins/classic/images/favicon.icobin34494 -> 1150 bytes
-rw-r--r--skins/classic/images/mail_toolbar.pngbin39276 -> 36649 bytes
-rw-r--r--skins/classic/includes/messagetoolbar.html2
-rw-r--r--skins/classic/includes/settingstabs.html6
-rw-r--r--skins/classic/mail.css400
-rw-r--r--skins/classic/settings.css36
-rw-r--r--skins/classic/templates/about.html7
-rw-r--r--skins/classic/templates/addressbook.html28
-rw-r--r--skins/classic/templates/compose.html21
-rw-r--r--skins/classic/templates/contact.html2
-rw-r--r--skins/classic/templates/contactadd.html9
-rw-r--r--skins/classic/templates/contactedit.html9
-rw-r--r--skins/classic/templates/folders.html6
-rw-r--r--skins/classic/templates/login.html2
-rw-r--r--skins/classic/templates/mail.html18
-rw-r--r--skins/classic/templates/message.html26
-rw-r--r--skins/classic/templates/messageerror.html8
-rw-r--r--skins/classic/templates/messagepart.html38
-rw-r--r--skins/classic/templates/messagepreview.html24
-rw-r--r--skins/classic/templates/messageprint.html2
-rw-r--r--skins/larry/addressbook.css93
-rw-r--r--skins/larry/embed.css2
-rw-r--r--skins/larry/ie7hacks.css4
-rw-r--r--skins/larry/iehacks.css9
-rw-r--r--skins/larry/images/buttons.gifbin14997 -> 13054 bytes
-rw-r--r--skins/larry/images/buttons.pngbin38715 -> 36693 bytes
-rw-r--r--skins/larry/images/favicon.icobin34494 -> 1150 bytes
-rw-r--r--skins/larry/images/filetypes.pngbin9018 -> 8551 bytes
-rw-r--r--skins/larry/images/listicons.pngbin26389 -> 25486 bytes
-rw-r--r--skins/larry/includes/footer.html12
-rw-r--r--skins/larry/includes/header.html8
-rw-r--r--skins/larry/includes/settingstabs.html4
-rw-r--r--skins/larry/mail.css455
-rw-r--r--skins/larry/settings.css56
-rw-r--r--skins/larry/styles.css249
-rw-r--r--skins/larry/svggradients.css7
-rw-r--r--skins/larry/templates/about.html4
-rw-r--r--skins/larry/templates/addressbook.html23
-rw-r--r--skins/larry/templates/compose.html25
-rw-r--r--skins/larry/templates/contact.html2
-rw-r--r--skins/larry/templates/contactedit.html2
-rw-r--r--skins/larry/templates/importcontacts.html11
-rw-r--r--skins/larry/templates/login.html4
-rw-r--r--skins/larry/templates/mail.html17
-rw-r--r--skins/larry/templates/message.html27
-rw-r--r--skins/larry/templates/messageerror.html2
-rw-r--r--skins/larry/templates/messagepart.html34
-rw-r--r--skins/larry/templates/messagepreview.html19
-rw-r--r--skins/larry/templates/messageprint.html2
-rw-r--r--skins/larry/ui.js245
-rw-r--r--skins/larry/watermark.html2
1130 files changed, 26705 insertions, 27960 deletions
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
</IfModule>
<IfModule mod_rewrite.c>
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]
</IfModule>
-# deny access to all files not containing a "." (dot)
-# to block access to different README, Changelog, INSTALL, etc.
-# files of various skins and plugins.
-<FilesMatch "^[^\.]+$">
- # Apache 2.4
- <IfModule mod_authz_core.c>
- Require all denied
- </IfModule>
- # Apache 2.2
- <IfModule !mod_authz_core.c>
- Order Allow,Deny
- Deny from all
- </IfModule>
-</FilesMatch>
-
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>
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/<lang>.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 @@
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>-</notes>
<contents>
<dir baseinstalldir="/" name="/">
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 @@
<?php
-// $config['additional_message_headers']['X-Remote-Browser'] = $_SERVER['HTTP_USER_AGENT'];
-// $config['additional_message_headers']['X-Originating-IP'] = $_SERVER['REMOTE_ADDR'];
-// $config['additional_message_headers']['X-RoundCube-Server'] = $_SERVER['SERVER_ADDR'];
+// $rcmail_config['additional_message_headers']['X-Remote-Browser'] = $_SERVER['HTTP_USER_AGENT'];
+// $rcmail_config['additional_message_headers']['X-Originating-IP'] = $_SERVER['REMOTE_ADDR'];
+// $rcmail_config['additional_message_headers']['X-RoundCube-Server'] = $_SERVER['SERVER_ADDR'];
// if( isset( $_SERVER['MACHINE_NAME'] )) {
-// $config['additional_message_headers']['X-RoundCube-Server'] .= ' (' . $_SERVER['MACHINE_NAME'] . ')';
+// $rcmail_config['additional_message_headers']['X-RoundCube-Server'] .= ' (' . $_SERVER['MACHINE_NAME'] . ')';
// }
// To remove (e.g. X-Sender) message header use null value
-// $config['additional_message_headers']['X-Sender'] = null;
+// $rcmail_config['additional_message_headers']['X-Sender'] = null;
?>
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; $i<count($path); $i++) {
- $_folder = implode($delimiter, array_slice($path, 0, $i+1));
- if (!in_array($_folder, $list)) {
- if ($storage->create_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/<lang>.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 @@
<name>archive</name>
<channel>pear.roundcube.net</channel>
<summary>Archive feature for Roundcube</summary>
- <description>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.</description>
+ <description>This adds a button to move the selected messages to an archive folder. The folder can be selected in the settings panel.</description>
<lead>
<name>Thomas Bruederli</name>
<user>thomasb</user>
<email>roundcube@gmail.com</email>
<active>yes</active>
</lead>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2013-10-30</date>
+ <date>2011-11-23</date>
<version>
- <release>2.1</release>
- <api>2.0</api>
+ <release>1.6</release>
+ <api>1.6</api>
</version>
<stability>
<release>stable</release>
@@ -40,55 +34,21 @@
<tasks:replace from="@name@" to="name" type="package-info"/>
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
- <file name="localization/ar_SA.inc" role="data"></file>
- <file name="localization/az_AZ.inc" role="data"></file>
- <file name="localization/be_BE.inc" role="data"></file>
- <file name="localization/bg_BG.inc" role="data"></file>
- <file name="localization/bs_BA.inc" role="data"></file>
- <file name="localization/ca_ES.inc" role="data"></file>
<file name="localization/cs_CZ.inc" role="data"></file>
- <file name="localization/cy_GB.inc" role="data"></file>
- <file name="localization/da_DK.inc" role="data"></file>
<file name="localization/de_CH.inc" role="data"></file>
<file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/el_GR.inc" role="data"></file>
- <file name="localization/eb_GB.inc" role="data"></file>
<file name="localization/en_US.inc" role="data"></file>
<file name="localization/es_AR.inc" role="data"></file>
<file name="localization/es_ES.inc" role="data"></file>
<file name="localization/et_EE.inc" role="data"></file>
- <file name="localization/fa_IR.inc" role="data"></file>
- <file name="localization/fi_FI.inc" role="data"></file>
<file name="localization/fr_FR.inc" role="data"></file>
<file name="localization/gl_ES.inc" role="data"></file>
- <file name="localization/he_IL.inc" role="data"></file>
- <file name="localization/hr_HR.inc" role="data"></file>
- <file name="localization/hu_HU.inc" role="data"></file>
- <file name="localization/hy_AM.inc" role="data"></file>
- <file name="localization/id_ID.inc" role="data"></file>
- <file name="localization/it_IT.inc" role="data"></file>
<file name="localization/ja_JP.inc" role="data"></file>
- <file name="localization/km_KH.inc" role="data"></file>
- <file name="localization/ko_KR.inc" role="data"></file>
- <file name="localization/lt_LT.inc" role="data"></file>
- <file name="localization/lv_LV.inc" role="data"></file>
- <file name="localization/ml_IN.inc" role="data"></file>
- <file name="localization/nb_NO.inc" role="data"></file>
<file name="localization/nl_NL.inc" role="data"></file>
- <file name="localization/nn_NO.inc" role="data"></file>
<file name="localization/pl_PL.inc" role="data"></file>
<file name="localization/pt_BR.inc" role="data"></file>
- <file name="localization/pt_PT.inc" role="data"></file>
<file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/si_LK.inc" role="data"></file>
- <file name="localization/sk_SK.inc" role="data"></file>
- <file name="localization/sl_SI.inc" role="data"></file>
- <file name="localization/sr_CS.inc" role="data"></file>
<file name="localization/sv_SE.inc" role="data"></file>
- <file name="localization/tr_TR.inc" role="data"></file>
- <file name="localization/uk_UA.inc" role="data"></file>
- <file name="localization/vi_VN.inc" role="data"></file>
- <file name="localization/zh_CN.inc" role="data"></file>
<file name="localization/zh_TW.inc" role="data"></file>
<file name="skins/classic/archive_act.png" role="data"></file>
<file name="skins/classic/archive_pas.png" role="data"></file>
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 @@
<?php
/**
- * Database Attachments
+ * Filesystem Attachments
*
* This plugin which provides database backed storage for temporary
* attachment file handling. The primary advantage of this plugin
@@ -13,16 +13,21 @@
* @author Aleksander Machniak <alec@alec.pl>
* @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">
<name>database_attachments</name>
<channel>pear.roundcube.net</channel>
- <summary>Database storage for uploaded attachments</summary>
+ <summary>SQL database storage for uploaded attachments</summary>
<description>
This plugin which provides database backed storage for temporary
attachment file handling. The primary advantage of this plugin
@@ -24,9 +24,9 @@
<email>ziba@umich.edu</email>
<active>yes</active>
</developer>
- <date>2013-06-13</date>
+ <date>2011-11-21</date>
<version>
- <release>1.1</release>
+ <release>1.0</release>
<api>1.0</api>
</version>
<stability>
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 @@
-<?php
-
-// Enigma Plugin options
-// --------------------
-
-// A driver to use for PGP. Default: "gnupg".
-$config['enigma_pgp_driver'] = 'gnupg';
-
-// A driver to use for S/MIME. Default: "phpssl".
-$config['enigma_smime_driver'] = 'phpssl';
-
-// Keys directory for all users. Default 'enigma/home'.
-// Must be writeable by PHP process
-$config['enigma_pgp_homedir'] = null;
diff --git a/plugins/enigma/enigma.js b/plugins/enigma/enigma.js
deleted file mode 100644
index 29c648224..000000000
--- a/plugins/enigma/enigma.js
+++ /dev/null
@@ -1,206 +0,0 @@
-/* Enigma Plugin */
-
-if (window.rcmail)
-{
- rcmail.addEventListener('init', function(evt)
- {
- if (rcmail.env.task == 'settings') {
- rcmail.register_command('plugin.enigma', function() { rcmail.goto_url('plugin.enigma') }, true);
- rcmail.register_command('plugin.enigma-key-import', function() { rcmail.enigma_key_import() }, true);
- rcmail.register_command('plugin.enigma-key-export', function() { rcmail.enigma_key_export() }, true);
-
- if (rcmail.gui_objects.keyslist)
- {
- var p = rcmail;
- rcmail.keys_list = new rcube_list_widget(rcmail.gui_objects.keyslist,
- {multiselect:false, draggable:false, keyboard:false});
- rcmail.keys_list.addEventListener('select', function(o){ p.enigma_key_select(o); });
- rcmail.keys_list.init();
- rcmail.keys_list.focus();
-
- rcmail.enigma_list();
-
- rcmail.register_command('firstpage', function(props) {return rcmail.enigma_list_page('first'); });
- rcmail.register_command('previouspage', function(props) {return rcmail.enigma_list_page('previous'); });
- rcmail.register_command('nextpage', function(props) {return rcmail.enigma_list_page('next'); });
- rcmail.register_command('lastpage', function(props) {return rcmail.enigma_list_page('last'); });
- }
-
- if (rcmail.env.action == 'edit-prefs') {
- rcmail.register_command('search', function(props) {return rcmail.enigma_search(props); }, true);
- rcmail.register_command('reset-search', function(props) {return rcmail.enigma_search_reset(props); }, true);
- }
- else if (rcmail.env.action == 'plugin.enigma') {
- rcmail.register_command('plugin.enigma-import', function() { rcmail.enigma_import() }, true);
- rcmail.register_command('plugin.enigma-export', function() { rcmail.enigma_export() }, true);
- }
- }
- });
-}
-
-/*********************************************************/
-/********* Enigma Settings/Keys/Certs UI *********/
-/*********************************************************/
-
-// Display key(s) import form
-rcube_webmail.prototype.enigma_key_import = function()
-{
- this.enigma_loadframe(null, '&_a=keyimport');
-};
-
-// Submit key(s) form
-rcube_webmail.prototype.enigma_import = function()
-{
- var form, file;
- if (form = this.gui_objects.importform) {
- file = document.getElementById('rcmimportfile');
- if (file && !file.value) {
- alert(this.get_label('selectimportfile'));
- return;
- }
- form.submit();
- this.set_busy(true, 'importwait');
- this.lock_form(form, true);
- }
-};
-
-// list row selection handler
-rcube_webmail.prototype.enigma_key_select = function(list)
-{
- var id;
- if (id = list.get_single_selection())
- this.enigma_loadframe(id);
-};
-
-// load key frame
-rcube_webmail.prototype.enigma_loadframe = function(id, url)
-{
- var frm, win;
- if (this.env.contentframe && window.frames && (frm = window.frames[this.env.contentframe])) {
- if (!id && !url && (win = window.frames[this.env.contentframe])) {
- if (win.location && win.location.href.indexOf(this.env.blankpage)<0)
- win.location.href = this.env.blankpage;
- return;
- }
- this.set_busy(true);
- if (!url)
- url = '&_a=keyinfo&_id='+id;
- frm.location.href = this.env.comm_path+'&_action=plugin.enigma&_framed=1' + url;
- }
-};
-
-// Search keys/certs
-rcube_webmail.prototype.enigma_search = function(props)
-{
- if (!props && this.gui_objects.qsearchbox)
- props = this.gui_objects.qsearchbox.value;
-
- if (props || this.env.search_request) {
- var params = {'_a': 'keysearch', '_q': urlencode(props)},
- lock = this.set_busy(true, 'searching');
-// if (this.gui_objects.search_filter)
- // addurl += '&_filter=' + this.gui_objects.search_filter.value;
- this.env.current_page = 1;
- this.enigma_loadframe();
- this.enigma_clear_list();
- this.http_post('plugin.enigma', params, lock);
- }
-
- return false;
-}
-
-// Reset search filter and the list
-rcube_webmail.prototype.enigma_search_reset = function(props)
-{
- var s = this.env.search_request;
- this.reset_qsearch();
-
- if (s) {
- this.enigma_loadframe();
- this.enigma_clear_list();
-
- // refresh the list
- this.enigma_list();
- }
-
- return false;
-}
-
-// Keys/certs listing
-rcube_webmail.prototype.enigma_list = function(page)
-{
- var params = {'_a': 'keylist'},
- lock = this.set_busy(true, 'loading');
-
- this.env.current_page = page ? page : 1;
-
- if (this.env.search_request)
- params._q = this.env.search_request;
- if (page)
- params._p = page;
-
- this.enigma_clear_list();
- this.http_post('plugin.enigma', params, lock);
-}
-
-// Change list page
-rcube_webmail.prototype.enigma_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;
-
- 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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | Enigma Plugin for Roundcube |
- | Version 0.1 |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-/*
- 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 .= '&nbsp;' . html::a(array('href' => "#sigdetails",
- 'onclick' => rcmail_output::JS_OBJECT_NAME.".command('enigma-sig-details')"),
- rcube::Q($this->gettext('showdetails')));
-*/
- // test
-// $msg .= '<br /><pre>'.$sig->body.'</pre>';
-
- $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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | Abstract driver for the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | GnuPG (PGP) driver for the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | Engine of the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-
-*/
-
-/*
- 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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | Error class for the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | Key class for the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | Signature class for the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | SubKey class for the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | User Interface for the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-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('/(<form name="form"[^>]+>)/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 @@
-<?php
-/*
- +-------------------------------------------------------------------------+
- | User ID class for the Enigma Plugin |
- | |
- | 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 <alec@alec.pl> |
- +-------------------------------------------------------------------------+
-*/
-
-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 @@
-<?php
-
-$labels = array();
-$labels['enigmasettings'] = 'Enigma: Settings';
-$labels['enigmacerts'] = 'Enigma: Certificates (S/MIME)';
-$labels['enigmakeys'] = 'Enigma: Keys (PGP)';
-$labels['keysfromto'] = 'Keys $from to $to of $count';
-$labels['keyname'] = 'Name';
-$labels['keyid'] = 'Key ID';
-$labels['keyuserid'] = 'User ID';
-$labels['keytype'] = 'Key type';
-$labels['fingerprint'] = 'Fingerprint';
-$labels['subkeys'] = 'Subkeys';
-$labels['basicinfo'] = 'Basic Information';
-$labels['userids'] = 'Additional User IDs';
-$labels['typepublickey'] = 'public key';
-$labels['typekeypair'] = 'key pair';
-$labels['keyattfound'] = 'This message contains attached PGP key(s).';
-$labels['keyattimport'] = 'Import key(s)';
-
-$labels['createkeys'] = 'Create a new key pair';
-$labels['importkeys'] = 'Import key(s)';
-$labels['exportkeys'] = 'Export key(s)';
-$labels['deletekeys'] = 'Delete key(s)';
-$labels['keyactions'] = 'Key actions...';
-$labels['keydisable'] = 'Disable key';
-$labels['keyrevoke'] = 'Revoke key';
-$labels['keysend'] = 'Send public key in a message';
-$labels['keychpass'] = 'Change password';
-
-$labels['securityoptions'] = 'Message security options...';
-$labels['identdefault'] = 'Use settings of selected identity';
-$labels['encryptmsg'] = 'Encrypt this message';
-$labels['signmsg'] = 'Digitally sign this message';
-
-$messages = array();
-$messages['sigvalid'] = 'Verified signature from $sender.';
-$messages['siginvalid'] = 'Invalid signature from $sender.';
-$messages['signokey'] = 'Unverified signature. Public key not found. Key ID: $keyid.';
-$messages['sigerror'] = 'Unverified signature. Internal error.';
-$messages['decryptok'] = 'Message decrypted.';
-$messages['decrypterror'] = 'Decryption failed.';
-$messages['decryptnokey'] = 'Decryption failed. Private key not found. Key ID: $keyid.';
-$messages['decryptbadpass'] = 'Decryption failed. Bad password.';
-$messages['nokeysfound'] = 'No keys found';
-$messages['keyopenerror'] = 'Unable to get key information! Internal error.';
-$messages['keylisterror'] = 'Unable to list keys! Internal error.';
-$messages['keysimportfailed'] = 'Unable to import key(s)! Internal error.';
-$messages['keysimportsuccess'] = 'Key(s) imported successfully. Imported: $new, unchanged: $old.';
-$messages['keyconfirmdelete'] = 'Are you sure, you want to delete selected key(s)?';
-$messages['keyimporttext'] = 'You can import private and public key(s) or revocation signatures in ASCII-Armor format.';
-
-?>
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 @@
-<?php
-
-
-
-$labels['enigmasettings'] = 'Enigma: 設定';
-$labels['enigmacerts'] = 'Enigma: 証明書 (S/MIME)';
-$labels['enigmakeys'] = 'Enigma: éµ (PGP)';
-$labels['keysfromto'] = 'éµã®ä¸€è¦§ $from ~ $to (åˆè¨ˆ: $count )';
-$labels['keyname'] = 'åå‰';
-$labels['keyid'] = 'éµ ID';
-$labels['keyuserid'] = 'ユーザー ID';
-$labels['keytype'] = 'éµã®ç¨®é¡ž';
-$labels['fingerprint'] = '指紋';
-$labels['subkeys'] = 'Subkeys';
-$labels['basicinfo'] = '基本情報';
-$labels['userids'] = '追加ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ ID';
-$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'] = 'パスワードã®å¤‰æ›´';
-$labels['securityoptions'] = 'メールã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ オプション...';
-$labels['identdefault'] = 'é¸æŠžã—ãŸè­˜åˆ¥å­ã®è¨­å®šã‚’使ã†';
-$labels['encryptmsg'] = 'ã“ã®ãƒ¡ãƒ¼ãƒ«ã®æš—å·åŒ–';
-$labels['signmsg'] = 'ã“ã®ãƒ¡ãƒ¼ãƒ«ã®ãƒ‡ã‚¸ã‚¿ãƒ«ç½²å';
-$messages['sigvalid'] = '$sender ã‹ã‚‰ã®ç½²åを検証ã—ã¾ã—ãŸã€‚';
-$messages['siginvalid'] = '$sender ã‹ã‚‰ã®ç½²åãŒæ­£ã—ãã‚ã‚Šã¾ã›ã‚“。';
-$messages['signokey'] = 'ç½²åã¯æœªæ¤œè¨¼ã§ã™ã€‚公開éµãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã€‚éµ ID: $keyid';
-$messages['sigerror'] = 'ç½²åã¯æœªæ¤œè¨¼ã§ã™ã€‚内部エラーã§ã™ã€‚';
-$messages['decryptok'] = 'メールを復å·ã—ã¾ã—ãŸã€‚';
-$messages['decrypterror'] = '復å·ã«å¤±æ•—ã—ã¾ã—ãŸã€‚';
-$messages['decryptnokey'] = '復å·ã«å¤±æ•—ã—ã¾ã—ãŸã€‚秘密éµãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã€‚éµ ID: $keyid.';
-$messages['decryptbadpass'] = '復å·ã«å¤±æ•—ã—ã¾ã—ãŸã€‚パスワードãŒæ­£ã—ãã‚ã‚Šã¾ã›ã‚“。';
-$messages['nokeysfound'] = 'éµãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。';
-$messages['keyopenerror'] = 'éµæƒ…å ±ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ! 内部エラーã§ã™ã€‚';
-$messages['keylisterror'] = 'éµæƒ…å ±ã®ãƒªã‚¹ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ! 内部エラーã§ã™ã€‚';
-$messages['keysimportfailed'] = 'éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ! 内部エラーã§ã™ã€‚';
-$messages['keysimportsuccess'] = 'éµã‚’インãƒãƒ¼ãƒˆã—ã¾ã—ãŸã€‚インãƒãƒ¼ãƒˆ: $new, 未変更: $old';
-$messages['keyconfirmdelete'] = 'é¸æŠžã—ãŸéµã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?';
-$messages['keyimporttext'] = '秘密éµã¨å…¬é–‹éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã€ã¾ãŸã¯ ASCII å½¢å¼ã®ç½²åを無効ã«ã§ãã¾ã™ã€‚';
-?>
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 @@
-<?php
-/*
-
-+-----------------------------------------------------------------------+
-| plugins/enigma/localization/ru_RU.inc |
-| |
-| Russian translation for roundcube/enigma plugin |
-| Copyright (C) 2010 |
-| Licensed under the GNU GPL |
-| |
-+-----------------------------------------------------------------------+
-| Author: Sergey Dukachev <iam@dukess.ru> |
-| 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
--- a/plugins/enigma/skins/classic/enigma.png
+++ /dev/null
Binary files 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
--- a/plugins/enigma/skins/classic/enigma_error.png
+++ /dev/null
Binary files differ
diff --git a/plugins/enigma/skins/classic/key.png b/plugins/enigma/skins/classic/key.png
deleted file mode 100644
index ea1cbd11c..000000000
--- a/plugins/enigma/skins/classic/key.png
+++ /dev/null
Binary files 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
--- a/plugins/enigma/skins/classic/key_add.png
+++ /dev/null
Binary files 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
--- a/plugins/enigma/skins/classic/keys_toolbar.png
+++ /dev/null
Binary files 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 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title><roundcube:object name="pagetitle" /></title>
-<roundcube:include file="/includes/links.html" />
-<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
-</head>
-<body class="iframe">
-
-<div id="keyimport-title" class="boxtitle"><roundcube:label name="enigma.importkeys" /></div>
-
-<div id="import-form" class="boxcontent">
- <roundcube:object name="importform" />
- <p>
- <br /><roundcube:button command="plugin.enigma-import" type="input" class="button mainaction" label="import" />
- </p>
-</div>
-
-</body>
-</html>
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 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title><roundcube:object name="pagetitle" /></title>
-<roundcube:include file="/includes/links.html" />
-<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
-</head>
-<body class="iframe">
-
-<div id="keyinfo-title" class="boxtitle"><roundcube:object name="keyname" part="name" /></div>
-
-<div id="key-details" class="boxcontent">
- <roundcube:object name="keydata" />
-</div>
-
-</body>
-</html>
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 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title><roundcube:object name="pagetitle" /></title>
-<roundcube:include file="/includes/links.html" />
-<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
-<script type="text/javascript" src="/functions.js"></script>
-<script type="text/javascript" src="/splitter.js"></script>
-<style type="text/css">
-#enigmakeyslist { width: <roundcube:exp expression="!empty(cookie:enigmaviewsplitter) ? cookie:enigmaviewsplitter-5 : 210" />px; }
-#enigmacontent-box { left: <roundcube:exp expression="!empty(cookie:enigmaviewsplitter) ? cookie:enigmaviewsplitter+5 : 220" />px;
-<roundcube:exp expression="browser:ie ? ('width:expression((parseInt(this.parentNode.offsetWidth)-'.(!empty(cookie:enigmaeviewsplitter) ? cookie:enigmaviewsplitter+5 : 220).')+\\'px\\');') : ''" />
-}
-</style>
-</head>
-<body class="iframe">
-
-<div id="prefs-title" class="boxtitle"><roundcube:label name="enigma.enigmakeys" /></div>
-<div id="prefs-details" class="boxcontent">
-
-<div id="keystoolbar">
- <roundcube:button command="plugin.enigma-key-create" type="link" class="buttonPas create" classAct="button create" classSel="button createSel" title="enigma.createkeys" content=" " />
- <roundcube:button command="plugin.enigma-key-delete" type="link" class="buttonPas delete" classAct="button delete" classSel="button deleteSel" title="enigma.deletekeys" content=" " />
- <span class="separator">&nbsp;</span>
- <roundcube:button command="plugin.enigma-key-import" type="link" class="buttonPas import" classAct="button import" classSel="button importSel" title="enigma.importkeys" content=" " />
- <roundcube:button command="plugin.enigma-key-export" type="link" class="buttonPas export" classAct="button export" classSel="button exportSel" title="enigma.exportkeys" content=" " />
- <roundcube:button name="messagemenulink" id="messagemenulink" type="link" class="button keymenu" title="enigma.keyactions" onclick="rcmail_ui.show_popup('messagemenu');return false" content=" " />
-</div>
-
-<div id="quicksearchbar" style="top: 35px; right: 10px;">
- <roundcube:button name="searchmenulink" id="searchmenulink" image="/images/icons/glass.png" />
- <roundcube:object name="searchform" id="quicksearchbox" />
- <roundcube:button command="reset-search" id="searchreset" image="/images/icons/reset.gif" title="resetsearch" />
-</div>
-
-<div class="enigmascreen">
-
-<div id="enigmakeyslist">
-<div class="boxtitle"><roundcube:label name="enigma.keyname" /></div>
-<div class="boxlistcontent">
- <roundcube:object name="keyslist" id="keys-table" class="records-table" cellspacing="0" noheader="true" />
-</div>
-<div class="boxfooter">
-<div id="keylistcountbar" class="pagenav">
- <roundcube:button command="firstpage" type="link" class="buttonPas firstpage" classAct="button firstpage" classSel="button firstpageSel" title="firstpage" content=" " />
- <roundcube:button command="previouspage" type="link" class="buttonPas prevpage" classAct="button prevpage" classSel="button prevpageSel" title="previouspage" content=" " />
- <roundcube:object name="countdisplay" style="padding:0 .5em; float:left" />
- <roundcube:button command="nextpage" type="link" class="buttonPas nextpage" classAct="button nextpage" classSel="button nextpageSel" title="nextpage" content=" " />
- <roundcube:button command="lastpage" type="link" class="buttonPas lastpage" classAct="button lastpage" classSel="button lastpageSel" title="lastpage" content=" " />
-</div>
-</div>
-</div>
-
-<script type="text/javascript">
- var enigmaviewsplit = new rcube_splitter({id:'enigmaviewsplitter', p1: 'enigmakeyslist', p2: 'enigmacontent-box', orientation: 'v', relative: true, start: 215});
- rcmail.add_onload('enigmaviewsplit.init()');
-</script>
-
-<div id="enigmacontent-box">
- <roundcube:object name="keyframe" id="keyframe" width="100%" height="100%" frameborder="0" src="/watermark.html" />
-</div>
-
-</div>
-</div>
-
-<div id="messagemenu" class="popupmenu">
- <ul class="toolbarmenu">
- <li><roundcube:button class="disablelink" command="enigma.key-disable" label="enigma.keydisable" target="_blank" classAct="disablelink active" /></li>
- <li><roundcube:button class="revokelink" command="enigma.key-revoke" label="enigma.keyrevoke" classAct="revokelink active" /></li>
- <li class="separator_below"><roundcube:button class="sendlink" command="enigma.key-send" label="enigma.keysend" classAct="sendlink active" /></li>
- <li><roundcube:button class="chpasslink" command="enigma.key-chpass" label="enigma.keychpass" classAct="chpasslink active" /></li>
- </ul>
-</div>
-
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
-</body>
-</html>
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 @@
-<?php
-
-class Enigma_Plugin extends PHPUnit_Framework_TestCase
-{
-
- function setUp()
- {
- include_once dirname(__FILE__) . '/../enigma.php';
- }
-
- /**
- * Plugin object construction test
- */
- function test_constructor()
- {
- $rcube = rcube::get_instance();
- $plugin = new enigma($rcube->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 <ziba@umich.edu>
* @author Thomas Bruederli <roundcube@gmail.com>
*
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 @@
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>-</notes>
<contents>
<dir baseinstalldir="/" name="/">
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 @@
<?php
// Help content iframe source
-// %l will be replaced by the language code resolved using the 'help_language_map' option
-$config['help_source'] = 'http://roundcube.net/doc/help/0.9/%l/';
-
-// Map task/action combinations to deep-links
-// Use '<task>/<action>' or only '<task>' 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 <this-plugin-dir>/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 <this-plugin-dir>/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 &ldquo;copyright&rdquo; 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 &lt;http://www.gnu.org/licenses/&gt;.
+ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.
</pre>
<p>Also add information on how to contact you by electronic and paper mail.</p>
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 @@
<?php
/**
- * Roundcube Help Plugin
+ * Help Plugin
*
* @author Aleksander 'A.L.E.C' Machniak
- * @author Thomas Bruederli <thomas@roundcube.net>
* @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/<lang>.inc |
+ | plugins/help/localization/<lang>.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">
<name>help</name>
<channel>pear.roundcube.net</channel>
- <summary>Online Help for Roundcube</summary>
+ <summary>Help for Roundcube</summary>
<description>Plugin adds a new item (Help) in taskbar.</description>
<lead>
<name>Aleksander Machniak</name>
@@ -13,10 +13,10 @@
<email>alec@alec.pl</email>
<active>yes</active>
</lead>
- <date>2013-07-03</date>
+ <date>2012-11-11</date>
<version>
- <release>1.4</release>
- <api>1.4</api>
+ <release>1.3</release>
+ <api>1.2</api>
</version>
<stability>
<release>stable</release>
@@ -31,6 +31,7 @@
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file name="config.inc.php.dist" role="data"></file>
+ <file name="content/about.html" role="data"></file>
<file name="content/license.html" role="data"></file>
<file name="localization/bs_BA.inc" role="data"></file>
<file name="localization/ca_ES.inc" role="data"></file>
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 @@
<script type="text/javascript">
function help_init_settings_tabs()
{
- var action, tab = '#helptabindex';
+ var action, tab = '#helptabdefault';
if (window.rcmail && (action = rcmail.env.action)) {
- tab = '#helptab' + (action ? action : 'index');
+ tab = '#helptab' + (action ? action : 'default');
}
$(tab).addClass('tablink-selected');
}
</script>
</head>
-<roundcube:if condition="env:extwin" />
-<body class="extwin">
-<roundcube:object name="message" id="message" />
-<roundcube:button name="close" type="link" label="close" class="closelink" onclick="self.close()" />
-<roundcube:else />
<body>
+
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
-<roundcube:endif />
<div id="tabsbar">
-<span id="helptabindex" class="tablink"><roundcube:object name="tablink" action="index" type="link" label="help.help" title="help.help" /></span>
-<span id="helptababout" class="tablink"><roundcube:object name="tablink" action="about" type="link" label="help.about" title="help.about" class="tablink" /></span>
-<span id="helptablicense" class="tablink"><roundcube:object name="tablink" action="license" type="link" label="help.license" title="help.license" class="tablink" /></span>
+<span id="helptabdefault" class="tablink"><roundcube:button name="helpdefault" href="?_task=help" type="link" label="help.help" title="help.help" /></span>
+<span id="helptababout" class="tablink"><roundcube:button name="helpabout" href="?_task=help&_action=about" type="link" label="help.about" title="help.about" class="tablink" /></span>
+<span id="helptablicense" class="tablink"><roundcube:button name="helplicense" href="?_task=help&_action=license" type="link" label="help.license" title="help.license" class="tablink" /></span>
<roundcube:container name="helptabs" id="helptabsbar" />
<script type="text/javascript"> if (window.rcmail) rcmail.add_onload(help_init_settings_tabs);</script>
</div>
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 @@
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
-<roundcube:if condition="env:extwin" /><body class="extwin"><roundcube:else /><body><roundcube:endif />
+<body>
<roundcube:include file="/includes/header.html" />
<div id="mainscreen">
<div id="helptoolbar" class="toolbar">
-<roundcube:object name="tablink" action="index" type="link" label="help.help" title="help.help" class="button help" />
-<roundcube:object name="tablink" action="about" type="link" label="help.about" title="help.about" class="button about" />
-<roundcube:object name="tablink" action="license" type="link" label="help.license" title="help.license" class="button license" />
+<roundcube:button name="helpdefault" href="?_task=help" type="link" label="help.help" title="help.help" class="button help" />
+<roundcube:button name="helpabout" href="?_task=help&amp;_action=about" type="link" label="help.about" title="help.about" class="button about" />
+<roundcube:button name="helplicense" href="?_task=help&amp;_action=license" type="link" label="help.license" title="help.license" class="button license" />
<roundcube:container name="helptabs" id="helptabsbar" />
</div>
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/<lang>.inc |
+ | plugins/hide_blockquote/localization/<lang>.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 @@
<?php
// if you want to load localization strings for specific sub-libraries of jquery-ui, configure them here
-$config['jquery_ui_i18n'] = array('datepicker');
+$rcmail_config['jquery_ui_i18n'] = array('datepicker');
// map Roundcube skins with jquery-ui themes here
-$config['jquery_ui_skin_map'] = array(
+$rcmail_config['jquery_ui_skin_map'] = array(
'larry' => '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 <roundcube@wa.ter.net>
* @author Thomas Bruederli <roundcube@gmail.com>
- * @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
index e8acb16ea..e8acb16ea 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery-ui-i18n.js
+++ b/plugins/jqueryui/js/i18n/jquery-ui-i18n.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js
index 0922ef7a1..0922ef7a1 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js
index 7b175af40..7b175af40 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js
index cef0f08fd..cef0f08fd 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js
index a133a9eb2..a133a9eb2 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js
index 86ab88582..86ab88582 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js
index f08870ffe..f08870ffe 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js
index a10b549c2..a10b549c2 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js
index b96b1a51c..b96b1a51c 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js
index cf3a38e6c..cf3a38e6c 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js
index 7e42948b3..7e42948b3 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js
index cfe91759b..cfe91759b 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js
index 1ac47561a..1ac47561a 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js
index c1a1020a1..c1a1020a1 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js
index 16a096e75..16a096e75 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js
index 7819df052..7819df052 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js
index 39e44fc57..39e44fc57 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js
index 97a2d6ead..97a2d6ead 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js
index 62cbea8fa..62cbea8fa 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js
index a71db2c72..a71db2c72 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js
index bb957f6d8..bb957f6d8 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js
index bd6d99498..bd6d99498 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js
index 9c848a04b..9c848a04b 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js
index e574537b0..e574537b0 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js
index 934afd1d0..934afd1d0 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js
index 59b989a6d..59b989a6d 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js
index b9e8deec5..b9e8deec5 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js
index 6c563b997..6c563b997 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js
index 2fe37b64b..2fe37b64b 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js
index b28c268c1..b28c268c1 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js
index 6d4eca555..6d4eca555 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js
index 6327fa60c..6327fa60c 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js
index 925341a7a..925341a7a 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js
index a01f043f8..a01f043f8 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js
index 4d0b63c77..4d0b63c77 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js
index c10658d79..c10658d79 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js
index dcd6a65df..dcd6a65df 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js
index f9c4e3a02..f9c4e3a02 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js
index af36f3d6b..af36f3d6b 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js
index 87c79d594..87c79d594 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js
index 1afaaac5d..1afaaac5d 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js
index 28cc102fc..28cc102fc 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js
index 028532551..028532551 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js
index 9b8f460db..9b8f460db 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js
index e70de7299..e70de7299 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js
index 7b3cdf425..7b3cdf425 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js
index 203f16069..203f16069 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js
index d36e430be..d36e430be 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js
index 0ffc515b9..0ffc515b9 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js
index 521967ec3..521967ec3 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js
index 999f20e3e..999f20e3e 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js
index 22ed21685..22ed21685 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js
index a988270d7..a988270d7 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js
index a51971405..a51971405 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js
index 83ae8e811..83ae8e811 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js
index 048a47af7..048a47af7 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js
index d6086a789..d6086a789 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js
index 6d5d04211..6d5d04211 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js
index d4e1d9af0..d4e1d9af0 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js
index cbb5ad135..cbb5ad135 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js
index 40431ed8e..40431ed8e 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js
index aecfd27cc..aecfd27cc 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js
index 9a20e4d37..9a20e4d37 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js
index 75b583a77..75b583a77 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js
index 2bdc82ff7..2bdc82ff7 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js
index b49e7eb13..b49e7eb13 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js
index d337e4a99..d337e4a99 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js
index ef6f4e715..ef6f4e715 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js
diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js
index b9105ea50..b9105ea50 100755..100644
--- a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js
+++ b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js
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
index aa7a923e7..aa7a923e7 100755..100644
--- a/plugins/jqueryui/js/jquery-ui-1.9.1.custom.min.js
+++ b/plugins/jqueryui/js/jquery-ui-1.9.1.custom.min.js
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
index 5b5dab2ab..5b5dab2ab 100755..100644
--- 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
Binary files differ
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
index ac8b229af..ac8b229af 100755..100644
--- 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
Binary files differ
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
index 6a5d37d65..6a5d37d65 100755..100644
--- 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
Binary files differ
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
index 4443fdc1a..4443fdc1a 100755..100644
--- 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
Binary files differ
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
index b3533aafe..b3533aafe 100755..100644
--- 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
Binary files differ
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
index d0a127f4d..d0a127f4d 100755..100644
--- 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
Binary files differ
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
index ecc0ac16a..ecc0ac16a 100755..100644
--- 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
Binary files differ
diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.png
index 7c211aa08..7c211aa08 100755..100644
--- a/plugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.png
+++ b/plugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.png
index fe079a595..fe079a595 100755..100644
--- a/plugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.png
+++ b/plugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.png
index f87de1ca1..f87de1ca1 100755..100644
--- a/plugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.png
+++ b/plugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.png
index b2fe02927..b2fe02927 100755..100644
--- a/plugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.png
+++ b/plugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.png
index 91aada0ab..91aada0ab 100755..100644
--- a/plugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.png
+++ b/plugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.png
Binary files differ
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
index 1002a95fe..1002a95fe 100755..100644
--- a/plugins/jqueryui/themes/classic/jquery-ui-1.9.1.custom.css
+++ b/plugins/jqueryui/themes/classic/jquery-ui-1.9.1.custom.css
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
index 04f19af52..04f19af52 100755..100644
--- 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
Binary files differ
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
index eaa8cfa3c..eaa8cfa3c 100755..100644
--- 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
Binary files differ
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
index 3231591bd..3231591bd 100755..100644
--- 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
Binary files differ
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
index e2286450a..e2286450a 100755..100644
--- 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
Binary files differ
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
index a13a9720f..a13a9720f 100755..100644
--- 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
Binary files differ
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
index 675c05118..675c05118 100755..100644
--- 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
Binary files differ
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
--- a/plugins/jqueryui/themes/larry/images/ui-icons-datepicker.png
+++ b/plugins/jqueryui/themes/larry/images/ui-icons-datepicker.png
Binary files 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
index 083a564f0..083a564f0 100755..100644
--- a/plugins/jqueryui/themes/larry/images/ui-icons_004458_256x240.png
+++ b/plugins/jqueryui/themes/larry/images/ui-icons_004458_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.png b/plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.png
index fdc2c494f..fdc2c494f 100755..100644
--- a/plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.png
+++ b/plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.png
Binary files differ
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
index 3062bbb62..01afcac0d 100755..100644
--- 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
index 5b5dab2ab..5b5dab2ab 100755..100644
--- 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
Binary files differ
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
index 47acaadd7..47acaadd7 100755..100644
--- 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
Binary files differ
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
index 9d149b1c6..9d149b1c6 100755..100644
--- 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
Binary files differ
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
index 014951529..014951529 100755..100644
--- 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
Binary files differ
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
index 4443fdc1a..4443fdc1a 100755..100644
--- 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
Binary files differ
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
index 81ecc362d..81ecc362d 100755..100644
--- 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
Binary files differ
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
index 4f3faf8aa..4f3faf8aa 100755..100644
--- 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
Binary files differ
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
index 38c38335d..38c38335d 100755..100644
--- 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
Binary files differ
diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png
index 6f4bd87c0..6f4bd87c0 100755..100644
--- a/plugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png
+++ b/plugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png
index 09d1cdc85..09d1cdc85 100755..100644
--- a/plugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png
+++ b/plugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png
index bd2cf079a..bd2cf079a 100755..100644
--- a/plugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png
+++ b/plugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png
index 9f3eafaab..9f3eafaab 100755..100644
--- a/plugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png
+++ b/plugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png
index 2ab019b73..2ab019b73 100755..100644
--- a/plugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png
+++ b/plugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png
index ad2dc6f9d..ad2dc6f9d 100755..100644
--- a/plugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png
+++ b/plugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png
Binary files differ
diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png
index 78625024d..78625024d 100755..100644
--- a/plugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png
+++ b/plugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png
Binary files differ
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
index 614420add..614420add 100755..100644
--- a/plugins/jqueryui/themes/redmond/jquery-ui-1.9.1.custom.css
+++ b/plugins/jqueryui/themes/redmond/jquery-ui-1.9.1.custom.css
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 <log_dir>/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)
{
@@ -920,110 +957,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/<lang>.inc |
+ | plugins/managesieve/localization/<lang>.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 = $('<span class="listarea"></span>'),
- 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 = '<span class="listelement">'
- + '<span class="reset"></span><input type="text"></span>',
- 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 <SELECT>
+ function filtersets_list($attrib, $no_env = false)
+ {
+ // add id to message list table if not specified
+ if (!strlen($attrib['id']))
+ $attrib['id'] = 'rcmfiltersetslist';
+
+ $list = $this->list_scripts();
+
+ if ($list) {
+ asort($list, SORT_LOCALE_STRING);
+ }
+
+ if (!empty($attrib['type']) && $attrib['type'] == 'list') {
+ // define list of cols to be displayed
+ $a_show_cols = array('name');
+
+ if ($list) {
+ foreach ($list as $idx => $set) {
+ $scripts['S'.$idx] = $set;
+ $result[] = array(
+ 'name' => $set,
+ 'id' => 'S'.$idx,
+ 'class' => !in_array($set, $this->active) ? 'disabled' : '',
+ );
+ }
+ }
+
+ // create XHTML table
+ $out = rcube_table_output($attrib, $result, $a_show_cols, 'id');
+
+ $this->rc->output->set_env('filtersets', $scripts);
+ $this->rc->output->include_script('list.js');
+ }
+ else {
+ $select = new html_select(array('name' => '_set', 'id' => $attrib['id'],
+ 'onchange' => $this->rc->task != 'mail' ? 'rcmail.managesieve_set()' : ''));
+
+ if ($list) {
+ foreach ($list as $set)
+ $select->add($set, $set);
+ }
+
+ $out = $select->show($this->sieve->current);
+ }
+
+ // set client env
+ if (!$no_env) {
+ $this->rc->output->add_gui_object('filtersetslist', $attrib['id']);
+ $this->rc->output->add_label('managesieve.setdeleteconfirm');
+ }
+
+ return $out;
+ }
+
+ function filter_frame($attrib)
+ {
+ if (!$attrib['id'])
+ $attrib['id'] = 'rcmfilterframe';
+
+ $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);
+ }
+
+ function filterset_form($attrib)
+ {
+ if (!$attrib['id'])
+ $attrib['id'] = 'rcmfiltersetform';
+
+ $out = '<form name="filtersetform" action="./" method="post" enctype="multipart/form-data">'."\n";
+
+ $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' => '_newset', 'value' => 1));
+
+ $out .= $hiddenfields->show();
+
+ $name = get_input_value('_name', RCUBE_INPUT_POST);
+ $copy = get_input_value('_copy', RCUBE_INPUT_POST);
+ $selected = get_input_value('_from', RCUBE_INPUT_POST);
+
+ // filter set name input
+ $input_name = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30,
+ 'class' => ($this->errors['name'] ? 'error' : '')));
+
+ $out .= sprintf('<label for="%s"><b>%s:</b></label> %s<br /><br />',
+ '_name', Q($this->gettext('filtersetname')), $input_name->show($name));
+
+ $out .="\n<fieldset class=\"itemlist\"><legend>" . $this->gettext('filters') . ":</legend>\n";
+ $out .= '<input type="radio" id="from_none" name="_from" value="none"'
+ .(!$selected || $selected=='none' ? ' checked="checked"' : '').'></input>';
+ $out .= sprintf('<label for="%s">%s</label> ', '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 .= '<br /><input type="radio" id="from_set" name="_from" value="set"'
+ .($selected=='set' ? ' checked="checked"' : '').'></input>';
+ $out .= sprintf('<label for="%s">%s:</label> ', '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 .= '<br /><input type="radio" id="from_file" name="_from" value="file"'
+ .($selected=='file' ? ' checked="checked"' : '').'></input>';
+ $out .= sprintf('<label for="%s">%s:</label> ', 'from_file', Q($this->gettext('fromfile')));
+ $out .= $upload->show();
+ $out .= '</fieldset>';
+
+ $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 = '<form name="filterform" action="./" method="post">'."\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<label for=\"%s\"><b>%s:</b></label> %s\n",
+ $field_id, Q($this->gettext('filtername')), $input_name);
+
+ // filter set selector
+ if ($this->rc->task == 'mail') {
+ $out .= sprintf("\n&nbsp;<label for=\"%s\"><b>%s:</b></label> %s\n",
+ $field_id, Q($this->gettext('filterset')),
+ $this->filtersets_list(array('id' => 'sievescriptname'), true));
+ }
+
+ $out .= '<br /><br /><fieldset><legend>' . Q($this->gettext('messagesrules')) . "</legend>\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<label for=\"%s\">%s</label>&nbsp;\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<label for=\"%s\">%s</label>\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<label for=\"%s\">%s</label>\n",
+ $input_join, $field_id, Q($this->gettext('filterany')));
+
+ $rows_num = isset($scr) ? sizeof($scr['tests']) : 1;
+
+ $out .= '<div id="rules"'.($any ? ' style="display: none"' : '').'>';
+ for ($x=0; $x<$rows_num; $x++)
+ $out .= $this->rule_div($fid, $x);
+ $out .= "</div>\n";
+
+ $out .= "</fieldset>\n";
+
+ // actions
+ $out .= '<fieldset><legend>' . Q($this->gettext('messagesactions')) . "</legend>\n";
+
+ $rows_num = isset($scr) ? sizeof($scr['actions']) : 1;
+
+ $out .= '<div id="actions">';
+ for ($x=0; $x<$rows_num; $x++)
+ $out .= $this->action_div($fid, $x);
+ $out .= "</div>\n";
+
+ $out .= "</fieldset>\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 = '<div id="custom_header' .$id. '" style="display:' .(isset($custom) ? 'inline' : 'none'). '">
+ <input type="text" name="_custom_header[]" id="custom_header_i'.$id.'" '
+ . $this->error_class($id, 'test', 'header', 'custom_header_i')
+ .' value="' .Q($custom). '" size="15" />&nbsp;</div>' . "\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 .= '<input type="text" name="_rule_target[]" id="rule_target' .$id. '"
+ value="' .Q($target). '" size="20" ' . $this->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 .= '<div id="rule_size' .$id. '" style="display:' . ($rule['test']=='size' ? 'inline' : 'none') .'">';
+ $tout .= $select_size_op->show($rule['test']=='size' ? $rule['type'] : '');
+ $tout .= '<input type="text" name="_rule_size_target[]" id="rule_size_i'.$id.'" value="'.$sizetarget.'" size="10" '
+ . $this->error_class($id, 'test', 'sizetarget', 'rule_size_i') .' />
+ <input type="radio" name="_rule_size_item['.$id.']" value=""'
+ . (!$sizeitem ? ' checked="checked"' : '') .' class="radio" />'.rcube_label('B').'
+ <input type="radio" name="_rule_size_item['.$id.']" value="K"'
+ . ($sizeitem=='K' ? ' checked="checked"' : '') .' class="radio" />'.rcube_label('KB').'
+ <input type="radio" name="_rule_size_item['.$id.']" value="M"'
+ . ($sizeitem=='M' ? ' checked="checked"' : '') .' class="radio" />'.rcube_label('MB').'
+ <input type="radio" name="_rule_size_item['.$id.']" value="G"'
+ . ($sizeitem=='G' ? ' checked="checked"' : '') .' class="radio" />'.rcube_label('GB');
+ $tout .= '</div>';
+
+ // 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 = '<div id="rule_mod' .$id. '" class="adv" style="display:' . ($need_mod ? 'block' : 'none') .'">';
+ $mout .= ' <span>';
+ $mout .= Q($this->gettext('modifier')) . ' ';
+ $mout .= $select_mod->show($rule['test']);
+ $mout .= '</span>';
+ $mout .= ' <span id="rule_mod_type' . $id . '"';
+ $mout .= ' style="display:' . (in_array($rule['test'], array('address', 'envelope')) ? 'inline' : 'none') .'">';
+ $mout .= Q($this->gettext('modtype')) . ' ';
+ $mout .= $select_type->show($rule['part']);
+ $mout .= '</span>';
+ $mout .= '</div>';
+
+ // 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 .= '<div id="rule_trans' .$id. '" class="adv" style="display:' . ($rule['test'] == 'body' ? 'block' : 'none') .'">';
+ $mout .= ' <span>';
+ $mout .= Q($this->gettext('modifier')) . ' ';
+ $mout .= $select_mod->show($rule['part']);
+ $mout .= '<input type="text" name="_rule_trans_type[]" id="rule_trans_type'.$id
+ . '" value="'.(is_array($rule['content']) ? implode(',', $rule['content']) : $rule['content'])
+ .'" size="20" style="display:' . ($rule['part'] == 'content' ? 'inline' : 'none') .'"'
+ . $this->error_class($id, 'test', 'part', 'rule_trans_type') .' />';
+ $mout .= '</span>';
+ $mout .= '</div>';
+
+ // 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 .= '<div id="rule_comp' .$id. '" class="adv" style="display:' . ($rule['test'] != 'size' ? 'block' : 'none') .'">';
+ $mout .= ' <span>';
+ $mout .= Q($this->gettext('comparator')) . ' ';
+ $mout .= $select_comp->show($rule['comparator']);
+ $mout .= '</span>';
+ $mout .= '</div>';
+
+ // Build output table
+ $out = $div ? '<div class="rulerow" id="rulerow' .$id .'">'."\n" : '';
+ $out .= '<table><tr>';
+ $out .= '<td class="advbutton">';
+ $out .= '<a href="#" id="ruleadv' . $id .'" title="'. Q($this->gettext('advancedopts')). '"
+ onclick="rule_adv_switch(' . $id .', this)" class="show">&nbsp;&nbsp;</a>';
+ $out .= '</td>';
+ $out .= '<td class="rowactions">' . $aout . '</td>';
+ $out .= '<td class="rowtargets">' . $tout . "\n";
+ $out .= '<div id="rule_advanced' .$id. '" style="display:none">' . $mout . '</div>';
+ $out .= '</td>';
+
+ // add/del buttons
+ $out .= '<td class="rowbuttons">';
+ $out .= '<a href="#" id="ruleadd' . $id .'" title="'. Q($this->gettext('add')). '"
+ onclick="rcmail.managesieve_ruleadd(' . $id .')" class="button add"></a>';
+ $out .= '<a href="#" id="ruledel' . $id .'" title="'. Q($this->gettext('del')). '"
+ onclick="rcmail.managesieve_ruledel(' . $id .')" class="button del' . ($rows_num<2 ? ' disabled' : '') .'"></a>';
+ $out .= '</td>';
+ $out .= '</tr></table>';
+
+ $out .= $div ? "</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 ? '<div class="actionrow" id="actionrow' .$id .'">'."\n" : '';
+
+ $out .= '<table><tr><td class="rowactions">';
+
+ // 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 .= '</td>';
+
+ // actions target inputs
+ $out .= '<td class="rowtargets">';
+ // shared targets
+ $out .= '<input type="text" name="_action_target['.$id.']" id="action_target' .$id. '" '
+ .'value="' .($action['type']=='redirect' ? Q($action['target'], 'strict', false) : ''). '" size="35" '
+ .'style="display:' .($action['type']=='redirect' ? 'inline' : 'none') .'" '
+ . $this->error_class($id, 'action', 'target', 'action_target') .' />';
+ $out .= '<textarea name="_action_target_area['.$id.']" id="action_target_area' .$id. '" '
+ .'rows="3" cols="35" '. $this->error_class($id, 'action', 'targetarea', 'action_target_area')
+ .'style="display:' .(in_array($action['type'], array('reject', 'ereject')) ? 'inline' : 'none') .'">'
+ . (in_array($action['type'], array('reject', 'ereject')) ? Q($action['target'], 'strict', false) : '')
+ . "</textarea>\n";
+
+ // vacation
+ $out .= '<div id="action_vacation' .$id.'" style="display:' .($action['type']=='vacation' ? 'inline' : 'none') .'">';
+ $out .= '<span class="label">'. Q($this->gettext('vacationreason')) .'</span><br />'
+ .'<textarea name="_action_reason['.$id.']" id="action_reason' .$id. '" '
+ .'rows="3" cols="35" '. $this->error_class($id, 'action', 'reason', 'action_reason') . '>'
+ . Q($action['reason'], 'strict', false) . "</textarea>\n";
+ $out .= '<br /><span class="label">' .Q($this->gettext('vacationsubject')) . '</span><br />'
+ .'<input type="text" name="_action_subject['.$id.']" id="action_subject'.$id.'" '
+ .'value="' . (is_array($action['subject']) ? Q(implode(', ', $action['subject']), 'strict', false) : $action['subject']) . '" size="35" '
+ . $this->error_class($id, 'action', 'subject', 'action_subject') .' />';
+ $out .= '<br /><span class="label">' .Q($this->gettext('vacationaddresses')) . '</span><br />'
+ .'<input type="text" name="_action_addresses['.$id.']" id="action_addr'.$id.'" '
+ .'value="' . (is_array($action['addresses']) ? Q(implode(', ', $action['addresses']), 'strict', false) : $action['addresses']) . '" size="35" '
+ . $this->error_class($id, 'action', 'addresses', 'action_addr') .' />';
+ $out .= '<br /><span class="label">' . Q($this->gettext('vacationdays')) . '</span><br />'
+ .'<input type="text" name="_action_days['.$id.']" id="action_days'.$id.'" '
+ .'value="' .Q($action['days'], 'strict', false) . '" size="2" '
+ . $this->error_class($id, 'action', 'days', 'action_days') .' />';
+ $out .= '</div>';
+
+ // flags
+ $flags = array(
+ 'read' => '\\Seen',
+ 'answered' => '\\Answered',
+ 'flagged' => '\\Flagged',
+ 'deleted' => '\\Deleted',
+ 'draft' => '\\Draft',
+ );
+ $flags_target = (array)$action['target'];
+
+ $out .= '<div id="action_flags' .$id.'" style="display:'
+ . (preg_match('/^(set|add|remove)flag$/', $action['type']) ? 'inline' : 'none') . '"'
+ . $this->error_class($id, 'action', 'flags', 'action_flags') . '>';
+ foreach ($flags as $fidx => $flag) {
+ $out .= '<input type="checkbox" name="_action_flags[' .$id .'][]" value="' . $flag . '"'
+ . (in_array_nocase($flag, $flags_target) ? 'checked="checked"' : '') . ' />'
+ . Q($this->gettext('flag'.$fidx)) .'<br>';
+ }
+ $out .= '</div>';
+
+ // set variable
+ $set_modifiers = array(
+ 'lower',
+ 'upper',
+ 'lowerfirst',
+ 'upperfirst',
+ 'quotewildcard',
+ 'length'
+ );
+
+ $out .= '<div id="action_set' .$id.'" style="display:' .($action['type']=='set' ? 'inline' : 'none') .'">';
+ $out .= '<span class="label">' .Q($this->gettext('setvarname')) . '</span><br />'
+ .'<input type="text" name="_action_varname['.$id.']" id="action_varname'.$id.'" '
+ .'value="' . Q($action['name']) . '" size="35" '
+ . $this->error_class($id, 'action', 'name', 'action_varname') .' />';
+ $out .= '<br /><span class="label">' .Q($this->gettext('setvarvalue')) . '</span><br />'
+ .'<input type="text" name="_action_varvalue['.$id.']" id="action_varvalue'.$id.'" '
+ .'value="' . Q($action['value']) . '" size="35" '
+ . $this->error_class($id, 'action', 'value', 'action_varvalue') .' />';
+ $out .= '<br /><span class="label">' .Q($this->gettext('setvarmodifiers')) . '</span><br />';
+ foreach ($set_modifiers as $j => $s_m) {
+ $s_m_id = 'action_varmods' . $id . $s_m;
+ $out .= sprintf('<input type="checkbox" name="_action_varmods[%s][]" value="%s" id="%s"%s />%s<br>',
+ $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 .= '</div>';
+
+ // notify
+ // skip :options tag - not used by the mailto method
+ $out .= '<div id="action_notify' .$id.'" style="display:' .($action['type']=='notify' ? 'inline' : 'none') .'">';
+ $out .= '<span class="label">' .Q($this->gettext('notifyaddress')) . '</span><br />'
+ .'<input type="text" name="_action_notifyaddress['.$id.']" id="action_notifyaddress'.$id.'" '
+ .'value="' . Q($action['address']) . '" size="35" '
+ . $this->error_class($id, 'action', 'address', 'action_notifyaddress') .' />';
+ $out .= '<br /><span class="label">'. Q($this->gettext('notifybody')) .'</span><br />'
+ .'<textarea name="_action_notifybody['.$id.']" id="action_notifybody' .$id. '" '
+ .'rows="3" cols="35" '. $this->error_class($id, 'action', 'method', 'action_notifybody') . '>'
+ . Q($action['body'], 'strict', false) . "</textarea>\n";
+ $out .= '<br /><span class="label">' .Q($this->gettext('notifysubject')) . '</span><br />'
+ .'<input type="text" name="_action_notifymessage['.$id.']" id="action_notifymessage'.$id.'" '
+ .'value="' . Q($action['message']) . '" size="35" '
+ . $this->error_class($id, 'action', 'message', 'action_notifymessage') .' />';
+ $out .= '<br /><span class="label">' .Q($this->gettext('notifyfrom')) . '</span><br />'
+ .'<input type="text" name="_action_notifyfrom['.$id.']" id="action_notifyfrom'.$id.'" '
+ .'value="' . Q($action['from']) . '" size="35" '
+ . $this->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 .= '<br /><span class="label">' . Q($this->gettext('notifyimportance')) . '</span><br />';
+ $out .= $select_importance->show($action['importance'] ? $action['importance'] : 2);
+ $out .= '</div>';
+
+ // 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 .= '</td>';
+
+ // add/del buttons
+ $out .= '<td class="rowbuttons">';
+ $out .= '<a href="#" id="actionadd' . $id .'" title="'. Q($this->gettext('add')). '"
+ onclick="rcmail.managesieve_actionadd(' . $id .')" class="button add"></a>';
+ $out .= '<a href="#" id="actiondel' . $id .'" title="'. Q($this->gettext('del')). '"
+ onclick="rcmail.managesieve_actiondel(' . $id .')" class="button del' . ($rows_num<2 ? ' disabled' : '') .'"></a>';
+ $out .= '</td>';
+
+ $out .= '</tr></table>';
+
+ $out .= $div ? "</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 @@
<email>alec@alec.pl</email>
<active>yes</active>
</lead>
- <date>2013-09-09</date>
+ <date>2013-02-17</date>
<version>
- <release>7.0</release>
- <api>7.0</api>
+ <release>6.2</release>
+ <api>6.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>-</notes>
<contents>
<dir baseinstalldir="/" name="/">
@@ -38,10 +38,6 @@
<tasks:replace from="@name@" to="name" type="package-info"/>
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
- <file name="lib/Roundcube/rcube_sieve.php" role="php"></file>
- <file name="lib/Roundcube/rcube_sieve_engine.php" role="php"></file>
- <file name="lib/Roundcube/rcube_sieve_script.php" role="php"></file>
- <file name="lib/Net/Sieve.php" role="php"></file>
<file name="localization/be_BE.inc" role="data"></file>
<file name="localization/bg_BG.inc" role="data"></file>
<file name="localization/bs_BA.inc" role="data"></file>
@@ -97,7 +93,6 @@
<file name="skins/classic/images/add.png" role="data"></file>
<file name="skins/classic/images/del.png" role="data"></file>
<file name="skins/classic/images/down_small.gif" role="data"></file>
- <file name="skins/classic/images/erase.png" role="data"></file>
<file name="skins/classic/images/filter.png" role="data"></file>
<file name="skins/classic/images/up_small.gif" role="data"></file>
<file name="skins/larry/managesieve.css" role="data"></file>
@@ -108,8 +103,11 @@
<file name="skins/larry/images/add.png" role="data"></file>
<file name="skins/larry/images/del.png" role="data"></file>
<file name="skins/larry/images/down_small.gif" role="data"></file>
- <file name="skins/larry/images/erase.png" role="data"></file>
<file name="skins/larry/images/up_small.gif" role="data"></file>
+ <file name="managesieve.php" role="php"></file>
+ <file name="lib/rcube_sieve.php" role="php"></file>
+ <file name="lib/rcube_sieve_script.php" role="php"></file>
+ <file name="lib/Net/Sieve.php" role="php"></file>
<file name="config.inc.php.dist" role="data"></file>
</dir>
<!-- / -->
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 @@
</style>
</head>
-<body>
+<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
@@ -83,9 +83,5 @@
</ul>
</div>
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
</body>
</html>
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/<lang>.inc |
+ | plugins/markasjunk/localization/<lang>.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/<lang>.inc |
+ | plugins/new_user_dialog/localization/<lang>.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 @@
<email>roundcube@gmail.com</email>
<active>yes</active>
</lead>
- <date>2013-05-09</date>
+ <date>2012-01-16</date>
+ <time>17:00</time>
<version>
- <release>2.0</release>
- <api>2.0</api>
+ <release>1.5</release>
+ <api>1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <notes>
+- Use jquery UI to render the dialog
+- Fixed IDNA encoding/decoding of e-mail addresses (#1487909)
+ </notes>
<contents>
<dir baseinstalldir="/" name="/">
<file name="new_user_dialog.php" role="php">
@@ -66,4 +71,84 @@
</required>
</dependencies>
<phprelease/>
+ <changelog>
+ <release>
+ <date>2010-03-29</date>
+ <time>13:20:00</time>
+ <version>
+ <release>1.0</release>
+ <api>1.0</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
+ <notes></notes>
+ </release>
+ <release>
+ <date>2010-05-13</date>
+ <time>19:35:00</time>
+ <version>
+ <release>1.1</release>
+ <api>1.0</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
+ <notes>
+- Fix space bar and backspace buttons not working (#1486726)
+ </notes>
+ </release>
+ <release>
+ <date>2010-05-27</date>
+ <time>12:00:00</time>
+ <version>
+ <release>1.2</release>
+ <api>1.0</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
+ <notes>
+- Add overlay box only to mail task main template
+- Fix possible error on form submission (#1486103)
+ </notes>
+ </release>
+ <release>
+ <date>2010-12-02</date>
+ <time>12:00:00</time>
+ <version>
+ <release>1.3</release>
+ <api>1.0</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
+ <notes>
+- Added setting of focus on name input
+- Added gl_ES translation
+ </notes>
+ </release>
+ <release>
+ <date>2012-01-16</date>
+ <time>17:00:00</time>
+ <version>
+ <release>1.5</release>
+ <api>1.0</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
+ <notes>- Use jquery UI to render the dialog</notes>
+ </release>
+ </changelog>
</package>
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 @@
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>-</notes>
<contents>
<dir baseinstalldir="/" name="/">
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 @@
<?php
// Enables basic notification
-$config['newmail_notifier_basic'] = false;
+$rcmail_config['newmail_notifier_basic'] = false;
// Enables sound notification
-$config['newmail_notifier_sound'] = false;
+$rcmail_config['newmail_notifier_sound'] = false;
// Enables desktop notification
-$config['newmail_notifier_desktop'] = false;
-
-// Desktop notification close timeout in seconds
-$config['newmail_notifier_desktop_timeout'] = 10;
+$rcmail_config['newmail_notifier_desktop'] = false;
?>
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/<lang>.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)
$('<link rel="shortcut icon" href="'+rcmail.env.favicon_href+'"/>').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 @@
<email>alec@alec.pl</email>
<active>yes</active>
</lead>
- <date>2013-10-04</date>
+ <date>2012-02-07</date>
<version>
- <release>0.7</release>
- <api>0.5</api>
+ <release>0.4</release>
+ <api>0.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>-</notes>
<contents>
<dir baseinstalldir="/" name="/">
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 <alec@alec.pl>
+ @author Aleksander 'A.L.E.C' Machniak <alec@alec.pl>
@author <see driver files for driver authors>
-----------------------------------------------------------------------
- 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 <fulvio@venturelli.org>
+ * 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 <christian@chech.fr>
+ * @version 2.0
+ * @author Fulvio Venturelli <fulvio@venturelli.org>
*/
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 <me@tillkruess.com>
* @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('~<input name="(.+?)" type="hidden" value="(.+?)">~i', $result, $fields);
+ foreach ($fields[1] as $field_key => $field_name) {
+ $postfields[$field_name] = $fields[2][$field_key];
+ }
- preg_match_all('~<input name="(.+?)" type="hidden" value="(.+?)">~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, '<div class="d-msg-text">') !== false) {
- preg_match_all('#<div class="d-msg-text">(.*?)</div>#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 <myroundcube@mail4us.net>
+ *
*/
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 <bayuir@divnet.telkom.co.id> ---
+ * --- ammended 20030625 by S C Rigler <srigler@houston.rr.com> ---
+ *
+ * @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/<lang>.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'] = 'XaÌ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 Ä‘uÌ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 daÌ€i iÌt nhâÌt $ kyÌ 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 @@
<email>alec@alec.pl</email>
<active>yes</active>
</lead>
- <date>2013-04-28</date>
+ <date>2012-11-15</date>
<version>
- <release>3.4</release>
+ <release>3.2</release>
<api>2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>
-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
</notes>
<contents>
<dir baseinstalldir="/" name="/">
@@ -346,36 +347,5 @@ Added password_force_save option
- Added Samba password (#1488364)
</notes>
</release>
- <release>
- <date>2012-11-15</date>
- <version>
- <release>3.2</release>
- <api>2.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
- <notes>
-- Fix wrong (non-specific) error message on crypt or connection error (#1488808)
-- Added option to define IMAP hosts that support password changes - password_hosts
- </notes>
- </release>
- <release>
- <date>2013-03-30</date>
- <version>
- <release>3.3</release>
- <api>2.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
- <notes>
-Added new cPanel driver - fixes localization related issues (#1487015)
- </notes>
- </release>
</changelog>
</package>
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) {
+ // <span id="settingstabdefault" class="tablink"><roundcube:button command="preferences" type="link" label="preferences" title="editpreferences" /></span>
+ var tab = $('<span>').attr('id', 'settingstabpluginpassword').addClass('tablink password');
+ var button = $('<a>').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 @@
<?php
-/**
- * Password Plugin for Roundcube
- *
- * @version @package_version@
- * @author Aleksander Machniak <alec@alec.pl>
- *
- * 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 <alec@alec.pl> |
+ +-------------------------------------------------------------------------+
+
+ $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 @@
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>-</notes>
<contents>
<dir baseinstalldir="/" name="/">
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 @@
<?php
// Driver - 'file' or 'sql'
-$config['squirrelmail_driver'] = 'sql';
+$rcmail_config['squirrelmail_driver'] = 'sql';
// full path to the squirrelmail data directory
-$config['squirrelmail_data_dir'] = '';
-$config['squirrelmail_data_dir_hash_level'] = 0;
+$rcmail_config['squirrelmail_data_dir'] = '';
+$rcmail_config['squirrelmail_data_dir_hash_level'] = 0;
// 'mysql://dbuser:dbpass@localhost/database'
-$config['squirrelmail_dsn'] = 'mysql://user:password@localhost/webmail';
-$config['squirrelmail_db_charset'] = 'iso-8859-1';
+$rcmail_config['squirrelmail_dsn'] = 'mysql://user:password@localhost/webmail';
+$rcmail_config['squirrelmail_db_charset'] = 'iso-8859-1';
-$config['squirrelmail_address_table'] = 'address';
-$config['squirrelmail_userprefs_table'] = 'userprefs';
+$rcmail_config['squirrelmail_address_table'] = 'address';
+$rcmail_config['squirrelmail_userprefs_table'] = 'userprefs';
// identities_level option value for squirrelmail plugin
// With this you can bypass/change identities_level checks
// for operations inside this plugin. See #1486773
-$config['squirrelmail_identities_level'] = null;
+$rcmail_config['squirrelmail_identities_level'] = null;
// Set to false if you don't want the email address of the default identity
// (squirrelmail preference "email_address") to be saved as alias.
// Recommended: set to false if your squirrelmail config setting $edit_identity has been true.
-$config['squirrelmail_set_alias'] = true; \ No newline at end of file
+$rcmail_config['squirrelmail_set_alias'] = true; \ No newline at end of file
diff --git a/plugins/squirrelmail_usercopy/squirrelmail_usercopy.php b/plugins/squirrelmail_usercopy/squirrelmail_usercopy.php
index e882a2f37..7849f915e 100644
--- a/plugins/squirrelmail_usercopy/squirrelmail_usercopy.php
+++ b/plugins/squirrelmail_usercopy/squirrelmail_usercopy.php
@@ -63,7 +63,7 @@ class squirrelmail_usercopy extends rcube_plugin
if ($this->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/<lang>.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 @@
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>-</notes>
<contents>
<dir baseinstalldir="/" name="/">
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/<lang>.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/<lang>.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<count($r); $i++) {
- $arr = preg_split('/\s+/', $r[$i]);
+ for ($i=0; $i<count($r); $i++)
+ {
+ $arr = preg_split('/\s+/', $r[$i]);
- if (count($arr) > 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<count($r); $i++) {
- $arr = preg_split('/\s+/', trim($r[$i]));
+ for ($i=0; $i<count($r); $i++) {
+ $arr = preg_split('/\s+/', trim($r[$i]));
- if (count($arr) > 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 @@
<email>alec@alec.pl</email>
<active>yes</active>
</lead>
- <date>2012-02-17</date>
+ <date>2011-11-21</date>
<version>
- <release>2.0</release>
- <api>2.0</api>
+ <release>1.1</release>
+ <api>1.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>-</notes>
<contents>
<dir baseinstalldir="/" name="/">
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 <alec@alec.pl>
* @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/<lang>.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'], '<li') > $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 <P0L0_notspam_binware.org>
+ */
+ // 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))) {
@@ -773,6 +723,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
*
* @param mixed Either a string with the action or url parameters as key-value pairs
@@ -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'))
@@ -977,6 +954,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
*
* @return string Date
@@ -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'), '&nbsp;');
- }
-
- $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)
+ ), '&nbsp;') : ''));
+
+ $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('/<roundcube:([-_a-z]+)\s+((?:[^>]|\\\\>)+)(?<!\\\\)>/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('<a%s>%s</a>', $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 </body>
@@ -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 <roundcube@gmail.com> |
- | Aleksander 'A.L.E.C' Machniak <alec@alec.pl> |
- | Charles McNulty <charles@charlesmcnulty.com> |
- +-----------------------------------------------------------------------+
- | 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<args.length; n++) {
- cmd = args[n];
- // argument of type array
- if (typeof cmd === 'string') {
- this.commands[cmd] = enable;
- this.set_button(cmd, (enable ? 'act' : 'pas'));
- this.triggerEvent('enable-command', {command: cmd, status: enable});
- }
- // push array elements into commands array
- else {
- for (i in cmd)
- args.push(cmd[i]);
- }
- }
- };
-
- // lock/unlock interface
- this.set_busy = function(a, message, id)
- {
- if (a && message) {
- var msg = this.get_label(message);
- if (msg == message)
- msg = 'Loading...';
-
- id = this.display_message(msg, 'loading');
- }
- else if (!a && id) {
- this.hide_message(id);
- }
-
- this.busy = a;
- //document.body.style.cursor = a ? 'wait' : 'default';
-
- if (this.gui_objects.editform)
- this.lock_form(this.gui_objects.editform, a);
-
- return id;
- };
-
- // return a localized string
- this.get_label = function(name, domain)
- {
- if (domain && this.labels[domain+'.'+name])
- return this.labels[domain+'.'+name];
- else if (this.labels[name])
- return this.labels[name];
- else
- return name;
- };
-
- // alias for convenience reasons
- this.gettext = this.get_label;
-
- // switch to another application task
- this.switch_task = function(task)
- {
- if (this.task===task && task!='mail')
- return;
-
- var url = this.get_task_url(task);
- if (task=='mail')
- url += '&_mbox=INBOX';
-
- this.redirect(url);
- };
-
- this.get_task_url = function(task, url)
- {
- if (!url)
- url = this.env.comm_path;
-
- return url.replace(/_task=[a-z0-9_-]+/i, '_task='+task);
- };
-
- this.reload = function(delay)
- {
- if (this.is_framed())
- parent.rcmail.reload(delay);
- else if (delay)
- setTimeout(function(){ rcmail.reload(); }, delay);
- else if (window.location)
- location.href = this.env.comm_path + (this.env.action ? '&_action='+this.env.action : '');
- };
-
- // Add variable to GET string, replace old value if exists
- this.add_url = function(url, name, value)
- {
- value = urlencode(value);
-
- if (/(\?.*)$/.test(url)) {
- var urldata = RegExp.$1,
- datax = RegExp('((\\?|&)'+RegExp.escape(name)+'=[^&]*)');
-
- if (datax.test(urldata)) {
- urldata = urldata.replace(datax, RegExp.$2 + name + '=' + value);
- }
- else
- urldata += '&' + name + '=' + value
-
- return url.replace(/(\?.*)$/, urldata);
- }
-
- return url + '?' + name + '=' + value;
- };
-
- this.is_framed = function()
- {
- return (this.env.framed && parent.rcmail && parent.rcmail != this && parent.rcmail.command);
- };
-
- this.save_pref = function(prop)
- {
- var request = {'_name': prop.name, '_value': prop.value};
-
- if (prop.session)
- request['_session'] = prop.session;
- if (prop.env)
- this.env[prop.env] = prop.value;
-
- this.http_post('save-pref', request);
- };
-
- this.html_identifier = function(str, encode)
- {
- return encode ? this.html_identifier_encode(str) : String(str).replace(this.identifier_expr, '_');
- };
-
- this.html_identifier_encode = function(str)
- {
- return Base64.encode(String(str)).replace(/=+$/, '').replace(/\+/g, '-').replace(/\//g, '_');
- };
-
- this.html_identifier_decode = function(str)
- {
- str = String(str).replace(/-/g, '+').replace(/_/g, '/');
-
- while (str.length % 4) str += '=';
-
- return Base64.decode(str);
- };
-
-
- /*********************************************************/
- /********* event handling methods *********/
- /*********************************************************/
-
- this.drag_menu = function(e, target)
- {
- var modkey = rcube_event.get_modifier(e),
- menu = this.gui_objects.dragmenu;
-
- if (menu && modkey == SHIFT_KEY && this.commands['copy']) {
- var pos = rcube_event.get_mouse_pos(e);
- this.env.drag_target = target;
- $(menu).css({top: (pos.y-10)+'px', left: (pos.x-10)+'px'}).show();
- return true;
- }
-
- return false;
- };
-
- this.drag_menu_action = function(action)
- {
- var menu = this.gui_objects.dragmenu;
- if (menu) {
- $(menu).hide();
- }
- this.command(action, this.env.drag_target);
- this.env.drag_target = null;
- };
-
- this.drag_start = function(list)
- {
- var model = this.task == 'mail' ? this.env.mailboxes : this.env.contactfolders;
-
- this.drag_active = true;
-
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
- if (this.preview_read_timer)
- clearTimeout(this.preview_read_timer);
-
- // prepare treelist widget for dragging interactions
- if (this.treelist)
- this.treelist.drag_start();
- };
-
- this.drag_end = function(e)
- {
- this.drag_active = false;
- this.env.last_folder_target = null;
-
- if (this.treelist)
- this.treelist.drag_end();
- };
-
- this.drag_move = function(e)
- {
- if (this.gui_objects.folderlist) {
- var drag_target, oldclass,
- layerclass = 'draglayernormal',
- mouse = rcube_event.get_mouse_pos(e);
-
- if (this.contact_list && this.contact_list.draglayer)
- oldclass = this.contact_list.draglayer.attr('class');
-
- // mouse intersects a valid drop target on the treelist
- if (this.treelist && (drag_target = this.treelist.intersects(mouse, true))) {
- this.env.last_folder_target = drag_target;
- layerclass = 'draglayer' + (this.check_droptarget(drag_target) > 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<cols.length; i++)
- if (cols[i].id && cols[i].id.startsWith('rcm')) {
- name = cols[i].id.slice(3);
- this.env.coltypes.push(name);
- }
-
- if ((found = $.inArray('flag', this.env.coltypes)) >= 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('<html><body>' + this.get_label('loading') + '</body></html>');
- }
-
- // 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 += '<span id="rcmtab' + uid + '" class="branch" style="width:' + (message.depth * 15) + 'px;">&nbsp;&nbsp;</span>';
-
- 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 = '<div id="rcmexpando' + uid + '" class="' + (message.expanded ? 'expanded' : 'collapsed') + '">&nbsp;&nbsp;</div>';
- row_class += ' thread' + (message.expanded? ' expanded' : '');
- }
-
- if (flags.unread_children && flags.seen && !message.expanded)
- row_class += ' unroot';
- }
-
- tree += '<span id="msgicn'+uid+'" class="'+css_class+'">&nbsp;</span>';
- 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 = '<a href="./?_task=mail&_action='+action+'&_mbox='+urlencode(flags.mbox)+'&'+uid_param+'='+uid+'"'+
- ' onclick="return rcube_event.cancel(event)" onmouseover="rcube_webmail.long_subject_title(this,'+(message.depth+1)+')">'+cols.subject+'</a>';
- }
-
- // 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 = '<span id="flagicn'+uid+'" class="'+css_class+'">&nbsp;</span>';
- }
- else if (c == 'attachment') {
- if (/application\/|multipart\/(m|signed)/.test(flags.ctype))
- html = '<span class="attachment">&nbsp;</span>';
- else if (/multipart\/report/.test(flags.ctype))
- html = '<span class="report">&nbsp;</span>';
- else
- html = '&nbsp;';
- }
- 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 = '<span id="statusicn'+uid+'" class="'+css_class+'">&nbsp;</span>';
- }
- 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 = '<span></span>' + tree; // #1487821
- }
- html = tree + cols[c];
- }
- else if (c == 'priority') {
- if (flags.prio > 0 && flags.prio < 6)
- html = '<span class="prio'+flags.prio+'">&nbsp;</span>';
- else
- html = '&nbsp;';
- }
- 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<oldcols.length; i++) {
- name = oldcols[i];
- idx = $.inArray(name, cols);
- if (idx != -1) {
- newcols.push(name);
- delete cols[idx];
- }
- }
- for (i=0; i<cols.length; i++)
- if (cols[i])
- newcols.push(cols[i]);
-
- if (newcols.join() != oldcols.join()) {
- update = 1;
- post_data._cols = newcols.join(',');
- }
- }
-
- if (update)
- this.list_mailbox('', '', sort_col+'_'+sort_order, post_data);
- };
-
- // when user double-clicks on a row
- this.show_message = function(id, safe, preview)
- {
- if (!id)
- return;
-
- var win, target = window,
- action = preview ? 'preview': 'show',
- url = '&_action='+action+'&_uid='+id+'&_mbox='+urlencode(this.env.mailbox);
-
- if (preview && (win = this.get_frame_window(this.env.contentframe))) {
- target = win;
- url += '&_framed=1';
- }
-
- if (safe)
- url += '&_safe=1';
-
- // also send search request to get the right messages
- if (this.env.search_request)
- url += '&_search='+this.env.search_request;
-
- // add browser capabilities, so we can properly handle attachments
- url += '&_caps='+urlencode(this.browser_capabilities());
-
- if (this.env.extwin)
- url += '&_extwin=1';
-
- if (preview && String(target.location.href).indexOf(url) >= 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<len; n++)
- this.add_tree_icons(roots[n]);
- this.expand_threads();
- };
-
- // adds threads tree icons to the list (or specified thread)
- this.add_tree_icons = function(root)
- {
- var i, l, r, n, len, pos, tmp = [], uid = [],
- row, rows = this.message_list.rows;
-
- if (root)
- row = rows[root] ? rows[root].obj : null;
- else
- row = this.message_list.tbody.firstChild;
-
- while (row) {
- if (row.nodeType == 1 && (r = rows[row.uid])) {
- if (r.depth) {
- for (i=tmp.length-1; i>=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<len; i++) {
- if (tree[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 += '<div class="tree '+divs[i]['class']+'" />';
- else
- html += '<div style="width:'+divs[i].width+'px" />';
- }
-
- 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<roots.length; i++)
- this.set_unread_children(roots[i].uid);
-
- return count;
- };
-
- this.delete_excessive_thread_rows = function()
- {
- var rows = this.message_list.rows,
- tbody = this.message_list.tbody,
- row = tbody.firstChild,
- cnt = this.env.pagesize + 1;
-
- while (row) {
- if (row.nodeType == 1 && (r = rows[row.uid])) {
- if (!r.depth && cnt)
- cnt--;
-
- if (!cnt)
- this.message_list.remove_row(row.uid);
- }
- row = row.nextSibling;
- }
- };
-
- // set message icon
- this.set_message_icon = function(uid)
- {
- var css_class,
- row = this.message_list.rows[uid];
-
- if (!row)
- return false;
-
- if (row.icon) {
- css_class = 'msgicon';
- if (row.deleted)
- css_class += ' deleted';
- else if (row.unread)
- css_class += ' unread';
- else if (row.unread_children)
- css_class += ' unreadchildren';
- if (row.msgicon == row.icon) {
- if (row.replied)
- css_class += ' replied';
- if (row.forwarded)
- css_class += ' forwarded';
- css_class += ' status';
- }
-
- row.icon.className = css_class;
- }
-
- if (row.msgicon && row.msgicon != row.icon) {
- css_class = 'msgicon';
- if (!row.unread && row.unread_children)
- css_class += ' unreadchildren';
- if (row.replied)
- css_class += ' replied';
- if (row.forwarded)
- css_class += ' forwarded';
-
- row.msgicon.className = css_class;
- }
-
- if (row.flagicon) {
- css_class = (row.flagged ? 'flagged' : 'unflagged');
- row.flagicon.className = css_class;
- }
- };
-
- // set message status
- this.set_message_status = function(uid, flag, status)
- {
- var row = this.message_list.rows[uid];
-
- if (!row)
- return false;
-
- if (flag == 'unread')
- row.unread = status;
- else if(flag == 'deleted')
- row.deleted = status;
- else if (flag == 'replied')
- row.replied = status;
- else if (flag == 'forwarded')
- row.forwarded = status;
- else if (flag == 'flagged')
- row.flagged = status;
- };
-
- // set message row status, class and icon
- this.set_message = function(uid, flag, status)
- {
- var row = this.message_list && this.message_list.rows[uid];
-
- if (!row)
- return false;
-
- if (flag)
- this.set_message_status(uid, flag, status);
-
- var rowobj = $(row.obj);
-
- if (row.unread && !rowobj.hasClass('unread'))
- rowobj.addClass('unread');
- else if (!row.unread && rowobj.hasClass('unread'))
- rowobj.removeClass('unread');
-
- if (row.deleted && !rowobj.hasClass('deleted'))
- rowobj.addClass('deleted');
- else if (!row.deleted && rowobj.hasClass('deleted'))
- rowobj.removeClass('deleted');
-
- if (row.flagged && !rowobj.hasClass('flagged'))
- rowobj.addClass('flagged');
- else if (!row.flagged && rowobj.hasClass('flagged'))
- rowobj.removeClass('flagged');
-
- this.set_unread_children(uid);
- this.set_message_icon(uid);
- };
-
- // sets unroot (unread_children) class of parent row
- this.set_unread_children = function(uid)
- {
- var row = this.message_list.rows[uid];
-
- if (row.parent_uid)
- return;
-
- if (!row.unread && row.unread_children && !row.expanded)
- $(row.obj).addClass('unroot');
- else
- $(row.obj).removeClass('unroot');
- };
-
- // copy selected messages to the specified mailbox
- this.copy_messages = function(mbox)
- {
- if (mbox && typeof mbox === 'object')
- mbox = mbox.id;
-
- // exit if current or no mailbox specified
- if (!mbox || mbox == this.env.mailbox)
- return;
-
- var post_data = this.selection_post_data({_target_mbox: mbox});
-
- // exit if selection is empty
- if (!post_data._uid)
- return;
-
- // send request to server
- this.http_post('copy', post_data, this.display_message(this.get_label('copyingmessage'), 'loading'));
- };
-
- // move selected messages to the specified mailbox
- this.move_messages = function(mbox)
- {
- if (mbox && typeof mbox === 'object')
- mbox = mbox.id;
-
- // exit if current or no mailbox specified
- if (!mbox || mbox == this.env.mailbox)
- return;
-
- var lock = false, post_data = this.selection_post_data({_target_mbox: mbox});
-
- // exit if selection is empty
- if (!post_data._uid)
- return;
-
- // show wait message
- if (this.env.action == 'show')
- lock = this.set_busy(true, 'movingmessage');
- else
- this.show_contentframe(false);
-
- // Hide message command buttons until a message is selected
- this.enable_command(this.env.message_commands, false);
-
- this._with_selected_messages('move', post_data, lock);
- };
-
- // delete selected messages from the current mailbox
- this.delete_messages = function(event)
- {
- var uid, i, len, trash = this.env.trash_mailbox,
- list = this.message_list,
- selection = list ? list.get_selection() : [];
-
- // exit if no mailbox specified or if selection is empty
- if (!this.env.uid && !selection.length)
- return;
-
- // also select childs of collapsed rows
- for (i=0, len=selection.length; i<len; i++) {
- uid = selection[i];
- if (list.rows[uid].has_children && !list.rows[uid].expanded)
- list.select_children(uid);
- }
-
- // if config is set to flag for deletion
- if (this.env.flag_for_deletion) {
- this.mark_message('delete');
- return false;
- }
- // if there isn't a defined trash mailbox or we are in it
- else if (!trash || this.env.mailbox == trash)
- this.permanently_remove_messages();
- // we're in Junk folder and delete_junk is enabled
- else if (this.env.delete_junk && this.env.junk_mailbox && this.env.mailbox == this.env.junk_mailbox)
- this.permanently_remove_messages();
- // if there is a trash mailbox defined and we're not currently in it
- else {
- // if shift was pressed delete it immediately
- if ((list && list.modkey == SHIFT_KEY) || (event && rcube_event.get_modifier(event) == SHIFT_KEY)) {
- if (confirm(this.get_label('deletemessagesconfirm')))
- this.permanently_remove_messages();
- }
- else
- this.move_messages(trash);
- }
-
- return true;
- };
-
- // delete the selected messages permanently
- this.permanently_remove_messages = function()
- {
- var post_data = this.selection_post_data();
-
- // exit if selection is empty
- if (!post_data._uid)
- return;
-
- this.show_contentframe(false);
- this._with_selected_messages('delete', post_data);
- };
-
- // Send a specifc move/delete request with UIDs of all selected messages
- // @private
- this._with_selected_messages = function(action, post_data, lock)
- {
- var count = 0, msg;
-
- // update the list (remove rows, clear selection)
- if (this.message_list) {
- var n, id, root, roots = [],
- selection = this.message_list.get_selection();
-
- for (n=0, len=selection.length; n<len; n++) {
- id = selection[n];
-
- if (this.env.threading) {
- count += this.update_thread(id);
- root = this.message_list.find_root(id);
- if (root != id && $.inArray(root, roots) < 0) {
- roots.push(root);
- }
- }
- this.message_list.remove_row(id, (this.env.display_next && n == selection.length-1));
- }
- // make sure there are no selected rows
- if (!this.env.display_next)
- this.message_list.clear_selection();
- // update thread tree icons
- for (n=0, len=roots.length; n<len; n++) {
- this.add_tree_icons(roots[n]);
- }
- }
-
- if (count < 0)
- post_data._count = (count*-1);
- // remove threads from the end of the list
- else if (count > 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<len; n++) {
- id = a_uids[n];
- if ((flag == 'read' && list.rows[id].unread)
- || (flag == 'unread' && !list.rows[id].unread)
- || (flag == 'delete' && !list.rows[id].deleted)
- || (flag == 'undelete' && list.rows[id].deleted)
- || (flag == 'flagged' && !list.rows[id].flagged)
- || (flag == 'unflagged' && list.rows[id].flagged))
- {
- r_uids.push(id);
- }
- }
- }
-
- // nothing to do
- if (!r_uids.length && !this.select_all_mode)
- return;
-
- switch (flag) {
- case 'read':
- case 'unread':
- this.toggle_read_status(flag, r_uids);
- break;
- case 'delete':
- case 'undelete':
- this.toggle_delete_status(r_uids);
- break;
- case 'flagged':
- case 'unflagged':
- this.toggle_flagged_status(flag, a_uids);
- break;
- }
- };
-
- // set class to read/unread
- this.toggle_read_status = function(flag, a_uids)
- {
- var i, len = a_uids.length,
- post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: flag}),
- lock = this.display_message(this.get_label('markingmessage'), 'loading');
-
- // mark all message rows as read/unread
- for (i=0; i<len; i++)
- this.set_message(a_uids[i], 'unread', (flag == 'unread' ? true : false));
-
- this.http_post('mark', post_data, lock);
-
- for (i=0; i<len; i++)
- this.update_thread_root(a_uids[i], flag);
- };
-
- // set image to flagged or unflagged
- this.toggle_flagged_status = function(flag, a_uids)
- {
- var i, len = a_uids.length,
- post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: flag}),
- lock = this.display_message(this.get_label('markingmessage'), 'loading');
-
- // mark all message rows as flagged/unflagged
- for (i=0; i<len; i++)
- this.set_message(a_uids[i], 'flagged', (flag == 'flagged' ? true : false));
-
- this.http_post('mark', post_data, lock);
- };
-
- // mark all message rows as deleted/undeleted
- this.toggle_delete_status = function(a_uids)
- {
- var len = a_uids.length,
- i, uid, all_deleted = true,
- rows = this.message_list ? this.message_list.rows : {};
-
- if (len == 1) {
- if (!this.message_list || (rows[a_uids[0]] && !rows[a_uids[0]].deleted))
- this.flag_as_deleted(a_uids);
- else
- this.flag_as_undeleted(a_uids);
-
- return true;
- }
-
- for (i=0; i<len; i++) {
- uid = a_uids[i];
- if (rows[uid] && !rows[uid].deleted) {
- all_deleted = false;
- break;
- }
- }
-
- if (all_deleted)
- this.flag_as_undeleted(a_uids);
- else
- this.flag_as_deleted(a_uids);
-
- return true;
- };
-
- this.flag_as_undeleted = function(a_uids)
- {
- var i, len = a_uids.length,
- post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: 'undelete'}),
- lock = this.display_message(this.get_label('markingmessage'), 'loading');
-
- for (i=0; i<len; i++)
- this.set_message(a_uids[i], 'deleted', false);
-
- this.http_post('mark', post_data, lock);
- };
-
- this.flag_as_deleted = function(a_uids)
- {
- var r_uids = [],
- post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: 'delete'}),
- lock = this.display_message(this.get_label('markingmessage'), 'loading'),
- rows = this.message_list ? this.message_list.rows : {},
- count = 0;
-
- for (var i=0, len=a_uids.length; i<len; i++) {
- uid = a_uids[i];
- if (rows[uid]) {
- if (rows[uid].unread)
- r_uids[r_uids.length] = uid;
-
- if (this.env.skip_deleted) {
- count += this.update_thread(uid);
- this.message_list.remove_row(uid, (this.env.display_next && i == this.message_list.selection.length-1));
- }
- else
- this.set_message(uid, 'deleted', true);
- }
- }
-
- // make sure there are no selected rows
- if (this.env.skip_deleted && this.message_list) {
- if (!this.env.display_next)
- this.message_list.clear_selection();
- if (count < 0)
- post_data._count = (count*-1);
- else if (count > 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<len; i++) {
- uid = uids[i];
- if (rows[uid])
- this.set_message(uid, 'unread', false);
- }
- };
-
- // Converts array of message UIDs to comma-separated list for use in URL
- // with select_all mode checking
- this.uids_to_list = function(uids)
- {
- return this.select_all_mode ? '*' : uids.join(',');
- };
-
- // Sets title of the delete button
- this.set_button_titles = function()
- {
- var label = 'deletemessage';
-
- if (!this.env.flag_for_deletion
- && this.env.trash_mailbox && this.env.mailbox != this.env.trash_mailbox
- && (!this.env.delete_junk || !this.env.junk_mailbox || this.env.mailbox != this.env.junk_mailbox)
- )
- label = 'movemessagetotrash';
-
- this.set_alttext('delete', label);
- };
-
- /*********************************************************/
- /********* mailbox folders methods *********/
- /*********************************************************/
-
- this.expunge_mailbox = function(mbox)
- {
- var lock, post_data = {_mbox: mbox};
-
- // lock interface if it's the active mailbox
- if (mbox == this.env.mailbox) {
- lock = this.set_busy(true, 'loading');
- post_data._reload = 1;
- if (this.env.search_request)
- post_data._search = this.env.search_request;
- }
-
- // send request to server
- this.http_post('expunge', post_data, lock);
- };
-
- this.purge_mailbox = function(mbox)
- {
- var lock, post_data = {_mbox: mbox};
-
- if (!confirm(this.get_label('purgefolderconfirm')))
- return false;
-
- // lock interface if it's the active mailbox
- if (mbox == this.env.mailbox) {
- lock = this.set_busy(true, 'loading');
- post_data._reload = 1;
- }
-
- // send request to server
- this.http_post('purge', post_data, lock);
- };
-
- // test if purge command is allowed
- this.purge_mailbox_test = function()
- {
- return (this.env.exists && (
- this.env.mailbox == this.env.trash_mailbox
- || this.env.mailbox == this.env.junk_mailbox
- || this.env.mailbox.startsWith(this.env.trash_mailbox + this.env.delimiter)
- || this.env.mailbox.startsWith(this.env.junk_mailbox + this.env.delimiter)
- ));
- };
-
-
- /*********************************************************/
- /********* login form methods *********/
- /*********************************************************/
-
- // handler for keyboard events on the _user field
- this.login_user_keyup = function(e)
- {
- var key = rcube_event.get_keycode(e);
- var passwd = $('#rcmloginpwd');
-
- // enter
- if (key == 13 && passwd.length && !passwd.val()) {
- passwd.focus();
- return rcube_event.cancel(e);
- }
-
- return true;
- };
-
-
- /*********************************************************/
- /********* message compose methods *********/
- /*********************************************************/
-
- this.open_compose_step = function(p)
- {
- var url = this.url('mail/compose', p);
-
- // open new compose window
- if (this.env.compose_extwin && !this.env.extwin) {
- this.open_window(url);
- }
- else {
- this.redirect(url);
- if (this.env.extwin)
- window.resizeTo(Math.max(this.env.popup_width, $(window).width()), $(window).height() + 24);
- }
- };
-
- // init message compose form: set focus and eventhandlers
- this.init_messageform = function()
- {
- if (!this.gui_objects.messageform)
- return false;
-
- var input_from = $("[name='_from']"),
- input_to = $("[name='_to']"),
- input_subject = $("input[name='_subject']"),
- input_message = $("[name='_message']").get(0),
- html_mode = $("input[name='_is_html']").val() == '1',
- ac_fields = ['cc', 'bcc', 'replyto', 'followupto'],
- ac_props, opener_rc = this.opener();
-
- // close compose step in opener
- if (opener_rc && opener_rc.env.action == 'compose') {
- setTimeout(function(){ opener.history.back(); }, 100);
- this.env.opened_extwin = true;
- }
-
- // configure parallel autocompletion
- if (this.env.autocomplete_threads > 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 = $('<div class="prompt">').html('<div class="message">' + this.get_label('nosubjectwarning') + '</div>').appendTo(document.body);
- var prompt_value = $('<input>').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 = '<form class="propform">' +
- '<div class="prop block"><label>' + this.get_label('responsename') + '</label>' +
- '<input type="text" name="name" id="ffresponsename" size="40" /></div>' +
- '<div class="prop block"><label>' + this.get_label('responsetext') + '</label>' +
- '<textarea name="text" id="ffresponsetext" cols="40" rows="8"></textarea></div>' +
- '</form>';
-
- 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 = $('<li>').appendTo(this.gui_objects.responseslist);
- $('<a>').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<hash_fields.length; i++)
- if (val = $('[name="_' + hash_fields[i] + '"]').val())
- str += val + ':';
-
- if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)))
- str += ed.getContent();
- else
- str += $("[name='_message']").val();
-
- if (this.env.attachments)
- for (var upload_id in this.env.attachments)
- str += upload_id;
-
- if (save)
- this.cmp_hash = str;
-
- return str;
- };
-
- this.change_identity = function(obj, show_sig)
- {
- if (!obj || !obj.options)
- return false;
-
- if (!show_sig)
- show_sig = this.env.show_sig;
-
- // first function execution
- if (!this.env.identities_initialized) {
- this.env.identities_initialized = true;
- if (this.env.show_sig_later)
- this.env.show_sig = true;
- if (this.env.opened_extwin)
- return;
- }
-
- var i, rx, cursor_pos, p = -1,
- id = obj.options[obj.selectedIndex].value,
- input_message = $("[name='_message']"),
- message = input_message.val(),
- is_html = ($("input[name='_is_html']").val() == '1'),
- sig = this.env.identity,
- delim = this.env.recipients_separator,
- rx_delim = RegExp.escape(delim),
- headers = ['replyto', 'bcc'];
-
- // update reply-to/bcc fields with addresses defined in identities
- for (i in headers) {
- var key = headers[i],
- old_val = sig && this.env.identities[sig] ? this.env.identities[sig][key] : '',
- new_val = id && this.env.identities[id] ? this.env.identities[id][key] : '',
- input = $('[name="_'+key+'"]'), input_val = input.val();
-
- // remove old address(es)
- if (old_val && input_val) {
- rx = new RegExp('\\s*' + RegExp.escape(old_val) + '\\s*');
- input_val = input_val.replace(rx, '');
- }
-
- // cleanup
- rx = new RegExp(rx_delim + '\\s*' + rx_delim, 'g');
- input_val = input_val.replace(rx, delim);
- rx = new RegExp('^[\\s' + rx_delim + ']+');
- input_val = input_val.replace(rx, '');
-
- // add new address(es)
- if (new_val && input_val.indexOf(new_val) == -1 && input_val.indexOf(new_val.replace(/"/g, '')) == -1) {
- if (input_val) {
- rx = new RegExp('[' + rx_delim + '\\s]+$')
- input_val = input_val.replace(rx, '') + delim + ' ';
- }
-
- input_val += new_val + delim + ' ';
- }
-
- if (old_val || new_val)
- input.val(input_val).change();
- }
-
- // enable manual signature insert
- if (this.env.signatures && this.env.signatures[id]) {
- this.enable_command('insert-sig', true);
- this.env.compose_commands.push('insert-sig');
- }
- else
- this.enable_command('insert-sig', false);
-
- if (!is_html) {
- // remove the 'old' signature
- if (show_sig && sig && this.env.signatures && this.env.signatures[sig]) {
- sig = this.env.signatures[sig].text;
- sig = sig.replace(/\r\n/g, '\n');
-
- p = this.env.top_posting ? message.indexOf(sig) : message.lastIndexOf(sig);
- if (p >= 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 = '<span>' + this.get_label('uploading' + (numfiles > 1 ? 'many' : '')) + '</span>',
- 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 = '<img src="'+ref.env.loadingicon+'" alt="" class="uploading" />' + att.html;
-
- if (!att.complete && att.frame)
- att.html = '<a title="'+this.get_label('cancel')+'" onclick="return rcmail.cancel_attachment_upload(\''+name+'\', \''+att.frame+'\');" href="#cancelupload" class="cancelupload">'
- + (this.env.cancelicon ? '<img src="'+this.env.cancelicon+'" alt="" />' : this.get_label('cancel')) + '</a>' + att.html;
-
- var indicator, li = $('<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<threads; i++) {
- source = this.ksearch_data.sources.shift();
- if (threads > 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 = $('<ul>');
- this.ksearch_pane = $('<div>').attr('id', 'rcmKSearchpane')
- .css({ position:'absolute', 'z-index':30000 }).append(ul).appendTo(document.body);
- this.ksearch_pane.__ul = ul[0];
- }
-
- ul = this.ksearch_pane.__ul;
-
- // remove all search results or add to existing list if parallel search
- if (reqid && this.ksearch_pane.data('reqid') == reqid) {
- maxlen -= ul.childNodes.length;
- }
- else {
- this.ksearch_pane.data('reqid', reqid);
- init = 1;
- // reset content
- ul.innerHTML = '';
- this.env.contacts = [];
- // move the results pane right under the input box
- var pos = $(this.ksearch_input).offset();
- this.ksearch_pane.css({ left:pos.left+'px', top:(pos.top + this.ksearch_input.offsetHeight)+'px', display: 'none'});
- }
-
- // add each result line to list
- if (results && (len = results.length)) {
- for (i=0; i < len && maxlen > 0; i++) {
- text = typeof results[i] === 'object' ? results[i].name : results[i];
- li = document.createElement('LI');
- li.innerHTML = text.replace(new RegExp('('+RegExp.escape(value)+')', 'ig'), '##$1%%').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/##([^%]+)%%/g, '<b>$1</b>');
- li.onmouseover = function(){ ref.ksearch_select(this); };
- li.onmouseup = function(){ ref.ksearch_click(this) };
- li._rcm_id = this.env.contacts.length + i;
- ul.appendChild(li);
- maxlen -= 1;
- }
- }
-
- if (ul.childNodes.length) {
- this.ksearch_pane.show();
- // select the first
- if (!this.env.contacts.length) {
- $('li:first', ul).attr('id', 'rcmksearchSelected').addClass('selected');
- this.ksearch_selected = 0;
- }
- }
-
- if (len)
- this.env.contacts = this.env.contacts.concat(results);
-
- // run next parallel search
- if (data.id == reqid) {
- data.num--;
- if (maxlen > 0 && data.sources.length) {
- var lock, xhr, source = data.sources.shift(), post_data;
- if (source) {
- post_data = {_search: value, _id: reqid, _source: source};
- lock = this.display_message(this.get_label('searching'), 'loading');
- xhr = this.http_post(data.action, post_data, lock);
-
- this.ksearch_data.locks.push(lock);
- this.ksearch_data.requests.push(xhr);
- }
- }
- else if (!maxlen) {
- if (!this.ksearch_msg)
- this.ksearch_msg = this.display_message(this.get_label('autocompletemore'));
- // abort pending searches
- this.ksearch_abort();
- }
- }
- };
-
- this.ksearch_click = function(node)
- {
- if (this.ksearch_input)
- this.ksearch_input.focus();
-
- this.insert_recipient(node._rcm_id);
- this.ksearch_hide();
- };
-
- this.ksearch_blur = function()
- {
- if (this.ksearch_timer)
- clearTimeout(this.ksearch_timer);
-
- this.ksearch_input = null;
- this.ksearch_hide();
- };
-
- this.ksearch_hide = function()
- {
- this.ksearch_selected = null;
- this.ksearch_value = '';
-
- if (this.ksearch_pane)
- this.ksearch_pane.hide();
-
- this.ksearch_destroy();
- };
-
- // Clears autocomplete data/requests
- this.ksearch_destroy = function()
- {
- this.ksearch_abort();
-
- if (this.ksearch_info)
- this.hide_message(this.ksearch_info);
-
- if (this.ksearch_msg)
- this.hide_message(this.ksearch_msg);
-
- this.ksearch_data = null;
- this.ksearch_info = null;
- this.ksearch_msg = null;
- }
-
- // Aborts pending autocomplete requests
- this.ksearch_abort = function()
- {
- var i, len, ac = this.ksearch_data;
-
- if (!ac)
- return;
-
- for (i=0, len=ac.locks.length; i<len; i++)
- this.abort_request({request: ac.requests[i], lock: ac.locks[i]});
- };
-
-
- /*********************************************************/
- /********* address book methods *********/
- /*********************************************************/
-
- this.contactlist_keypress = function(list)
- {
- if (list.key_pressed == list.DELETE_KEY)
- this.command('delete');
- };
-
- this.contactlist_select = function(list)
- {
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
-
- var n, id, sid, contact, ref = this, writable = false,
- source = this.env.source ? this.env.address_sources[this.env.source] : null;
-
- // we don't have dblclick handler here, so use 200 instead of this.dblclick_time
- if (id = list.get_single_selection())
- this.preview_timer = setTimeout(function(){ ref.load_contact(id, 'show'); }, 200);
- else if (this.env.contentframe)
- this.show_contentframe(false);
-
- if (list.selection.length) {
- list.draggable = false;
-
- // no source = search result, we'll need to detect if any of
- // selected contacts are in writable addressbook to enable edit/delete
- // we'll also need to know sources used in selection for copy
- // and group-addmember operations (drag&drop)
- this.env.selection_sources = [];
-
- if (source) {
- this.env.selection_sources.push(this.env.source);
- }
-
- for (n in list.selection) {
- contact = list.data[list.selection[n]];
- if (!source) {
- sid = String(list.selection[n]).replace(/^[^-]+-/, '');
- if (sid && this.env.address_sources[sid]) {
- writable = writable || (!this.env.address_sources[sid].readonly && !contact.readonly);
- this.env.selection_sources.push(sid);
- }
- }
- else {
- writable = writable || (!source.readonly && !contact.readonly);
- }
-
- if (contact._type != 'group')
- list.draggable = true;
- }
-
- this.env.selection_sources = $.unique(this.env.selection_sources);
- }
-
- // if a group is currently selected, and there is at least one contact selected
- // thend we can enable the group-remove-selected command
- this.enable_command('group-remove-selected', this.env.group && list.selection.length > 0 && writable);
- this.enable_command('compose', this.env.group || list.selection.length > 0);
- this.enable_command('export-selected', 'copy', list.selection.length > 0);
- this.enable_command('edit', id && writable);
- this.enable_command('delete', 'move', list.selection.length > 0 && writable);
-
- return false;
- };
-
- this.list_contacts = function(src, group, page)
- {
- var win, folder, url = {},
- target = window;
-
- if (!src)
- src = this.env.source;
-
- if (page && this.current_page == page && src == this.env.source && group == this.env.group)
- return false;
-
- if (src != this.env.source) {
- page = this.env.current_page = 1;
- this.reset_qsearch();
- }
- else if (group != this.env.group)
- page = this.env.current_page = 1;
-
- if (this.env.search_id)
- folder = 'S'+this.env.search_id;
- else if (!this.env.search_request)
- folder = group ? 'G'+src+group : src;
-
- this.env.source = src;
- this.env.group = group;
-
- // truncate groups listing stack
- var index = $.inArray(this.env.group, this.env.address_group_stack);
- if (index < 0)
- this.env.address_group_stack = [];
- else
- this.env.address_group_stack = this.env.address_group_stack.slice(0,index);
-
- // make sure the current group is on top of the stack
- if (this.env.group) {
- this.env.address_group_stack.push(this.env.group);
-
- // mark the first group on the stack as selected in the directory list
- folder = 'G'+src+this.env.address_group_stack[0];
- }
- else if (this.gui_objects.addresslist_title) {
- $(this.gui_objects.addresslist_title).html(this.get_label('contacts'));
- }
-
- this.select_folder(folder, '', true);
-
- // load contacts remotely
- if (this.gui_objects.contactslist) {
- this.list_contacts_remote(src, group, page);
- return;
- }
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- target = win;
- url._framed = 1;
- }
-
- if (group)
- url._gid = group;
- if (page)
- url._page = page;
- if (src)
- url._source = src;
-
- // also send search request to get the correct listing
- if (this.env.search_request)
- url._search = this.env.search_request;
-
- this.set_busy(true, 'loading');
- this.location_href(url, target);
- };
-
- // send remote request to load contacts list
- this.list_contacts_remote = function(src, group, page)
- {
- // clear message list first
- this.list_contacts_clear();
-
- // send request to server
- var url = {}, lock = this.set_busy(true, 'loading');
-
- if (src)
- url._source = src;
- if (page)
- url._page = page;
- if (group)
- url._gid = group;
-
- this.env.source = src;
- this.env.group = group;
-
- // also send search request to get the right records
- if (this.env.search_request)
- url._search = this.env.search_request;
-
- this.http_request(this.env.task == 'mail' ? 'list-contacts' : 'list', url, lock);
- };
-
- this.list_contacts_clear = function()
- {
- this.contact_list.data = {};
- this.contact_list.clear(true);
- this.show_contentframe(false);
- this.enable_command('delete', 'move', 'copy', false);
- this.enable_command('compose', this.env.group ? true : false);
- };
-
- this.set_group_prop = function(prop)
- {
- if (this.gui_objects.addresslist_title) {
- var boxtitle = $(this.gui_objects.addresslist_title).html(''); // clear contents
-
- // add link to pop back to parent group
- if (this.env.address_group_stack.length > 1) {
- $('<a href="#list">...</a>')
- .addClass('poplink')
- .appendTo(boxtitle)
- .click(function(e){ return ref.command('popgroup','',this); });
- boxtitle.append('&nbsp;&raquo;&nbsp;');
- }
-
- boxtitle.append($('<span>').text(prop.name));
- }
-
- this.triggerEvent('groupupdate', prop);
- };
-
- // load contact record
- this.load_contact = function(cid, action, framed)
- {
- var win, url = {}, target = window,
- rec = this.contact_list ? this.contact_list.data[cid] : null;
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- url._framed = 1;
- target = win;
- this.show_contentframe(true);
-
- // load dummy content, unselect selected row(s)
- if (!cid)
- this.contact_list.clear_selection();
-
- this.enable_command('compose', rec && rec.email);
- this.enable_command('export-selected', rec && rec._type != 'group');
- }
- else if (framed)
- return false;
-
- if (action && (cid || action=='add') && !this.drag_active) {
- if (this.env.group)
- url._gid = this.env.group;
-
- url._action = action;
- url._source = this.env.source;
- url._cid = cid;
-
- this.location_href(url, target, true);
- }
-
- return true;
- };
-
- // add/delete member to/from the group
- this.group_member_change = function(what, cid, source, gid)
- {
- what = what == 'add' ? 'add' : 'del';
- var label = this.get_label(what == 'add' ? 'addingmember' : 'removingmember'),
- lock = this.display_message(label, 'loading'),
- post_data = {_cid: cid, _source: source, _gid: gid};
-
- this.http_post('group-'+what+'members', post_data, lock);
- };
-
- this.contacts_drag_menu = function(e, to)
- {
- var dest = to.type == 'group' ? to.source : to.id,
- source = this.env.source;
-
- if (!this.env.address_sources[dest] || this.env.address_sources[dest].readonly)
- return true;
-
- // search result may contain contacts from many sources, but if there is only one...
- if (source == '' && this.env.selection_sources.length == 1)
- source = this.env.selection_sources[0];
-
- if (to.type == 'group' && dest == source) {
- var cid = this.contact_list.get_selection().join(',');
- this.group_member_change('add', cid, dest, to.id);
- return true;
- }
- // move action is not possible, "redirect" to copy if menu wasn't requested
- else if (!this.commands.move && rcube_event.get_modifier(e) != SHIFT_KEY) {
- this.copy_contacts(to);
- return true;
- }
-
- return this.drag_menu(e, to);
- };
-
- // copy contact(s) to the specified target (group or directory)
- this.copy_contacts = function(to)
- {
- var n, dest = to.type == 'group' ? to.source : to.id,
- source = this.env.source,
- group = this.env.group ? this.env.group : '',
- cid = this.contact_list.get_selection().join(',');
-
- if (!cid || !this.env.address_sources[dest] || this.env.address_sources[dest].readonly)
- return;
-
- // search result may contain contacts from many sources, but if there is only one...
- if (source == '' && this.env.selection_sources.length == 1)
- source = this.env.selection_sources[0];
-
- // tagret is a group
- if (to.type == 'group') {
- if (dest == source)
- return;
-
- var lock = this.display_message(this.get_label('copyingcontact'), 'loading'),
- post_data = {_cid: cid, _source: this.env.source, _to: dest, _togid: to.id, _gid: group};
-
- this.http_post('copy', post_data, lock);
- }
- // target is an addressbook
- else if (to.id != source) {
- var lock = this.display_message(this.get_label('copyingcontact'), 'loading'),
- post_data = {_cid: cid, _source: this.env.source, _to: to.id, _gid: group};
-
- this.http_post('copy', post_data, lock);
- }
- };
-
- // move contact(s) to the specified target (group or directory)
- this.move_contacts = function(to)
- {
- var dest = to.type == 'group' ? to.source : to.id,
- source = this.env.source,
- group = this.env.group ? this.env.group : '';
-
- if (!this.env.address_sources[dest] || this.env.address_sources[dest].readonly)
- return;
-
- // search result may contain contacts from many sources, but if there is only one...
- if (source == '' && this.env.selection_sources.length == 1)
- source = this.env.selection_sources[0];
-
- if (to.type == 'group') {
- if (dest == source)
- return;
-
- this._with_selected_contacts('move', {_to: dest, _togid: to.id});
- }
- // target is an addressbook
- else if (to.id != source)
- this._with_selected_contacts('move', {_to: to.id});
- };
-
- // delete contact(s)
- this.delete_contacts = function()
- {
- var undelete = this.env.source && this.env.address_sources[this.env.source].undelete;
-
- if (!undelete && !confirm(this.get_label('deletecontactconfirm')))
- return;
-
- return this._with_selected_contacts('delete');
- };
-
- this._with_selected_contacts = function(action, post_data)
- {
- var selection = this.contact_list ? this.contact_list.get_selection() : [];
-
- // exit if no mailbox specified or if selection is empty
- if (!selection.length && !this.env.cid)
- return;
-
- var n, a_cids = [],
- label = action == 'delete' ? 'contactdeleting' : 'movingcontact',
- lock = this.display_message(this.get_label(label), 'loading');
- if (this.env.cid)
- a_cids.push(this.env.cid);
- else {
- for (n=0; n<selection.length; n++) {
- id = selection[n];
- a_cids.push(id);
- this.contact_list.remove_row(id, (n == selection.length-1));
- }
-
- // hide content frame if we delete the currently displayed contact
- if (selection.length == 1)
- this.show_contentframe(false);
- }
-
- if (!post_data)
- post_data = {};
-
- post_data._source = this.env.source;
- post_data._from = this.env.action;
- post_data._cid = a_cids.join(',');
-
- if (this.env.group)
- post_data._gid = this.env.group;
-
- // also send search request to get the right records from the next page
- if (this.env.search_request)
- post_data._search = this.env.search_request;
-
- // send request to server
- this.http_post(action, post_data, lock)
-
- return true;
- };
-
- // update a contact record in the list
- this.update_contact_row = function(cid, cols_arr, newcid, source, data)
- {
- var c, row, list = this.contact_list;
-
- cid = this.html_identifier(cid);
-
- // when in searching mode, concat cid with the source name
- if (!list.rows[cid]) {
- cid = cid+'-'+source;
- if (newcid)
- newcid = newcid+'-'+source;
- }
-
- list.update_row(cid, cols_arr, newcid, true);
- list.data[cid] = data;
- };
-
- // add row to contacts list
- this.add_contact_row = function(cid, cols, classes, data)
- {
- if (!this.gui_objects.contactslist)
- return false;
-
- var c, col, list = this.contact_list,
- row = { cols:[] };
-
- row.id = 'rcmrow'+this.html_identifier(cid);
- row.className = 'contact ' + (classes || '');
-
- if (list.in_selection(cid))
- row.className += ' selected';
-
- // add each submitted col
- for (c in cols) {
- col = {};
- col.className = String(c).toLowerCase();
- col.innerHTML = cols[c];
- row.cols.push(col);
- }
-
- // store data in list member
- list.data[cid] = data;
- list.insert_row(row);
-
- this.enable_command('export', list.rowcount > 0);
- };
-
- this.init_contact_form = function()
- {
- var ref = this, col;
-
- if (this.env.coltypes) {
- this.set_photo_actions($('#ff_photo').val());
- for (col in this.env.coltypes)
- this.init_edit_field(col, null);
- }
-
- $('.contactfieldgroup .row a.deletebutton').click(function() {
- ref.delete_edit_field(this);
- return false;
- });
-
- $('select.addfieldmenu').change(function(e) {
- ref.insert_edit_field($(this).val(), $(this).attr('rel'), this);
- this.selectedIndex = 0;
- });
-
- // enable date pickers on date fields
- if ($.datepicker && this.env.date_format) {
- $.datepicker.setDefaults({
- dateFormat: this.env.date_format,
- changeMonth: true,
- changeYear: true,
- yearRange: '-100:+10',
- showOtherMonths: true,
- selectOtherMonths: true,
- onSelect: function(dateText) { $(this).focus().val(dateText) }
- });
- $('input.datepicker').datepicker();
- }
-
- // Submit search form on Enter
- if (this.env.action == 'search')
- $(this.gui_objects.editform).append($('<input type="submit">').hide())
- .submit(function() { $('input.mainaction').click(); return false; });
- };
-
- this.group_create = function()
- {
- this.add_input_row('contactgroup');
- };
-
- this.group_rename = function()
- {
- if (!this.env.group || !this.gui_objects.folderlist)
- return;
-
- if (!this.name_input) {
- this.enable_command('list', 'listgroup', false);
- this.name_input = $('<input>').attr('type', 'text').val(this.env.contactgroups['G'+this.env.source+this.env.group].name);
- this.name_input.bind('keydown', function(e){ return rcmail.add_input_keydown(e); });
- this.env.group_renaming = true;
-
- var link, li = this.get_folder_li('G'+this.env.source+this.env.group,'',true);
- if (li && (link = li.firstChild)) {
- $(link).hide().before(this.name_input);
- }
- }
-
- this.name_input.select().focus();
- };
-
- this.group_delete = function()
- {
- if (this.env.group && confirm(this.get_label('deletegroupconfirm'))) {
- var lock = this.set_busy(true, 'groupdeleting');
- this.http_post('group-delete', {_source: this.env.source, _gid: this.env.group}, lock);
- }
- };
-
- // callback from server upon group-delete command
- this.remove_group_item = function(prop)
- {
- var key = 'G'+prop.source+prop.id;
- if (this.treelist.remove(key)) {
- delete this.env.contactfolders[key];
- delete this.env.contactgroups[key];
- }
-
- this.list_contacts(prop.source, 0);
- };
-
- // @TODO: maybe it would be better to use popup instead of inserting input to the list?
- this.add_input_row = function(type)
- {
- if (!this.gui_objects.folderlist)
- return;
-
- if (!this.name_input) {
- this.name_input = $('<input>').attr('type', 'text').data('tt', type);
- this.name_input.bind('keydown', function(e){ return rcmail.add_input_keydown(e); });
- this.name_input_li = $('<li>').addClass(type).append(this.name_input);
-
- var ul, li;
-
- // find list (UL) element
- if (type == 'contactsearch')
- ul = this.gui_objects.folderlist;
- else
- ul = $('ul.groups', this.get_folder_li(this.env.source,'',true));
-
- // append to the list
- li = $('li:last', ul);
- if (li.length)
- this.name_input_li.insertAfter(li);
- else {
- this.name_input_li.appendTo(ul);
- ul.show(); // make sure the list is visible
- }
- }
-
- this.name_input.select().focus();
- };
-
- //remove selected contacts from current active group
- this.group_remove_selected = function()
- {
- ref.http_post('group-delmembers', {_cid: this.contact_list.selection,
- _source: this.env.source, _gid: this.env.group});
- };
-
- //callback after deleting contact(s) from current group
- this.remove_group_contacts = function(props)
- {
- if('undefined' != typeof this.env.group && (this.env.group === props.gid)){
- var n, selection = this.contact_list.get_selection();
- for (n=0; n<selection.length; n++) {
- id = selection[n];
- this.contact_list.remove_row(id, (n == selection.length-1));
- }
- }
- }
-
- // handler for keyboard events on the input field
- this.add_input_keydown = function(e)
- {
- var key = rcube_event.get_keycode(e),
- input = $(e.target), itype = input.data('tt');
-
- // enter
- if (key == 13) {
- var newname = input.val();
-
- if (newname) {
- var lock = this.set_busy(true, 'loading');
-
- if (itype == 'contactsearch')
- this.http_post('search-create', {_search: this.env.search_request, _name: newname}, lock);
- else if (this.env.group_renaming)
- this.http_post('group-rename', {_source: this.env.source, _gid: this.env.group, _name: newname}, lock);
- else
- this.http_post('group-create', {_source: this.env.source, _name: newname}, lock);
- }
- return false;
- }
- // escape
- else if (key == 27)
- this.reset_add_input();
-
- return true;
- };
-
- this.reset_add_input = function()
- {
- if (this.name_input) {
- var li = this.name_input.parent();
- if (this.env.group_renaming) {
- li.children().last().show();
- this.env.group_renaming = false;
- }
- else if ($('li', li.parent()).length == 1)
- li.parent().hide();
-
- this.name_input.remove();
-
- if (this.name_input_li)
- this.name_input_li.remove();
-
- this.name_input = this.name_input_li = null;
- }
-
- this.enable_command('list', 'listgroup', true);
- };
-
- // callback for creating a new contact group
- this.insert_contact_group = function(prop)
- {
- this.reset_add_input();
-
- prop.type = 'group';
- var key = 'G'+prop.source+prop.id,
- link = $('<a>').attr('href', '#')
- .attr('rel', prop.source+':'+prop.id)
- .click(function() { return rcmail.command('listgroup', prop, this); })
- .html(prop.name);
-
- this.env.contactfolders[key] = this.env.contactgroups[key] = prop;
- this.treelist.insert({ id:key, html:link, classes:['contactgroup'] }, prop.source, true);
-
- this.triggerEvent('group_insert', { id:prop.id, source:prop.source, name:prop.name, li:this.treelist.get_item(key) });
- };
-
- // callback for renaming a contact group
- this.update_contact_group = function(prop)
- {
- this.reset_add_input();
-
- var key = 'G'+prop.source+prop.id,
- newnode = {};
-
- // group ID has changed, replace link node and identifiers
- if (prop.newid) {
- var newkey = 'G'+prop.source+prop.newid,
- newprop = $.extend({}, prop);
-
- this.env.contactfolders[newkey] = this.env.contactfolders[key];
- this.env.contactfolders[newkey].id = prop.newid;
- this.env.group = prop.newid;
-
- delete this.env.contactfolders[key];
- delete this.env.contactgroups[key];
-
- newprop.id = prop.newid;
- newprop.type = 'group';
-
- newnode.id = newkey;
- newnode.html = $('<a>').attr('href', '#')
- .attr('rel', prop.source+':'+prop.newid)
- .click(function() { return rcmail.command('listgroup', newprop, this); })
- .html(prop.name);
- }
- // update displayed group name
- else {
- $(this.treelist.get_item(key)).children().first().html(prop.name);
- this.env.contactfolders[key].name = this.env.contactgroups[key].name = prop.name;
- }
-
- // update list node and re-sort it
- this.treelist.update(key, newnode, true);
-
- this.triggerEvent('group_update', { id:prop.id, source:prop.source, name:prop.name, li:this.treelist.get_item(key), newid:prop.newid });
- };
-
- this.update_group_commands = function()
- {
- var source = this.env.source != '' ? this.env.address_sources[this.env.source] : null;
- this.enable_command('group-create', (source && source.groups && !source.readonly));
- this.enable_command('group-rename', 'group-delete', (source && source.groups && this.env.group && !source.readonly));
- };
-
- this.init_edit_field = function(col, elem)
- {
- var label = this.env.coltypes[col].label;
-
- if (!elem)
- elem = $('.ff_' + col);
-
- if (label)
- elem.placeholder(label);
- };
-
- this.insert_edit_field = function(col, section, menu)
- {
- // just make pre-defined input field visible
- var elem = $('#ff_'+col);
- if (elem.length) {
- elem.show().focus();
- $(menu).children('option[value="'+col+'"]').prop('disabled', true);
- }
- else {
- var lastelem = $('.ff_'+col),
- appendcontainer = $('#contactsection'+section+' .contactcontroller'+col);
-
- if (!appendcontainer.length) {
- var sect = $('#contactsection'+section),
- lastgroup = $('.contactfieldgroup', sect).last();
- appendcontainer = $('<fieldset>').addClass('contactfieldgroup contactcontroller'+col);
- if (lastgroup.length)
- appendcontainer.insertAfter(lastgroup);
- else
- sect.prepend(appendcontainer);
- }
-
- if (appendcontainer.length && appendcontainer.get(0).nodeName == 'FIELDSET') {
- var input, colprop = this.env.coltypes[col],
- row = $('<div>').addClass('row'),
- cell = $('<div>').addClass('contactfieldcontent data'),
- label = $('<div>').addClass('contactfieldlabel label');
-
- if (colprop.subtypes_select)
- label.html(colprop.subtypes_select);
- else
- label.html(colprop.label);
-
- var name_suffix = colprop.limit != 1 ? '[]' : '';
- if (colprop.type == 'text' || colprop.type == 'date') {
- input = $('<input>')
- .addClass('ff_'+col)
- .attr({type: 'text', name: '_'+col+name_suffix, size: colprop.size})
- .appendTo(cell);
-
- this.init_edit_field(col, input);
-
- if (colprop.type == 'date' && $.datepicker)
- input.datepicker();
- }
- else if (colprop.type == 'textarea') {
- input = $('<textarea>')
- .addClass('ff_'+col)
- .attr({ name: '_'+col+name_suffix, cols:colprop.size, rows:colprop.rows })
- .appendTo(cell);
-
- this.init_edit_field(col, input);
- }
- else if (colprop.type == 'composite') {
- var childcol, cp, first, templ, cols = [], suffices = [];
- // read template for composite field order
- if ((templ = this.env[col+'_template'])) {
- for (var j=0; j < templ.length; j++) {
- cols.push(templ[j][1]);
- suffices.push(templ[j][2]);
- }
- }
- else { // list fields according to appearance in colprop
- for (childcol in colprop.childs)
- cols.push(childcol);
- }
-
- for (var i=0; i < cols.length; i++) {
- childcol = cols[i];
- cp = colprop.childs[childcol];
- input = $('<input>')
- .addClass('ff_'+childcol)
- .attr({ type: 'text', name: '_'+childcol+name_suffix, size: cp.size })
- .appendTo(cell);
- cell.append(suffices[i] || " ");
- this.init_edit_field(childcol, input);
- if (!first) first = input;
- }
- input = first; // set focus to the first of this composite fields
- }
- else if (colprop.type == 'select') {
- input = $('<select>')
- .addClass('ff_'+col)
- .attr('name', '_'+col+name_suffix)
- .appendTo(cell);
-
- var options = input.attr('options');
- options[options.length] = new Option('---', '');
- if (colprop.options)
- $.each(colprop.options, function(i, val){ options[options.length] = new Option(val, i); });
- }
-
- if (input) {
- var delbutton = $('<a href="#del"></a>')
- .addClass('contactfieldbutton deletebutton')
- .attr({title: this.get_label('delete'), rel: col})
- .html(this.env.delbutton)
- .click(function(){ ref.delete_edit_field(this); return false })
- .appendTo(cell);
-
- row.append(label).append(cell).appendTo(appendcontainer.show());
- input.first().focus();
-
- // disable option if limit reached
- if (!colprop.count) colprop.count = 0;
- if (++colprop.count == colprop.limit && colprop.limit)
- $(menu).children('option[value="'+col+'"]').prop('disabled', true);
- }
- }
- }
- };
-
- this.delete_edit_field = function(elem)
- {
- var col = $(elem).attr('rel'),
- colprop = this.env.coltypes[col],
- fieldset = $(elem).parents('fieldset.contactfieldgroup'),
- addmenu = fieldset.parent().find('select.addfieldmenu');
-
- // just clear input but don't hide the last field
- if (--colprop.count <= 0 && colprop.visible)
- $(elem).parent().children('input').val('').blur();
- else {
- $(elem).parents('div.row').remove();
- // hide entire fieldset if no more rows
- if (!fieldset.children('div.row').length)
- fieldset.hide();
- }
-
- // enable option in add-field selector or insert it if necessary
- if (addmenu.length) {
- var option = addmenu.children('option[value="'+col+'"]');
- if (option.length)
- option.prop('disabled', false);
- else
- option = $('<option>').attr('value', col).html(colprop.label).appendTo(addmenu);
- addmenu.show();
- }
- };
-
- this.upload_contact_photo = function(form)
- {
- if (form && form.elements._photo.value) {
- this.async_upload_form(form, 'upload-photo', function(e) {
- rcmail.set_busy(false, null, rcmail.file_upload_id);
- });
-
- // display upload indicator
- this.file_upload_id = this.set_busy(true, 'uploading');
- }
- };
-
- this.replace_contact_photo = function(id)
- {
- var img_src = id == '-del-' ? this.env.photo_placeholder :
- this.env.comm_path + '&_action=photo&_source=' + this.env.source + '&_cid=' + (this.env.cid || 0) + '&_photo=' + id;
-
- this.set_photo_actions(id);
- $(this.gui_objects.contactphoto).children('img').attr('src', img_src);
- };
-
- this.photo_upload_end = function()
- {
- this.set_busy(false, null, this.file_upload_id);
- delete this.file_upload_id;
- };
-
- this.set_photo_actions = function(id)
- {
- var n, buttons = this.buttons['upload-photo'];
- for (n=0; buttons && n < buttons.length; n++)
- $('a#'+buttons[n].id).html(this.get_label(id == '-del-' ? 'addphoto' : 'replacephoto'));
-
- $('#ff_photo').val(id);
- this.enable_command('upload-photo', this.env.coltypes.photo ? true : false);
- this.enable_command('delete-photo', this.env.coltypes.photo && id != '-del-');
- };
-
- // load advanced search page
- this.advanced_search = function()
- {
- var win, url = {_form: 1, _action: 'search'}, target = window;
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- url._framed = 1;
- target = win;
- this.contact_list.clear_selection();
- }
-
- this.location_href(url, target, true);
-
- return true;
- };
-
- // unselect directory/group
- this.unselect_directory = function()
- {
- this.select_folder('');
- this.enable_command('search-delete', false);
- };
-
- // callback for creating a new saved search record
- this.insert_saved_search = function(name, id)
- {
- this.reset_add_input();
-
- var key = 'S'+id,
- link = $('<a>').attr('href', '#')
- .attr('rel', id)
- .click(function() { return rcmail.command('listsearch', id, this); })
- .html(name),
- prop = { name:name, id:id };
-
- this.treelist.insert({ id:key, html:link, classes:['contactsearch'] }, null, 'contactsearch');
- this.select_folder(key,'',true);
- this.enable_command('search-delete', true);
- this.env.search_id = id;
-
- this.triggerEvent('abook_search_insert', prop);
- };
-
- // creates an input for saved search name
- this.search_create = function()
- {
- this.add_input_row('contactsearch');
- };
-
- this.search_delete = function()
- {
- if (this.env.search_request) {
- var lock = this.set_busy(true, 'savedsearchdeleting');
- this.http_post('search-delete', {_sid: this.env.search_id}, lock);
- }
- };
-
- // callback from server upon search-delete command
- this.remove_search_item = function(id)
- {
- var li, key = 'S'+id;
- if (this.treelist.remove(key)) {
- this.triggerEvent('search_delete', { id:id, li:li });
- }
-
- this.env.search_id = null;
- this.env.search_request = null;
- this.list_contacts_clear();
- this.reset_qsearch();
- this.enable_command('search-delete', 'search-create', false);
- };
-
- this.listsearch = function(id)
- {
- var folder, lock = this.set_busy(true, 'searching');
-
- if (this.contact_list) {
- this.list_contacts_clear();
- }
-
- this.reset_qsearch();
- this.select_folder('S'+id, '', true);
-
- // reset vars
- this.env.current_page = 1;
- this.http_request('search', {_sid: id}, lock);
- };
-
-
- /*********************************************************/
- /********* user settings methods *********/
- /*********************************************************/
-
- // preferences section select and load options frame
- this.section_select = function(list)
- {
- var win, id = list.get_single_selection(), target = window,
- url = {_action: 'edit-prefs', _section: id};
-
- if (id) {
- if (win = this.get_frame_window(this.env.contentframe)) {
- url._framed = 1;
- target = win;
- }
- this.location_href(url, target, true);
- }
-
- return true;
- };
-
- this.identity_select = function(list)
- {
- var id;
- if (id = list.get_single_selection()) {
- this.enable_command('delete', list.rowcount > 1 && this.env.identities_level < 2);
- this.load_identity(id, 'edit-identity');
- }
- };
-
- // load identity record
- this.load_identity = function(id, action)
- {
- if (action == 'edit-identity' && (!id || id == this.env.iid))
- return false;
-
- var win, target = window,
- url = {_action: action, _iid: id};
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- url._framed = 1;
- target = win;
- }
-
- if (action && (id || action == 'add-identity')) {
- this.set_busy(true);
- this.location_href(url, target);
- }
-
- return true;
- };
-
- this.delete_identity = function(id)
- {
- // exit if no identity is specified or if selection is empty
- var selection = this.identity_list.get_selection();
- if (!(selection.length || this.env.iid))
- return;
-
- if (!id)
- id = this.env.iid ? this.env.iid : selection[0];
-
- // submit request with appended token
- if (confirm(this.get_label('deleteidentityconfirm')))
- this.goto_url('delete-identity', { _iid: id, _token: this.env.request_token }, true);
-
- return true;
- };
-
- this.update_identity_row = function(id, name, add)
- {
- var list = this.identity_list,
- rid = this.html_identifier(id);
-
- if (add) {
- list.insert_row({ id:'rcmrow'+rid, cols:[ { className:'mail', innerHTML:name } ] });
- list.select(rid);
- }
- else {
- list.update_row(rid, [ name ]);
- }
- };
-
- this.update_response_row = function(response, oldkey)
- {
- var list = this.responses_list;
-
- if (list && oldkey) {
- list.update_row(oldkey, [ response.name ], response.key, true);
- }
- else if (list) {
- list.insert_row({ id:'rcmrow'+response.key, cols:[ { className:'name', innerHTML:response.name } ] });
- list.select(response.key);
- }
- };
-
- this.remove_response = function(key)
- {
- var frame;
-
- if (this.env.textresponses) {
- delete this.env.textresponses[key];
- }
-
- if (this.responses_list) {
- this.responses_list.remove_row(key);
- if (this.env.contentframe && (frame = this.get_frame_window(this.env.contentframe))) {
- frame.location.href = this.env.blankpage;
- }
- }
- };
-
-
- /*********************************************************/
- /********* folder manager methods *********/
- /*********************************************************/
-
- this.init_subscription_list = function()
- {
- var p = this, delim = RegExp.escape(this.env.delimiter);
-
- this.last_sub_rx = RegExp('['+delim+']?[^'+delim+']+$');
-
- this.subscription_list = new rcube_list_widget(this.gui_objects.subscriptionlist,
- {multiselect:false, draggable:true, keyboard:false, toggleselect:true});
- this.subscription_list.addEventListener('select', function(o){ p.subscription_select(o); });
- this.subscription_list.addEventListener('dragstart', function(o){ p.drag_active = true; });
- this.subscription_list.addEventListener('dragend', function(o){ p.subscription_move_folder(o); });
- this.subscription_list.row_init = function (row) {
- row.obj.onmouseover = function() { p.focus_subscription(row.id); };
- row.obj.onmouseout = function() { p.unfocus_subscription(row.id); };
- };
- this.subscription_list.init();
-
- $('#mailboxroot')
- .mouseover(function(){ p.focus_subscription(this.id); })
- .mouseout(function(){ p.unfocus_subscription(this.id); })
- };
-
- this.focus_subscription = function(id)
- {
- var row, folder;
-
- if (this.drag_active && this.env.mailbox && (row = document.getElementById(id)))
- if (this.env.subscriptionrows[id] &&
- (folder = this.env.subscriptionrows[id][0]) !== null
- ) {
- if (this.check_droptarget(folder) &&
- !this.env.subscriptionrows[this.get_folder_row_id(this.env.mailbox)][2] &&
- folder != this.env.mailbox.replace(this.last_sub_rx, '') &&
- !folder.startsWith(this.env.mailbox + this.env.delimiter)
- ) {
- this.env.dstfolder = folder;
- $(row).addClass('droptarget');
- }
- }
- };
-
- this.unfocus_subscription = function(id)
- {
- var row = $('#'+id);
-
- this.env.dstfolder = null;
-
- if (this.env.subscriptionrows[id] && row.length)
- row.removeClass('droptarget');
- else
- $(this.subscription_list.frame).removeClass('droptarget');
- };
-
- this.subscription_select = function(list)
- {
- var id, folder;
-
- if (list && (id = list.get_single_selection()) &&
- (folder = this.env.subscriptionrows['rcmrow'+id])
- ) {
- this.env.mailbox = folder[0];
- this.show_folder(folder[0]);
- this.enable_command('delete-folder', !folder[2]);
- }
- else {
- this.env.mailbox = null;
- this.show_contentframe(false);
- this.enable_command('delete-folder', 'purge', false);
- }
- };
-
- this.subscription_move_folder = function(list)
- {
- if (this.env.mailbox && this.env.dstfolder !== null &&
- this.env.dstfolder != this.env.mailbox &&
- this.env.dstfolder != this.env.mailbox.replace(this.last_sub_rx, '')
- ) {
- var path = this.env.mailbox.split(this.env.delimiter),
- basename = path.pop(),
- newname = this.env.dstfolder === '' ? basename : this.env.dstfolder + this.env.delimiter + basename;
-
- if (newname != this.env.mailbox) {
- this.http_post('rename-folder', {_folder_oldname: this.env.mailbox, _folder_newname: newname}, this.set_busy(true, 'foldermoving'));
- this.subscription_list.draglayer.hide();
- }
- }
-
- this.drag_active = false;
- this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder));
- };
-
- // tell server to create and subscribe a new mailbox
- this.create_folder = function()
- {
- this.show_folder('', this.env.mailbox);
- };
-
- // delete a specific mailbox with all its messages
- this.delete_folder = function(name)
- {
- var id = this.get_folder_row_id(name ? name : this.env.mailbox),
- folder = this.env.subscriptionrows[id][0];
-
- if (folder && confirm(this.get_label('deletefolderconfirm'))) {
- var lock = this.set_busy(true, 'folderdeleting');
- this.http_post('delete-folder', {_mbox: folder}, lock);
- }
- };
-
- // Add folder row to the table and initialize it
- this.add_folder_row = function (name, display_name, is_protected, subscribed, skip_init, class_name)
- {
- if (!this.gui_objects.subscriptionlist)
- return false;
-
- var row, n, i, tmp, tmp_name, folders, rowid, list = [], slist = [],
- tbody = this.gui_objects.subscriptionlist.tBodies[0],
- refrow = $('tr', tbody).get(1),
- id = 'rcmrow'+((new Date).getTime());
-
- if (!refrow) {
- // Refresh page if we don't have a table row to clone
- this.goto_url('folders');
- return false;
- }
-
- // clone a table row if there are existing rows
- row = $(refrow).clone(true);
-
- // set ID, reset css class
- row.attr('id', id);
- row.attr('class', class_name);
-
- // set folder name
- row.find('td:first').html(display_name);
-
- // update subscription checkbox
- $('input[name="_subscribed[]"]', row).val(name)
- .prop({checked: subscribed ? true : false, disabled: is_protected ? true : false});
-
- // add to folder/row-ID map
- this.env.subscriptionrows[id] = [name, display_name, 0];
-
- // sort folders, to find a place where to insert the row
- folders = [];
- $.each(this.env.subscriptionrows, function(k,v){ folders.push(v) });
- folders.sort(function(a,b){ return a[0] < b[0] ? -1 : (a[0] > b[0] ? 1 : 0) });
-
- for (n in folders) {
- // protected folder
- if (folders[n][2]) {
- tmp_name = folders[n][0] + this.env.delimiter;
- // prefix namespace cannot have subfolders (#1488349)
- if (tmp_name == this.env.prefix_ns)
- continue;
- slist.push(folders[n][0]);
- tmp = tmp_name;
- }
- // protected folder's child
- else if (tmp && folders[n][0].startsWith(tmp))
- slist.push(folders[n][0]);
- // other
- else {
- list.push(folders[n][0]);
- tmp = null;
- }
- }
-
- // check if subfolder of a protected folder
- for (n=0; n<slist.length; n++) {
- if (name.startsWith(slist[n] + this.env.delimiter))
- rowid = this.get_folder_row_id(slist[n]);
- }
-
- // find folder position after sorting
- for (n=0; !rowid && n<list.length; n++) {
- if (n && list[n] == name)
- rowid = this.get_folder_row_id(list[n-1]);
- }
-
- // add row to the table
- if (rowid)
- $('#'+rowid).after(row);
- else
- row.appendTo(tbody);
-
- // update list widget
- this.subscription_list.clear_selection();
- if (!skip_init)
- this.init_subscription_list();
-
- row = row.get(0);
- if (row.scrollIntoView)
- row.scrollIntoView();
-
- return row;
- };
-
- // replace an existing table row with a new folder line (with subfolders)
- this.replace_folder_row = function(oldfolder, newfolder, display_name, is_protected, class_name)
- {
- if (!this.gui_objects.subscriptionlist)
- return false;
-
- var i, n, len, name, dispname, oldrow, tmprow, row, level,
- tbody = this.gui_objects.subscriptionlist.tBodies[0],
- folders = this.env.subscriptionrows,
- id = this.get_folder_row_id(oldfolder),
- prefix_len = oldfolder.length,
- subscribed = $('input[name="_subscribed[]"]', $('#'+id)).prop('checked'),
- // find subfolders of renamed folder
- list = this.get_subfolders(oldfolder);
-
- // replace an existing table row
- this._remove_folder_row(id);
- row = $(this.add_folder_row(newfolder, display_name, is_protected, subscribed, true, class_name));
-
- // detect tree depth change
- if (len = list.length) {
- level = (oldfolder.split(this.env.delimiter)).length - (newfolder.split(this.env.delimiter)).length;
- }
-
- // move subfolders to the new branch
- for (n=0; n<len; n++) {
- id = list[n];
- name = this.env.subscriptionrows[id][0];
- dispname = this.env.subscriptionrows[id][1];
- oldrow = $('#'+id);
- tmprow = oldrow.clone(true);
- oldrow.remove();
- row.after(tmprow);
- row = tmprow;
- // update folder index
- name = newfolder + name.slice(prefix_len);
- $('input[name="_subscribed[]"]', row).val(name);
- this.env.subscriptionrows[id][0] = name;
- // update the name if level is changed
- if (level != 0) {
- if (level > 0) {
- for (i=level; i>0; i--)
- dispname = dispname.replace(/^&nbsp;&nbsp;&nbsp;&nbsp;/, '');
- }
- else {
- for (i=level; i<0; i++)
- dispname = '&nbsp;&nbsp;&nbsp;&nbsp;' + dispname;
- }
- row.find('td:first').html(dispname);
- this.env.subscriptionrows[id][1] = dispname;
- }
- }
-
- // update list widget
- this.init_subscription_list();
- };
-
- // remove the table row of a specific mailbox from the table
- this.remove_folder_row = function(folder, subs)
- {
- var n, len, list = [], id = this.get_folder_row_id(folder);
-
- // get subfolders if any
- if (subs)
- list = this.get_subfolders(folder);
-
- // remove old row
- this._remove_folder_row(id);
-
- // remove subfolders
- for (n=0, len=list.length; n<len; n++)
- this._remove_folder_row(list[n]);
- };
-
- this._remove_folder_row = function(id)
- {
- this.subscription_list.remove_row(id.replace(/^rcmrow/, ''));
- $('#'+id).remove();
- delete this.env.subscriptionrows[id];
- }
-
- this.get_subfolders = function(folder)
- {
- var name, list = [],
- prefix = folder + this.env.delimiter,
- row = $('#'+this.get_folder_row_id(folder)).get(0);
-
- while (row = row.nextSibling) {
- if (row.id) {
- name = this.env.subscriptionrows[row.id][0];
- if (name && name.startsWith(prefix)) {
- list.push(row.id);
- }
- else
- break;
- }
- }
-
- return list;
- }
-
- this.subscribe = function(folder)
- {
- if (folder) {
- var lock = this.display_message(this.get_label('foldersubscribing'), 'loading');
- this.http_post('subscribe', {_mbox: folder}, lock);
- }
- };
-
- this.unsubscribe = function(folder)
- {
- if (folder) {
- var lock = this.display_message(this.get_label('folderunsubscribing'), 'loading');
- this.http_post('unsubscribe', {_mbox: folder}, lock);
- }
- };
-
- // helper method to find a specific mailbox row ID
- this.get_folder_row_id = function(folder)
- {
- var id, folders = this.env.subscriptionrows;
- for (id in folders)
- if (folders[id] && folders[id][0] == folder)
- break;
-
- return id;
- };
-
- // when user select a folder in manager
- this.show_folder = function(folder, path, force)
- {
- var win, target = window,
- url = '&_action=edit-folder&_mbox='+urlencode(folder);
-
- if (path)
- url += '&_path='+urlencode(path);
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- target = win;
- url += '&_framed=1';
- }
-
- if (String(target.location.href).indexOf(url) >= 0 && !force)
- this.show_contentframe(true);
- else
- this.location_href(this.env.comm_path+url, target, true);
- };
-
- // disables subscription checkbox (for protected folder)
- this.disable_subscription = function(folder)
- {
- var id = this.get_folder_row_id(folder);
- if (id)
- $('input[name="_subscribed[]"]', $('#'+id)).prop('disabled', true);
- };
-
- this.folder_size = function(folder)
- {
- var lock = this.set_busy(true, 'loading');
- this.http_post('folder-size', {_mbox: folder}, lock);
- };
-
- this.folder_size_update = function(size)
- {
- $('#folder-size').replaceWith(size);
- };
-
-
- /*********************************************************/
- /********* GUI functionality *********/
- /*********************************************************/
-
- var init_button = function(cmd, prop)
- {
- var elm = document.getElementById(prop.id);
- if (!elm)
- return;
-
- var preload = false;
- if (prop.type == 'image') {
- elm = elm.parentNode;
- preload = true;
- }
-
- elm._command = cmd;
- elm._id = prop.id;
- if (prop.sel) {
- elm.onmousedown = function(e){ return rcmail.button_sel(this._command, this._id); };
- elm.onmouseup = function(e){ return rcmail.button_out(this._command, this._id); };
- if (preload)
- new Image().src = prop.sel;
- }
- if (prop.over) {
- elm.onmouseover = function(e){ return rcmail.button_over(this._command, this._id); };
- elm.onmouseout = function(e){ return rcmail.button_out(this._command, this._id); };
- if (preload)
- new Image().src = prop.over;
- }
- };
-
- // set event handlers on registered buttons
- this.init_buttons = function()
- {
- for (var cmd in this.buttons) {
- if (typeof cmd !== 'string')
- continue;
-
- for (var i=0; i<this.buttons[cmd].length; i++) {
- init_button(cmd, this.buttons[cmd][i]);
- }
- }
-
- // set active task button
- this.set_button(this.task, 'sel');
- };
-
- // set button to a specific state
- this.set_button = function(command, state)
- {
- var n, button, obj, a_buttons = this.buttons[command],
- len = a_buttons ? a_buttons.length : 0;
-
- for (n=0; n<len; n++) {
- button = a_buttons[n];
- obj = document.getElementById(button.id);
-
- if (!obj)
- continue;
-
- // get default/passive setting of the button
- if (button.type == 'image' && !button.status) {
- button.pas = obj._original_src ? obj._original_src : obj.src;
- // respect PNG fix on IE browsers
- if (obj.runtimeStyle && obj.runtimeStyle.filter && obj.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/))
- button.pas = RegExp.$1;
- }
- else if (!button.status)
- button.pas = String(obj.className);
-
- // set image according to button state
- if (button.type == 'image' && button[state]) {
- button.status = state;
- obj.src = button[state];
- }
- // set class name according to button state
- else if (button[state] !== undefined) {
- button.status = state;
- obj.className = button[state];
- }
- // disable/enable input buttons
- if (button.type == 'input') {
- button.status = state;
- obj.disabled = !state;
- }
- }
- };
-
- // display a specific alttext
- this.set_alttext = function(command, label)
- {
- var n, button, obj, link, a_buttons = this.buttons[command],
- len = a_buttons ? a_buttons.length : 0;
-
- for (n=0; n<len; n++) {
- button = a_buttons[n];
- obj = document.getElementById(button.id);
-
- if (button.type == 'image' && obj) {
- obj.setAttribute('alt', this.get_label(label));
- if ((link = obj.parentNode) && link.tagName.toLowerCase() == 'a')
- link.setAttribute('title', this.get_label(label));
- }
- else if (obj)
- obj.setAttribute('title', this.get_label(label));
- }
- };
-
- // mouse over button
- this.button_over = function(command, id)
- {
- this.button_event(command, id, 'over');
- };
-
- // mouse down on button
- this.button_sel = function(command, id)
- {
- this.button_event(command, id, 'sel');
- };
-
- // mouse out of button
- this.button_out = function(command, id)
- {
- this.button_event(command, id, 'act');
- };
-
- // event of button
- this.button_event = function(command, id, event)
- {
- var n, button, obj, a_buttons = this.buttons[command],
- len = a_buttons ? a_buttons.length : 0;
-
- for (n=0; n<len; n++) {
- button = a_buttons[n];
- if (button.id == id && button.status == 'act') {
- if (button[event] && (obj = document.getElementById(button.id))) {
- obj[button.type == 'image' ? 'src' : 'className'] = button[event];
- }
-
- if (event == 'sel') {
- this.buttons_sel[id] = command;
- }
- }
- }
- };
-
- // write to the document/window title
- this.set_pagetitle = function(title)
- {
- if (title && document.title)
- document.title = title;
- };
-
- // display a system message, list of types in common.css (below #message definition)
- this.display_message = function(msg, type, timeout)
- {
- // pass command to parent window
- if (this.is_framed())
- return parent.rcmail.display_message(msg, type, timeout);
-
- if (!this.gui_objects.message) {
- // save message in order to display after page loaded
- if (type != 'loading')
- this.pending_message = [msg, type, timeout];
- return 1;
- }
-
- type = type ? type : 'notice';
-
- var ref = this,
- key = this.html_identifier(msg),
- date = new Date(),
- id = type + date.getTime();
-
- if (!timeout)
- timeout = this.message_time * (type == 'error' || type == 'warning' ? 2 : 1);
-
- if (type == 'loading') {
- key = 'loading';
- timeout = this.env.request_timeout * 1000;
- if (!msg)
- msg = this.get_label('loading');
- }
-
- // The same message is already displayed
- if (this.messages[key]) {
- // replace label
- if (this.messages[key].obj)
- this.messages[key].obj.html(msg);
- // store label in stack
- if (type == 'loading') {
- this.messages[key].labels.push({'id': id, 'msg': msg});
- }
- // add element and set timeout
- this.messages[key].elements.push(id);
- setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout);
- return id;
- }
-
- // create DOM object and display it
- var obj = $('<div>').addClass(type).html(msg).data('key', key),
- cont = $(this.gui_objects.message).append(obj).show();
-
- this.messages[key] = {'obj': obj, 'elements': [id]};
-
- if (type == 'loading') {
- this.messages[key].labels = [{'id': id, 'msg': msg}];
- }
- else {
- obj.click(function() { return ref.hide_message(obj); });
- }
-
- this.triggerEvent('message', { message:msg, type:type, timeout:timeout, object:obj });
-
- if (timeout > 0)
- setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout);
- return id;
- };
-
- // make a message to disapear
- this.hide_message = function(obj, fade)
- {
- // pass command to parent window
- if (this.is_framed())
- return parent.rcmail.hide_message(obj, fade);
-
- if (!this.gui_objects.message)
- return;
-
- var k, n, i, o, m = this.messages;
-
- // Hide message by object, don't use for 'loading'!
- if (typeof obj === 'object') {
- o = $(obj);
- k = o.data('key');
- this.hide_message_object(o, fade);
- if (m[k])
- delete m[k];
- }
- // Hide message by id
- else {
- for (k in m) {
- for (n in m[k].elements) {
- if (m[k] && m[k].elements[n] == obj) {
- m[k].elements.splice(n, 1);
- // hide DOM element if last instance is removed
- if (!m[k].elements.length) {
- this.hide_message_object(m[k].obj, fade);
- delete m[k];
- }
- // set pending action label for 'loading' message
- else if (k == 'loading') {
- for (i in m[k].labels) {
- if (m[k].labels[i].id == obj) {
- delete m[k].labels[i];
- }
- else {
- o = m[k].labels[i].msg;
- m[k].obj.html(o);
- }
- }
- }
- }
- }
- }
- }
- };
-
- // hide message object and remove from the DOM
- this.hide_message_object = function(o, fade)
- {
- if (fade)
- o.fadeOut(600, function() {$(this).remove(); });
- else
- o.hide().remove();
- };
-
- // remove all messages immediately
- this.clear_messages = function()
- {
- // pass command to parent window
- if (this.is_framed())
- return parent.rcmail.clear_messages();
-
- var k, n, m = this.messages;
-
- for (k in m)
- for (n in m[k].elements)
- if (m[k].obj)
- this.hide_message_object(m[k].obj);
-
- this.messages = {};
- };
-
- // open a jquery UI dialog with the given content
- this.show_popup_dialog = function(html, title, buttons, options)
- {
- // forward call to parent window
- if (this.is_framed()) {
- return parent.rcmail.show_popup_dialog(html, title, buttons);
- }
-
- var popup = $('<div class="popup">')
- .html(html)
- .dialog($.extend({
- title: title,
- buttons: buttons,
- modal: true,
- resizable: true,
- width: 500,
- close: function(event, ui) { $(this).remove() }
- }, options || {}));
-
- // resize and center popup
- var win = $(window), w = win.width(), h = win.height(),
- width = popup.width(), height = popup.height();
-
- popup.dialog('option', {
- height: Math.min(h - 40, height + 75 + (buttons ? 50 : 0)),
- width: Math.min(w - 20, width + 20)
- });
-
- return popup;
- };
-
- // enable/disable buttons for page shifting
- this.set_page_buttons = function()
- {
- this.enable_command('nextpage', 'lastpage', this.env.pagecount > this.env.current_page);
- this.enable_command('previouspage', 'firstpage', this.env.current_page > 1);
- };
-
- // mark a mailbox as selected and set environment variable
- this.select_folder = function(name, prefix, encode)
- {
- if (this.treelist) {
- this.treelist.select(name);
- }
- else if (this.gui_objects.folderlist) {
- $('li.selected', this.gui_objects.folderlist)
- .removeClass('selected').addClass('unfocused');
- $(this.get_folder_li(name, prefix, encode))
- .removeClass('unfocused').addClass('selected');
-
- // trigger event hook
- this.triggerEvent('selectfolder', { folder:name, prefix:prefix });
- }
- };
-
- // adds a class to selected folder
- this.mark_folder = function(name, class_name, prefix, encode)
- {
- $(this.get_folder_li(name, prefix, encode)).addClass(class_name);
- };
-
- // adds a class to selected folder
- this.unmark_folder = function(name, class_name, prefix, encode)
- {
- $(this.get_folder_li(name, prefix, encode)).removeClass(class_name);
- };
-
- // helper method to find a folder list item
- this.get_folder_li = function(name, prefix, encode)
- {
- if (!prefix)
- prefix = 'rcmli';
-
- if (this.gui_objects.folderlist) {
- name = this.html_identifier(name, encode);
- return document.getElementById(prefix+name);
- }
- };
-
- // for reordering column array (Konqueror workaround)
- // and for setting some message list global variables
- this.set_message_coltypes = function(coltypes, repl, smart_col)
- {
- var list = this.message_list,
- thead = list ? list.thead : null,
- cell, col, n, len, th, tr;
-
- this.env.coltypes = coltypes;
-
- // replace old column headers
- if (thead) {
- if (repl) {
- th = document.createElement('thead');
- tr = document.createElement('tr');
-
- for (c=0, len=repl.length; c < len; c++) {
- cell = document.createElement('td');
- cell.innerHTML = repl[c].html || '';
- if (repl[c].id) cell.id = repl[c].id;
- if (repl[c].className) cell.className = repl[c].className;
- tr.appendChild(cell);
- }
- th.appendChild(tr);
- thead.parentNode.replaceChild(th, thead);
- list.thead = thead = th;
- }
-
- for (n=0, len=this.env.coltypes.length; n<len; n++) {
- col = this.env.coltypes[n];
- if ((cell = thead.rows[0].cells[n]) && (col == 'from' || col == 'to' || col == 'fromto')) {
- cell.id = 'rcm'+col;
- $('span,a', cell).text(this.get_label(col == 'fromto' ? smart_col : col));
- // if we have links for sorting, it's a bit more complicated...
- $('a', cell).click(function(){
- return rcmail.command('sort', this.id.replace(/^rcm/, ''), this);
- });
- }
- }
- }
-
- this.env.subject_col = null;
- this.env.flagged_col = null;
- this.env.status_col = null;
-
- if ((n = $.inArray('subject', this.env.coltypes)) >= 0) {
- this.env.subject_col = n;
- if (list)
- list.subject_col = n;
- }
- if ((n = $.inArray('flag', this.env.coltypes)) >= 0)
- this.env.flagged_col = n;
- if ((n = $.inArray('status', this.env.coltypes)) >= 0)
- this.env.status_col = n;
-
- if (list)
- list.init_header();
- };
-
- // replace content of row count display
- this.set_rowcount = function(text, mbox)
- {
- // #1487752
- if (mbox && mbox != this.env.mailbox)
- return false;
-
- $(this.gui_objects.countdisplay).html(text);
-
- // update page navigation buttons
- this.set_page_buttons();
- };
-
- // replace content of mailboxname display
- this.set_mailboxname = function(content)
- {
- if (this.gui_objects.mailboxname && content)
- this.gui_objects.mailboxname.innerHTML = content;
- };
-
- // replace content of quota display
- this.set_quota = function(content)
- {
- if (this.gui_objects.quotadisplay && content && content.type == 'text')
- $(this.gui_objects.quotadisplay).html(content.percent+'%').attr('title', content.title);
-
- this.triggerEvent('setquota', content);
- this.env.quota_content = content;
- };
-
- // update the mailboxlist
- this.set_unread_count = function(mbox, count, set_title, mark)
- {
- if (!this.gui_objects.mailboxlist)
- return false;
-
- this.env.unread_counts[mbox] = count;
- this.set_unread_count_display(mbox, set_title);
-
- if (mark)
- this.mark_folder(mbox, mark, '', true);
- else if (!count)
- this.unmark_folder(mbox, 'recent', '', true);
- };
-
- // update the mailbox count display
- this.set_unread_count_display = function(mbox, set_title)
- {
- var reg, link, text_obj, item, mycount, childcount, div;
-
- if (item = this.get_folder_li(mbox, '', true)) {
- mycount = this.env.unread_counts[mbox] ? this.env.unread_counts[mbox] : 0;
- link = $(item).children('a').eq(0);
- text_obj = link.children('span.unreadcount');
- if (!text_obj.length && mycount)
- text_obj = $('<span>').addClass('unreadcount').appendTo(link);
- reg = /\s+\([0-9]+\)$/i;
-
- childcount = 0;
- if ((div = item.getElementsByTagName('div')[0]) &&
- div.className.match(/collapsed/)) {
- // add children's counters
- for (var k in this.env.unread_counts)
- if (k.startsWith(mbox + this.env.delimiter))
- childcount += this.env.unread_counts[k];
- }
-
- if (mycount && text_obj.length)
- text_obj.html(this.env.unreadwrap.replace(/%[sd]/, mycount));
- else if (text_obj.length)
- text_obj.remove();
-
- // set parent's display
- reg = new RegExp(RegExp.escape(this.env.delimiter) + '[^' + RegExp.escape(this.env.delimiter) + ']+$');
- if (mbox.match(reg))
- this.set_unread_count_display(mbox.replace(reg, ''), false);
-
- // set the right classes
- if ((mycount+childcount)>0)
- $(item).addClass('unread');
- else
- $(item).removeClass('unread');
- }
-
- // set unread count to window title
- reg = /^\([0-9]+\)\s+/i;
- if (set_title && document.title) {
- var new_title = '',
- doc_title = String(document.title);
-
- if (mycount && doc_title.match(reg))
- new_title = doc_title.replace(reg, '('+mycount+') ');
- else if (mycount)
- new_title = '('+mycount+') '+doc_title;
- else
- new_title = doc_title.replace(reg, '');
-
- this.set_pagetitle(new_title);
- }
- };
-
- // display fetched raw headers
- this.set_headers = function(content)
- {
- if (this.gui_objects.all_headers_row && this.gui_objects.all_headers_box && content)
- $(this.gui_objects.all_headers_box).html(content).show();
- };
-
- // display all-headers row and fetch raw message headers
- this.show_headers = function(props, elem)
- {
- if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box || !this.env.uid)
- return;
-
- $(elem).removeClass('show-headers').addClass('hide-headers');
- $(this.gui_objects.all_headers_row).show();
- elem.onclick = function() { rcmail.command('hide-headers', '', elem); };
-
- // fetch headers only once
- if (!this.gui_objects.all_headers_box.innerHTML) {
- var lock = this.display_message(this.get_label('loading'), 'loading');
- this.http_post('headers', {_uid: this.env.uid}, lock);
- }
- };
-
- // hide all-headers row
- this.hide_headers = function(props, elem)
- {
- if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box)
- return;
-
- $(elem).removeClass('hide-headers').addClass('show-headers');
- $(this.gui_objects.all_headers_row).hide();
- elem.onclick = function() { rcmail.command('show-headers', '', elem); };
- };
-
-
- /********************************************************/
- /********* html to text conversion functions *********/
- /********************************************************/
-
- this.html2plain = function(htmlText, id)
- {
- var rcmail = this,
- url = '?_task=utils&_action=html2text',
- lock = this.set_busy(true, 'converting');
-
- this.log('HTTP POST: ' + url);
-
- $.ajax({ type: 'POST', url: url, data: htmlText, contentType: 'application/octet-stream',
- error: function(o, status, err) { rcmail.http_error(o, status, err, lock); },
- success: function(data) { rcmail.set_busy(false, null, lock); $('#'+id).val(data); rcmail.log(data); }
- });
- };
-
- this.plain2html = function(plain, id)
- {
- var lock = this.set_busy(true, 'converting');
-
- plain = plain.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
- $('#'+id).val(plain ? '<pre>'+plain+'</pre>' : '');
-
- this.set_busy(false, null, lock);
- };
-
-
- /********************************************************/
- /********* remote request methods *********/
- /********************************************************/
-
- // compose a valid url with the given parameters
- this.url = function(action, query)
- {
- var querystring = typeof query === 'string' ? '&' + query : '';
-
- if (typeof action !== 'string')
- query = action;
- else if (!query || typeof query !== 'object')
- query = {};
-
- if (action)
- query._action = action;
- else
- query._action = this.env.action;
-
- var base = this.env.comm_path, k, param = {};
-
- // overwrite task name
- if (query._action.match(/([a-z0-9_-]+)\/([a-z0-9-_.]+)/)) {
- query._action = RegExp.$2;
- base = base.replace(/\_task=[a-z0-9_-]+/, '_task='+RegExp.$1);
- }
-
- // remove undefined values
- for (k in query) {
- if (query[k] !== undefined && query[k] !== null)
- param[k] = query[k];
- }
-
- return base + '&' + $.param(param) + querystring;
- };
-
- this.redirect = function(url, lock)
- {
- if (lock || lock === null)
- this.set_busy(true);
-
- if (this.is_framed()) {
- parent.rcmail.redirect(url, lock);
- }
- else {
- if (this.env.extwin) {
- if (typeof url == 'string')
- url += (url.indexOf('?') < 0 ? '?' : '&') + '_extwin=1';
- else
- url._extwin = 1;
- }
- this.location_href(url, window);
- }
- };
-
- this.goto_url = function(action, query, lock)
- {
- this.redirect(this.url(action, query));
- };
-
- this.location_href = function(url, target, frame)
- {
- if (frame)
- this.lock_frame();
-
- if (typeof url == 'object')
- url = this.env.comm_path + '&' + $.param(url);
-
- // simulate real link click to force IE to send referer header
- if (bw.ie && target == window)
- $('<a>').attr('href', url).appendTo(document.body).get(0).click();
- else
- target.location.href = url;
-
- // reset keep-alive interval
- this.start_keepalive();
- };
-
- // send a http request to the server
- this.http_request = function(action, query, lock)
- {
- var url = this.url(action, query);
-
- // trigger plugin hook
- var result = this.triggerEvent('request'+action, query);
-
- if (result !== undefined) {
- // abort if one the handlers returned false
- if (result === false)
- return false;
- else
- url = this.url(action, result);
- }
-
- url += '&_remote=1';
-
- // send request
- this.log('HTTP GET: ' + url);
-
- // reset keep-alive interval
- this.start_keepalive();
-
- return $.ajax({
- type: 'GET', url: url, data: { _unlock:(lock?lock:0) }, dataType: 'json',
- success: function(data){ ref.http_response(data); },
- error: function(o, status, err) { ref.http_error(o, status, err, lock, action); }
- });
- };
-
- // send a http POST request to the server
- this.http_post = function(action, postdata, lock)
- {
- var url = this.url(action);
-
- if (postdata && typeof postdata === 'object') {
- postdata._remote = 1;
- postdata._unlock = (lock ? lock : 0);
- }
- else
- postdata += (postdata ? '&' : '') + '_remote=1' + (lock ? '&_unlock='+lock : '');
-
- // trigger plugin hook
- var result = this.triggerEvent('request'+action, postdata);
- if (result !== undefined) {
- // abort if one of the handlers returned false
- if (result === false)
- return false;
- else
- postdata = result;
- }
-
- // send request
- this.log('HTTP POST: ' + url);
-
- // reset keep-alive interval
- this.start_keepalive();
-
- return $.ajax({
- type: 'POST', url: url, data: postdata, dataType: 'json',
- success: function(data){ ref.http_response(data); },
- error: function(o, status, err) { ref.http_error(o, status, err, lock, action); }
- });
- };
-
- // aborts ajax request
- this.abort_request = function(r)
- {
- if (r.request)
- r.request.abort();
- if (r.lock)
- this.set_busy(false, null, r.lock);
- };
-
- // handle HTTP response
- this.http_response = function(response)
- {
- if (!response)
- return;
-
- if (response.unlock)
- this.set_busy(false);
-
- this.triggerEvent('responsebefore', {response: response});
- this.triggerEvent('responsebefore'+response.action, {response: response});
-
- // set env vars
- if (response.env)
- this.set_env(response.env);
-
- // we have labels to add
- if (typeof response.texts === 'object') {
- for (var name in response.texts)
- if (typeof response.texts[name] === 'string')
- this.add_label(name, response.texts[name]);
- }
-
- // if we get javascript code from server -> execute it
- if (response.exec) {
- this.log(response.exec);
- eval(response.exec);
- }
-
- // execute callback functions of plugins
- if (response.callbacks && response.callbacks.length) {
- for (var i=0; i < response.callbacks.length; i++)
- this.triggerEvent(response.callbacks[i][0], response.callbacks[i][1]);
- }
-
- // process the response data according to the sent action
- switch (response.action) {
- case 'delete':
- if (this.task == 'addressbook') {
- var sid, uid = this.contact_list.get_selection(), writable = false;
-
- if (uid && this.contact_list.rows[uid]) {
- // search results, get source ID from record ID
- if (this.env.source == '') {
- sid = String(uid).replace(/^[^-]+-/, '');
- writable = sid && this.env.address_sources[sid] && !this.env.address_sources[sid].readonly;
- }
- else {
- writable = !this.env.address_sources[this.env.source].readonly;
- }
- }
- this.enable_command('compose', (uid && this.contact_list.rows[uid]));
- this.enable_command('delete', 'edit', writable);
- this.enable_command('export', (this.contact_list && this.contact_list.rowcount > 0));
- this.enable_command('export-selected', false);
- }
-
- case 'move':
- if (this.env.action == 'show') {
- // re-enable commands on move/delete error
- this.enable_command(this.env.message_commands, true);
- if (!this.env.list_post)
- this.enable_command('reply-list', false);
- }
- else if (this.task == 'addressbook') {
- this.triggerEvent('listupdate', { folder:this.env.source, rowcount:this.contact_list.rowcount });
- }
-
- case 'purge':
- case 'expunge':
- if (this.task == 'mail') {
- if (!this.env.exists) {
- // clear preview pane content
- if (this.env.contentframe)
- this.show_contentframe(false);
- // disable commands useless when mailbox is empty
- this.enable_command(this.env.message_commands, 'purge', 'expunge',
- 'select-all', 'select-none', 'expand-all', 'expand-unread', 'collapse-all', false);
- }
- if (this.message_list)
- this.triggerEvent('listupdate', { folder:this.env.mailbox, rowcount:this.message_list.rowcount });
- }
- break;
-
- case 'refresh':
- case 'check-recent':
- case 'getunread':
- case 'search':
- this.env.qsearch = null;
- case 'list':
- if (this.task == 'mail') {
- this.enable_command('show', 'select-all', 'select-none', this.env.messagecount > 0);
- this.enable_command('expunge', this.env.exists);
- this.enable_command('purge', this.purge_mailbox_test());
- this.enable_command('expand-all', 'expand-unread', 'collapse-all', this.env.threading && this.env.messagecount);
-
- if ((response.action == 'list' || response.action == 'search') && this.message_list) {
- this.msglist_select(this.message_list);
- this.message_list.resize();
- this.triggerEvent('listupdate', { folder:this.env.mailbox, rowcount:this.message_list.rowcount });
- }
- }
- else if (this.task == 'addressbook') {
- this.enable_command('export', (this.contact_list && this.contact_list.rowcount > 0));
-
- if (response.action == 'list' || response.action == 'search') {
- this.enable_command('search-create', this.env.source == '');
- this.enable_command('search-delete', this.env.search_id);
- this.update_group_commands();
- this.contact_list.resize();
- this.triggerEvent('listupdate', { folder:this.env.source, rowcount:this.contact_list.rowcount });
- }
- }
- break;
- }
-
- if (response.unlock)
- this.hide_message(response.unlock);
-
- this.triggerEvent('responseafter', {response: response});
- this.triggerEvent('responseafter'+response.action, {response: response});
-
- // reset keep-alive interval
- this.start_keepalive();
- };
-
- // handle HTTP request errors
- this.http_error = function(request, status, err, lock, action)
- {
- var errmsg = request.statusText;
-
- this.set_busy(false, null, lock);
- request.abort();
-
- // don't display error message on page unload (#1488547)
- if (this.unload)
- return;
-
- if (request.status && errmsg)
- this.display_message(this.get_label('servererror') + ' (' + errmsg + ')', 'error');
- else if (status == 'timeout')
- this.display_message(this.get_label('requesttimedout'), 'error');
- else if (request.status == 0 && status != 'abort')
- this.display_message(this.get_label('servererror') + ' (No connection)', 'error');
-
- // redirect to url specified in location header if not empty
- var location_url = request.getResponseHeader("Location");
- if (location_url && this.env.action != 'compose') // don't redirect on compose screen, contents might get lost (#1488926)
- this.redirect(location_url);
-
- // 403 Forbidden response (CSRF prevention) - reload the page.
- // In case there's a new valid session it will be used, otherwise
- // login form will be presented (#1488960).
- if (request.status == 403) {
- (this.is_framed() ? parent : window).location.reload();
- return;
- }
-
- // re-send keep-alive requests after 30 seconds
- if (action == 'keep-alive')
- setTimeout(function(){ ref.keep_alive(); ref.start_keepalive(); }, 30000);
- };
-
- // callback when an iframe finished loading
- this.iframe_loaded = function(unlock)
- {
- this.set_busy(false, null, unlock);
-
- if (this.submit_timer)
- clearTimeout(this.submit_timer);
- };
-
- // post the given form to a hidden iframe
- this.async_upload_form = function(form, action, onload)
- {
- var frame, ts = new Date().getTime(),
- frame_name = 'rcmupload'+ts;
-
- // upload progress support
- if (this.env.upload_progress_name) {
- var fname = this.env.upload_progress_name,
- field = $('input[name='+fname+']', form);
-
- if (!field.length) {
- field = $('<input>').attr({type: 'hidden', name: fname});
- field.prependTo(form);
- }
-
- field.val(ts);
- }
-
- // have to do it this way for IE
- // otherwise the form will be posted to a new window
- if (document.all) {
- document.body.insertAdjacentHTML('BeforeEnd', '<iframe name="'+frame_name+'"'
- + ' src="program/resources/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>');
- frame = $('iframe[name="'+frame_name+'"]');
- }
- // for standards-compliant browsers
- else {
- frame = $('<iframe>').attr('name', frame_name)
- .css({border: 'none', width: 0, height: 0, visibility: 'hidden'})
- .appendTo(document.body);
- }
-
- // handle upload errors, parsing iframe content in onload
- frame.bind('load', {ts:ts}, onload);
-
- $(form).attr({
- target: frame_name,
- action: this.url(action, { _id:this.env.compose_id||'', _uploadid:ts }),
- method: 'POST'})
- .attr(form.encoding ? 'encoding' : 'enctype', 'multipart/form-data')
- .submit();
-
- return frame_name;
- };
-
- // html5 file-drop API
- this.document_drag_hover = function(e, over)
- {
- e.preventDefault();
- $(ref.gui_objects.filedrop)[(over?'addClass':'removeClass')]('active');
- };
-
- this.file_drag_hover = function(e, over)
- {
- e.preventDefault();
- e.stopPropagation();
- $(ref.gui_objects.filedrop)[(over?'addClass':'removeClass')]('hover');
- };
-
- // handler when files are dropped to a designated area.
- // compose a multipart form data and submit it to the server
- this.file_dropped = function(e)
- {
- // abort event and reset UI
- this.file_drag_hover(e, false);
-
- // prepare multipart form data composition
- var files = e.target.files || e.dataTransfer.files,
- formdata = window.FormData ? new FormData() : null,
- fieldname = (this.env.filedrop.fieldname || '_file') + (this.env.filedrop.single ? '' : '[]'),
- boundary = '------multipartformboundary' + (new Date).getTime(),
- dashdash = '--', crlf = '\r\n',
- multipart = dashdash + boundary + crlf;
-
- if (!files || !files.length)
- return;
-
- // inline function to submit the files to the server
- var submit_data = function() {
- var multiple = files.length > 1,
- ts = new Date().getTime(),
- content = '<span>' + (multiple ? ref.get_label('uploadingmany') : files[0].name) + '</span>';
-
- // add to attachments list
- if (!ref.add2attachment_list(ts, { name:'', html:content, classname:'uploading', complete:false }))
- ref.file_upload_id = ref.set_busy(true, 'uploading');
-
- // complete multipart content and post request
- multipart += dashdash + boundary + dashdash + crlf;
-
- $.ajax({
- type: 'POST',
- dataType: 'json',
- url: ref.url(ref.env.filedrop.action||'upload', { _id:ref.env.compose_id||ref.env.cid||'', _uploadid:ts, _remote:1 }),
- contentType: formdata ? false : 'multipart/form-data; boundary=' + boundary,
- processData: false,
- timeout: 0, // disable default timeout set in ajaxSetup()
- data: formdata || multipart,
- headers: {'X-Roundcube-Request': ref.env.request_token},
- xhr: function() { var xhr = jQuery.ajaxSettings.xhr(); if (!formdata && xhr.sendAsBinary) xhr.send = xhr.sendAsBinary; return xhr; },
- success: function(data){ ref.http_response(data); },
- error: function(o, status, err) { ref.http_error(o, status, err, null, 'attachment'); }
- });
- };
-
- // get contents of all dropped files
- var last = this.env.filedrop.single ? 0 : files.length - 1;
- for (var j=0, i=0, f; j <= last && (f = files[i]); i++) {
- if (!f.name) f.name = f.fileName;
- if (!f.size) f.size = f.fileSize;
- if (!f.type) f.type = 'application/octet-stream';
-
- // file name contains non-ASCII characters, do UTF8-binary string conversion.
- if (!formdata && /[^\x20-\x7E]/.test(f.name))
- f.name_bin = unescape(encodeURIComponent(f.name));
-
- // filter by file type if requested
- if (this.env.filedrop.filter && !f.type.match(new RegExp(this.env.filedrop.filter))) {
- // TODO: show message to user
- continue;
- }
-
- // do it the easy way with FormData (FF 4+, Chrome 5+, Safari 5+)
- if (formdata) {
- formdata.append(fieldname, f);
- if (j == last)
- return submit_data();
- }
- // use FileReader supporetd by Firefox 3.6
- else if (window.FileReader) {
- var reader = new FileReader();
-
- // closure to pass file properties to async callback function
- reader.onload = (function(file, j) {
- return function(e) {
- multipart += 'Content-Disposition: form-data; name="' + fieldname + '"';
- multipart += '; filename="' + (f.name_bin || file.name) + '"' + crlf;
- multipart += 'Content-Length: ' + file.size + crlf;
- multipart += 'Content-Type: ' + file.type + crlf + crlf;
- multipart += reader.result + crlf;
- multipart += dashdash + boundary + crlf;
-
- if (j == last) // we're done, submit the data
- return submit_data();
- }
- })(f,j);
- reader.readAsBinaryString(f);
- }
- // Firefox 3
- else if (f.getAsBinary) {
- multipart += 'Content-Disposition: form-data; name="' + fieldname + '"';
- multipart += '; filename="' + (f.name_bin || f.name) + '"' + crlf;
- multipart += 'Content-Length: ' + f.size + crlf;
- multipart += 'Content-Type: ' + f.type + crlf + crlf;
- multipart += f.getAsBinary() + crlf;
- multipart += dashdash + boundary +crlf;
-
- if (j == last)
- return submit_data();
- }
-
- j++;
- }
- };
-
- // starts interval for keep-alive signal
- this.start_keepalive = function()
- {
- if (!this.env.session_lifetime || this.env.framed || this.env.extwin || this.task == 'login' || this.env.action == 'print')
- return;
-
- if (this._keepalive)
- clearInterval(this._keepalive);
-
- this._keepalive = setInterval(function(){ ref.keep_alive(); }, this.env.session_lifetime * 0.5 * 1000);
- };
-
- // starts interval for refresh signal
- this.start_refresh = function()
- {
- if (!this.env.refresh_interval || this.env.framed || this.env.extwin || this.task == 'login' || this.env.action == 'print')
- return;
-
- if (this._refresh)
- clearInterval(this._refresh);
-
- this._refresh = setInterval(function(){ ref.refresh(); }, this.env.refresh_interval * 1000);
- };
-
- // sends keep-alive signal
- this.keep_alive = function()
- {
- if (!this.busy)
- this.http_request('keep-alive');
- };
-
- // sends refresh signal
- this.refresh = function()
- {
- if (this.busy) {
- // try again after 10 seconds
- setTimeout(function(){ ref.refresh(); ref.start_refresh(); }, 10000);
- return;
- }
-
- var params = {}, lock = this.set_busy(true, 'refreshing');
-
- if (this.task == 'mail' && this.gui_objects.mailboxlist)
- params = this.check_recent_params();
-
- params._last = Math.floor(this.env.lastrefresh.getTime() / 1000);
- this.env.lastrefresh = new Date();
-
- // plugins should bind to 'requestrefresh' event to add own params
- this.http_request('refresh', params, lock);
- };
-
- // returns check-recent request parameters
- this.check_recent_params = function()
- {
- var params = {_mbox: this.env.mailbox};
-
- if (this.gui_objects.mailboxlist)
- params._folderlist = 1;
- if (this.gui_objects.messagelist)
- params._list = 1;
- if (this.gui_objects.quotadisplay)
- params._quota = 1;
- if (this.env.search_request)
- params._search = this.env.search_request;
-
- return params;
- };
-
-
- /********************************************************/
- /********* helper methods *********/
- /********************************************************/
-
- /**
- * Quote html entities
- */
- this.quote_html = function(str)
- {
- return String(str).replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
- };
-
- // get window.opener.rcmail if available
- this.opener = function()
- {
- // catch Error: Permission denied to access property rcmail
- try {
- if (window.opener && !opener.closed && opener.rcmail)
- return opener.rcmail;
- }
- catch (e) {}
- };
-
- // check if we're in show mode or if we have a unique selection
- // and return the message uid
- this.get_single_uid = function()
- {
- return this.env.uid ? this.env.uid : (this.message_list ? this.message_list.get_single_selection() : null);
- };
-
- // same as above but for contacts
- this.get_single_cid = function()
- {
- return this.env.cid ? this.env.cid : (this.contact_list ? this.contact_list.get_single_selection() : null);
- };
-
- // gets cursor position
- this.get_caret_pos = function(obj)
- {
- if (obj.selectionEnd !== undefined)
- return obj.selectionEnd;
-
- if (document.selection && document.selection.createRange) {
- var range = document.selection.createRange();
- if (range.parentElement() != obj)
- return 0;
-
- var gm = range.duplicate();
- if (obj.tagName == 'TEXTAREA')
- gm.moveToElementText(obj);
- else
- gm.expand('textedit');
-
- gm.setEndPoint('EndToStart', range);
- var p = gm.text.length;
-
- return p <= obj.value.length ? p : -1;
- }
-
- return obj.value.length;
- };
-
- // moves cursor to specified position
- this.set_caret_pos = function(obj, pos)
- {
- if (obj.setSelectionRange)
- obj.setSelectionRange(pos, pos);
- else if (obj.createTextRange) {
- var range = obj.createTextRange();
- range.collapse(true);
- range.moveEnd('character', pos);
- range.moveStart('character', pos);
- range.select();
- }
- };
-
- // get selected text from an input field
- // http://stackoverflow.com/questions/7186586/how-to-get-the-selected-text-in-textarea-using-jquery-in-internet-explorer-7
- this.get_input_selection = function(obj)
- {
- var start = 0, end = 0,
- normalizedValue, range,
- textInputRange, len, endRange;
-
- if (typeof obj.selectionStart == "number" && typeof obj.selectionEnd == "number") {
- normalizedValue = obj.value;
- start = obj.selectionStart;
- end = obj.selectionEnd;
- }
- else {
- range = document.selection.createRange();
-
- if (range && range.parentElement() == obj) {
- len = obj.value.length;
- normalizedValue = obj.value; //.replace(/\r\n/g, "\n");
-
- // create a working TextRange that lives only in the input
- textInputRange = obj.createTextRange();
- textInputRange.moveToBookmark(range.getBookmark());
-
- // Check if the start and end of the selection are at the very end
- // of the input, since moveStart/moveEnd doesn't return what we want
- // in those cases
- endRange = obj.createTextRange();
- endRange.collapse(false);
-
- if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
- start = end = len;
- }
- else {
- start = -textInputRange.moveStart("character", -len);
- start += normalizedValue.slice(0, start).split("\n").length - 1;
-
- if (textInputRange.compareEndPoints("EndToEnd", endRange) > -1) {
- end = len;
- }
- else {
- end = -textInputRange.moveEnd("character", -len);
- end += normalizedValue.slice(0, end).split("\n").length - 1;
- }
- }
- }
- }
-
- return { start:start, end:end, text:normalizedValue.substr(start, end-start) };
- };
-
- // disable/enable all fields of a form
- this.lock_form = function(form, lock)
- {
- if (!form || !form.elements)
- return;
-
- var n, len, elm;
-
- if (lock)
- this.disabled_form_elements = [];
-
- for (n=0, len=form.elements.length; n<len; n++) {
- elm = form.elements[n];
-
- if (elm.type == 'hidden')
- continue;
- // remember which elem was disabled before lock
- if (lock && elm.disabled)
- this.disabled_form_elements.push(elm);
- // check this.disabled_form_elements before inArray() as a workaround for FF5 bug
- // http://bugs.jquery.com/ticket/9873
- else if (lock || (this.disabled_form_elements && $.inArray(elm, this.disabled_form_elements)<0))
- elm.disabled = lock;
- }
- };
-
- this.mailto_handler_uri = function()
- {
- return location.href.split('?')[0] + '?_task=mail&_action=compose&_to=%s';
- };
-
- this.register_protocol_handler = function(name)
- {
- try {
- window.navigator.registerProtocolHandler('mailto', this.mailto_handler_uri(), name);
- }
- catch(e) {};
- };
-
- this.check_protocol_handler = function(name, elem)
- {
- var nav = window.navigator;
- if (!nav
- || (typeof nav.registerProtocolHandler != 'function')
- || ((typeof nav.isProtocolHandlerRegistered == 'function')
- && nav.isProtocolHandlerRegistered('mailto', this.mailto_handler_uri()) == 'registered')
- )
- $(elem).addClass('disabled');
- else
- $(elem).click(function() { rcmail.register_protocol_handler(name); return false; });
- };
-
- // Checks browser capabilities eg. PDF support, TIF support
- this.browser_capabilities_check = function()
- {
- if (!this.env.browser_capabilities)
- this.env.browser_capabilities = {};
-
- if (this.env.browser_capabilities.pdf === undefined)
- this.env.browser_capabilities.pdf = this.pdf_support_check();
-
- if (this.env.browser_capabilities.flash === undefined)
- this.env.browser_capabilities.flash = this.flash_support_check();
-
- if (this.env.browser_capabilities.tif === undefined)
- this.tif_support_check();
- };
-
- // Returns browser capabilities string
- this.browser_capabilities = function()
- {
- if (!this.env.browser_capabilities)
- return '';
-
- var n, ret = [];
-
- for (n in this.env.browser_capabilities)
- ret.push(n + '=' + this.env.browser_capabilities[n]);
-
- return ret.join();
- };
-
- this.tif_support_check = function()
- {
- var img = new Image();
-
- img.onload = function() { rcmail.env.browser_capabilities.tif = 1; };
- img.onerror = function() { rcmail.env.browser_capabilities.tif = 0; };
- img.src = 'program/resources/blank.tif';
- };
-
- this.pdf_support_check = function()
- {
- var plugin = navigator.mimeTypes ? navigator.mimeTypes["application/pdf"] : {},
- plugins = navigator.plugins,
- len = plugins.length,
- regex = /Adobe Reader|PDF|Acrobat/i;
-
- if (plugin && plugin.enabledPlugin)
- return 1;
-
- if (window.ActiveXObject) {
- try {
- if (axObj = new ActiveXObject("AcroPDF.PDF"))
- return 1;
- }
- catch (e) {}
- try {
- if (axObj = new ActiveXObject("PDF.PdfCtrl"))
- return 1;
- }
- catch (e) {}
- }
-
- for (i=0; i<len; i++) {
- plugin = plugins[i];
- if (typeof plugin === 'String') {
- if (regex.test(plugin))
- return 1;
- }
- else if (plugin.name && regex.test(plugin.name))
- return 1;
- }
-
- return 0;
- };
-
- this.flash_support_check = function()
- {
- var plugin = navigator.mimeTypes ? navigator.mimeTypes["application/x-shockwave-flash"] : {};
-
- if (plugin && plugin.enabledPlugin)
- return 1;
-
- if (window.ActiveXObject) {
- try {
- if (axObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))
- return 1;
- }
- catch (e) {}
- }
-
- return 0;
- };
-
- // Cookie setter
- this.set_cookie = function(name, value, expires)
- {
- setCookie(name, value, expires, this.env.cookie_path, this.env.cookie_domain, this.env.cookie_secure);
- }
-
-} // end object rcube_webmail
-
-
-// some static methods
-rcube_webmail.long_subject_title = function(elem, indent)
-{
- if (!elem.title) {
- var $elem = $(elem);
- if ($elem.width() + indent * 15 > $elem.parent().width())
- elem.title = $elem.text();
- }
-};
-
-rcube_webmail.long_subject_title_ex = function(elem, indent)
-{
- if (!elem.title) {
- var $elem = $(elem),
- txt = $.trim($elem.text()),
- tmp = $('<span>').text(txt)
- .css({'position': 'absolute', 'float': 'left', 'visibility': 'hidden',
- 'font-size': $elem.css('font-size'), 'font-weight': $elem.css('font-weight')})
- .appendTo($('body')),
- w = tmp.width();
-
- tmp.remove();
- if (w + indent * 15 > $elem.width())
- elem.title = txt;
- }
-};
-
-rcube_webmail.prototype.get_cookie = getCookie;
-
-// copy event engine prototype
-rcube_webmail.prototype.addEventListener = rcube_event_engine.prototype.addEventListener;
-rcube_webmail.prototype.removeEventListener = rcube_event_engine.prototype.removeEventListener;
-rcube_webmail.prototype.triggerEvent = rcube_event_engine.prototype.triggerEvent;
+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={};this.dblclick_time=500;this.message_time=4000;this.identifier_expr=new RegExp("[^0-9a-z-_]","gi");this.env={request_timeout:180,draft_autosave:0,comm_path:"./",blankpage:"program/resources/blank.gif",recipients_separator:",",recipients_delimiter:", "};this.ref="rcmail";var ref=this;$.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)}});$(window).bind("beforeunload",function(){rcmail.unload=true});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}};this.add_label=function(p,value){if(typeof p=="string"){this.labels[p]=value}else{if(typeof p=="object"){$.extend(this.labels,p)}}};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)}};this.gui_object=function(name,id){this.gui_objects[name]=this.loaded?rcube_find_object(id):id};this.gui_container=function(name,id){this.gui_containers[name]=id};this.add_element=function(elm,container){if(this.gui_containers[container]&&this.gui_containers[container].jquery){this.gui_containers[container].append(elm)}};this.register_command=function(command,callback,enable){this.command_handlers[command]=callback;if(enable){this.enable_command(command,true)}};this.add_onload=function(f){this.onloads.push(f)};this.init=function(){var n,p=this;this.task=this.env.task;if(!bw.dom||!bw.xmlhttp_test()||(bw.mz&&bw.vendver<1.9)){this.goto_url("error","_code=0x199");return}for(n in this.gui_containers){this.gui_containers[n]=$("#"+this.gui_containers[n])}for(n in this.gui_objects){this.gui_objects[n]=rcube_find_object(this.gui_objects[n])}if(this.env.x_frame_options){try{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){$("form").each(function(){ref.lock_form(this,true)});this.display_message("Blocked: possible clickjacking attack!","error");return}}this.init_buttons();if(this.is_framed()){parent.rcmail.set_busy(false,null,parent.rcmail.env.frame_lock);parent.rcmail.env.frame_lock=null}this.enable_command("close","logout","mail","addressbook","settings","save-pref","compose","undo","about","switch-task",true);if(this.env.permaurl){this.enable_command("permaurl","extwin",true)}switch(this.task){case"mail":this.enable_command("list","checkmail","add-contact","search","reset-search","collapse-folder",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)});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","menu-open","menu-save","sort",true);this.command("list")}if(this.gui_objects.qsearchbox){if(this.env.search_text!=null){this.gui_objects.qsearchbox.value=this.env.search_text}$(this.gui_objects.qsearchbox).focusin(function(){rcmail.message_list&&rcmail.message_list.blur()})}this.set_button_titles();this.env.message_commands=["show","reply","reply-all","reply-list","moveto","copy","delete","open","mark","edit","viewsource","print","load-attachment","show-headers","hide-headers","download","forward","forward-inline","forward-attachment"];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)}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.compose_commands=["send-attachment","remove-attachment","send","cancel","toggle-editor","list-adresses","search","reset-search","extwin"];if(this.env.drafts_mailbox){this.env.compose_commands.push("savedraft")}this.enable_command(this.env.compose_commands,"identities",true);$.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)}document.onmouseup=function(e){return p.doc_mouse_up(e)};this.init_messageform()}else{if(this.env.action=="print"&&this.env.uid){if(bw.safari){setTimeout("window.print()",10)}else{window.print()}}}}if(this.gui_objects.mailboxlist){this.env.unread_counts={};this.gui_objects.folderlist=this.gui_objects.mailboxlist;this.http_request("getunread")}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)}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)}if(!this.is_framed()&&!this.env.extwin){this.browser_capabilities_check()}break;case"addressbook":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","listsearch","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)};if(this.gui_objects.qsearchbox){$(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);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()}}if(this.gui_objects.qsearchbox){this.enable_command("search","reset-search","moveto",true)}break;case"settings":this.enable_command("preferences","identities","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);if(this.env.action=="add-identity"){$("input[type='text']").first().select()}}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);$("input[type='text']").first().select()}}}}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()}}}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()}if(window.jstz&&!bw.ie6){var timezone=jstz.determine();if(timezone.name()){$("#rcmlogintz").val(timezone.name())}}else{$("#rcmlogintz").val(new Date().getStdTimezoneOffset()/-60)}$("form").submit(function(){$("input[type=submit]",this).prop("disabled",true);rcmail.clear_messages();rcmail.display_message("","loading")});this.enable_command("login",true);break}if(this.env.contentframe&&!$("#"+this.env.contentframe).is(":visible")){this.env.contentframe=null}if(bw.ie){$("input[type=file]").keydown(function(e){if(e.keyCode=="13"){e.preventDefault()}})}this.loaded=true;if(this.pending_message){this.display_message(this.pending_message[0],this.pending_message[1],this.pending_message[2])}if(this.gui_objects.folderlist){this.gui_containers.foldertray=$(this.gui_objects.folderlist)}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)}this.triggerEvent("init",{task:this.task,action:this.env.action});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]()}}}this.start_refresh();this.start_keepalive()};this.log=function(msg){if(window.console&&console.log){console.log(msg)}};this.command=function(command,props,obj,event){var ret,uid,cid,url,flag;if(obj&&obj.blur){obj.blur()}if(this.busy){return false}if((obj&&obj.href&&String(obj.href).indexOf("#")<0)&&rcube_event.get_modifier(event)){return true}if(!this.commands[command]){if(this.is_framed()){parent.rcmail.command(command,props)}return false}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}}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)}}this.triggerEvent("actionbefore",{props:props,action:command});ret=this.triggerEvent("before"+command,props);if(ret!==undefined){if(ret===false){return false}else{props=ret}}ret=undefined;switch(command){case"login":if(this.gui_objects.loginform){this.gui_objects.loginform.submit()}break;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 prevstate=this.env.compose_extwin;$("input[name='_action']",this.gui_objects.messageform).val("compose");this.gui_objects.messageform.action=this.url("mail/compose",{_id:this.env.compose_id,_extwin:1});this.gui_objects.messageform.target=this.open_window("",1100);this.gui_objects.messageform.submit()}else{this.open_window(this.env.permaurl,900)}break;case"menu-open":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"}this.set_list_sorting(sort_col,sort_order);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;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.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){if(this.env.action=="search"){}else{if((input=$("input[name='_pagesize']",form))&&input.length&&isNaN(parseInt(input.val()))){alert(this.get_label("nopagesizewarning"));input.focus();break}else{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}}$("input.placeholder").each(function(){if(this.value==this._placeholder){this.value=""}})}}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":if(this.task=="mail"){this.delete_messages(event)}else{if(this.task=="addressbook"){this.delete_contacts()}else{if(this.task=="settings"){this.delete_identity()}}}break;case"move":case"moveto":if(this.task=="mail"){this.move_messages(props)}else{if(this.task=="addressbook"&&this.drag_active){this.copy_contact(null,props)}}break;case"copy":if(this.task=="mail"){this.copy_messages(props)}break;case"mark":if(props){this.mark_message(props)}break;case"toggle_status":if(props&&!props._row){break}flag="read";if(props._row.uid){uid=props._row.uid;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"toggle_flag":if(props&&!props._row){break}flag="flagged";if(props._row.uid){uid=props._row.uid;if(this.message_list.rows[uid].flagged){flag="unflagged"}}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":var qstring="_mbox="+urlencode(this.env.mailbox)+"&_uid="+this.env.uid+"&_part="+props.part;if(this.env.uid&&props.mimetype&&this.env.mimetypes&&$.inArray(props.mimetype,this.env.mimetypes)>=0){var attachment_win=window.open(this.env.comm_path+"&_action=get&"+qstring+"&_frame=1",this.html_identifier("rcubemailattachment"+this.env.uid+props.part));if(attachment_win){setTimeout(function(){attachment_win.focus()},10);break}}this.goto_url("get",qstring+"&_download=1",false);break;case"select-all":this.select_all_mode=props?false:true;this.dummy_select=true;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}if(this.env.search_request){url._search=this.env.search_request}}else{if(this.task=="addressbook"){if(props&&props.indexOf("@")>0){url._to=props}else{var n,len,a_cids=[];if(props){a_cids.push(props)}else{if(this.contact_list){var selection=this.contact_list.get_selection();for(n=0,len=selection.length;n<len;n++){a_cids.push(selection[n])}}}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":clearTimeout(this.save_timer);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}clearTimeout(this.save_timer);this.submit_messageform();break;case"send-attachment":clearTimeout(this.save_timer);this.upload_file(props||this.gui_objects.uploadform);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"){url._all=(!props&&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(uid=this.get_single_uid()){ref.printwin=window.open(this.env.comm_path+"&_action=print&_uid="+uid+"&_mbox="+urlencode(this.env.mailbox)+(this.env.safemode?"&_safe=1":""));if(this.printwin){setTimeout(function(){ref.printwin.focus()},20);if(this.env.action!="show"){this.mark_message("read",uid)}}}break;case"viewsource":if(uid=this.get_single_uid()){ref.sourcewin=window.open(this.env.comm_path+"&_action=viewsource&_uid="+uid+"&_mbox="+urlencode(this.env.mailbox));if(this.sourcewin){setTimeout(function(){ref.sourcewin.focus()},20)}}break;case"download":if(uid=this.get_single_uid()){this.goto_url("viewsource",{_uid:uid,_mbox:this.env.mailbox,_save:1})}break;case"search":if(!props&&this.gui_objects.qsearchbox){props=this.gui_objects.qsearchbox.value}if(props){this.qsearch(props);break}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"listgroup":this.reset_qsearch();this.list_contacts(props.source,props.id);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"upload-photo":this.upload_contact_photo(props||this.gui_objects.uploadform);break;case"delete-photo":this.replace_contact_photo("-del-");break;case"preferences":case"identities":case"folders":this.goto_url("settings/"+command);break;case"undo":this.http_request("undo","",this.display_message("","loading"));break;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};this.enable_command=function(){var i,n,args=Array.prototype.slice.call(arguments),enable=args.pop(),cmd;for(n=0;n<args.length;n++){cmd=args[n];if(typeof cmd==="string"){this.commands[cmd]=enable;this.set_button(cmd,(enable?"act":"pas"))}else{for(i in cmd){args.push(cmd[i])}}}};this.set_busy=function(a,message,id){if(a&&message){var msg=this.get_label(message);if(msg==message){msg="Loading..."}id=this.display_message(msg,"loading")}else{if(!a&&id){this.hide_message(id)}}this.busy=a;if(this.gui_objects.editform){this.lock_form(this.gui_objects.editform,a)}return id};this.get_label=function(name,domain){if(domain&&this.labels[domain+"."+name]){return this.labels[domain+"."+name]}else{if(this.labels[name]){return this.labels[name]}else{return name}}};this.gettext=this.get_label;this.switch_task=function(task){if(this.task===task&&task!="mail"){return}var url=this.get_task_url(task);if(task=="mail"){url+="&_mbox=INBOX"}this.redirect(url)};this.get_task_url=function(task,url){if(!url){url=this.env.comm_path}return url.replace(/_task=[a-z]+/,"_task="+task)};this.reload=function(delay){if(this.is_framed()){parent.rcmail.reload(delay)}else{if(delay){setTimeout(function(){rcmail.reload()},delay)}else{if(window.location){location.href=this.env.comm_path+(this.env.action?"&_action="+this.env.action:"")}}}};this.add_url=function(url,name,value){value=urlencode(value);if(/(\?.*)$/.test(url)){var urldata=RegExp.$1,datax=RegExp("((\\?|&)"+RegExp.escape(name)+"=[^&]*)");if(datax.test(urldata)){urldata=urldata.replace(datax,RegExp.$2+name+"="+value)}else{urldata+="&"+name+"="+value}return url.replace(/(\?.*)$/,urldata)}return url+"?"+name+"="+value};this.is_framed=function(){return(this.env.framed&&parent.rcmail&&parent.rcmail!=this&&parent.rcmail.command)};this.save_pref=function(prop){var request={_name:prop.name,_value:prop.value};if(prop.session){request._session=prop.session}if(prop.env){this.env[prop.env]=prop.value}this.http_post("save-pref",request)};this.html_identifier=function(str,encode){str=String(str);if(encode){return Base64.encode(str).replace(/=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")}else{return str.replace(this.identifier_expr,"_")}};this.html_identifier_decode=function(str){str=String(str).replace(/-/g,"+").replace(/_/g,"/");while(str.length%4){str+="="}return Base64.decode(str)};this.drag_menu=function(e,target){var modkey=rcube_event.get_modifier(e),menu=this.gui_objects.message_dragmenu;if(menu&&modkey==SHIFT_KEY&&this.commands.copy){var pos=rcube_event.get_mouse_pos(e);this.env.drag_target=target;$(menu).css({top:(pos.y-10)+"px",left:(pos.x-10)+"px"}).show();return true}return false};this.drag_menu_action=function(action){var menu=this.gui_objects.message_dragmenu;if(menu){$(menu).hide()}this.command(action,this.env.drag_target);this.env.drag_target=null};this.drag_start=function(list){var model=this.task=="mail"?this.env.mailboxes:this.env.contactfolders;this.drag_active=true;if(this.preview_timer){clearTimeout(this.preview_timer)}if(this.preview_read_timer){clearTimeout(this.preview_read_timer)}if(this.gui_objects.folderlist&&model){this.initialBodyScrollTop=bw.ie?0:window.pageYOffset;this.initialListScrollTop=this.gui_objects.folderlist.parentNode.scrollTop;var k,li,height,list=$(this.gui_objects.folderlist);pos=list.offset();this.env.folderlist_coords={x1:pos.left,y1:pos.top,x2:pos.left+list.width(),y2:pos.top+list.height()};this.env.folder_coords=[];for(k in model){if(li=this.get_folder_li(k)){if(height=li.firstChild.offsetHeight){pos=$(li.firstChild).offset();this.env.folder_coords[k]={x1:pos.left,y1:pos.top,x2:pos.left+li.firstChild.offsetWidth,y2:pos.top+height,on:0}}}}}};this.drag_end=function(e){this.drag_active=false;this.env.last_folder_target=null;if(this.folder_auto_timer){clearTimeout(this.folder_auto_timer);this.folder_auto_timer=null;this.folder_auto_expand=null}if(this.gui_objects.folderlist&&this.env.folder_coords){for(var k in this.env.folder_coords){if(this.env.folder_coords[k].on){$(this.get_folder_li(k)).removeClass("droptarget")}}}};this.drag_move=function(e){if(this.gui_objects.folderlist&&this.env.folder_coords){var k,li,div,check,oldclass,layerclass="draglayernormal",mouse=rcube_event.get_mouse_pos(e),pos=this.env.folderlist_coords,boffset=bw.ie?-document.documentElement.scrollTop:this.initialBodyScrollTop,moffset=this.initialListScrollTop-this.gui_objects.folderlist.parentNode.scrollTop;if(this.contact_list&&this.contact_list.draglayer){oldclass=this.contact_list.draglayer.attr("class")}mouse.y+=-moffset-boffset;if(mouse.x<pos.x1||mouse.x>=pos.x2||mouse.y<pos.y1||mouse.y>=pos.y2){if(this.env.last_folder_target){$(this.get_folder_li(this.env.last_folder_target)).removeClass("droptarget");this.env.folder_coords[this.env.last_folder_target].on=0;this.env.last_folder_target=null}if(layerclass!=oldclass&&this.contact_list&&this.contact_list.draglayer){this.contact_list.draglayer.attr("class",layerclass)}return}for(k in this.env.folder_coords){pos=this.env.folder_coords[k];if(mouse.x>=pos.x1&&mouse.x<pos.x2&&mouse.y>=pos.y1&&mouse.y<pos.y2){if(check=this.check_droptarget(k)){li=this.get_folder_li(k);div=$(li.getElementsByTagName("div")[0]);if(div.hasClass("collapsed")){if(this.folder_auto_timer){clearTimeout(this.folder_auto_timer)}this.folder_auto_expand=this.env.mailboxes[k].id;this.folder_auto_timer=setTimeout(function(){rcmail.command("collapse-folder",rcmail.folder_auto_expand);rcmail.drag_start(null)},1000)}else{if(this.folder_auto_timer){clearTimeout(this.folder_auto_timer);this.folder_auto_timer=null;this.folder_auto_expand=null}}$(li).addClass("droptarget");this.env.folder_coords[k].on=1;this.env.last_folder_target=k;layerclass="draglayer"+(check>1?"copy":"normal")}else{this.env.last_folder_target=null}}else{if(pos.on){$(this.get_folder_li(k)).removeClass("droptarget");this.env.folder_coords[k].on=0}}}if(layerclass!=oldclass&&this.contact_list&&this.contact_list.draglayer){this.contact_list.draglayer.attr("class",layerclass)}}};this.collapse_folder=function(name){var li=this.get_folder_li(name,"",true),div=$("div:first",li),ul=$("ul:first",li);if(div.hasClass("collapsed")){ul.show();div.removeClass("collapsed").addClass("expanded");var reg=new RegExp("&"+urlencode(name)+"&");this.env.collapsed_folders=this.env.collapsed_folders.replace(reg,"")}else{if(div.hasClass("expanded")){ul.hide();div.removeClass("expanded").addClass("collapsed");this.env.collapsed_folders=this.env.collapsed_folders+"&"+urlencode(name)+"&";if(this.env.mailbox.indexOf(name+this.env.delimiter)==0&&!$(li).hasClass("virtual")){this.command("list",name)}}else{return}}if(bw.ie6||bw.ie7){var siblings=li.nextSibling?li.nextSibling.getElementsByTagName("ul"):null;if(siblings&&siblings.length&&(li=siblings[0])&&li.style&&li.style.display!="none"){li.style.display="none";li.style.display=""}}this.command("save-pref",{name:"collapsed_folders",value:this.env.collapsed_folders});this.set_unread_count_display(name,false)};this.doc_mouse_up=function(e){var model,list,id;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()}if(this.drag_active&&model&&this.env.last_folder_target){var target=model[this.env.last_folder_target];$(this.get_folder_li(this.env.last_folder_target)).removeClass("droptarget");this.env.last_folder_target=null;list.draglayer.hide();if(!this.drag_menu(e,target)){this.command("moveto",target)}}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){if(this.env.mailbox==this.env.drafts_mailbox){this.enable_command("reply","reply-all","reply-list","forward","forward-attachment","forward-inline",false)}else{var msg=this.env.messages[selected];if(!msg.ml){this.enable_command("reply-list",false)}}}this.enable_command("delete","moveto","copy","mark","forward","forward-attachment",list.selection.length>0);if(selected||(list.selection.length&&list.selection.length!=list.rowcount)){this.select_all_mode=false}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.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.list.tHead.rows[0].cells;this.env.coltypes=[];for(i=0;i<cols.length;i++){if(cols[i].id&&cols[i].id.match(/^rcm/)){name=cols[i].id.replace(/^rcm/,"");this.env.coltypes.push(name)}}if((found=$.inArray("flag",this.env.coltypes))>=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){if(this.task=="mail"){return(this.env.mailboxes[id]&&this.env.mailboxes[id].id!=this.env.mailbox&&!this.env.mailboxes[id].virtual)?1:0}if(this.task=="settings"){return id!=this.env.mailbox?1:0}if(this.task=="addressbook"){if(id!=this.env.source&&this.env.contactfolders[id]){if(this.env.contactfolders[id].type=="group"){var target_abook=this.env.contactfolders[id].source;if(this.env.contactfolders[id].id!=this.env.group&&!this.env.contactfolders[target_abook].readonly){return(this.env.selection_sources.length>1||$.inArray(target_abook,this.env.selection_sources)==-1)?2:1}}else{if(!this.env.contactfolders[id].readonly){return(this.env.selection_sources.length>1||$.inArray(id,this.env.selection_sources)==-1)?2:0}}}}return 0};this.open_window=function(url,width){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(width,page_width),h=page_height,l=(win.screenLeft||win.screenX)+20,t=(win.screenTop||win.screenY)+20,wname="rcmextwin"+new Date().getTime(),extwin=window.open(url+(url.match(/\?/)?"&":"?")+"_extwin=1",wname,"width="+w+",height="+h+",top="+t+",left="+l+",resizable=yes,toolbar=no,status=no,location=no");if(!url&&extwin.document){extwin.document.write("<html><body>"+this.get_label("loading")+"</body></html>")}window.setTimeout(function(){extwin.focus()},10);return wname};this.init_message_row=function(row){var expando,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])}if(row.icon=document.getElementById(status_icon)){row.icon._row=row.obj;row.icon.onmousedown=function(e){self.command("toggle_status",this);rcube_event.cancel(e)}}if(this.env.status_col!=null){row.msgicon=document.getElementById("msgicn"+row.uid)}else{row.msgicon=row.icon}if(this.env.flagged_col!=null&&(row.flagicon=document.getElementById("flagicn"+row.uid))){row.flagicon._row=row.obj;row.flagicon.onmousedown=function(e){self.command("toggle_flag",this);rcube_event.cancel(e)}}if(!row.depth&&row.has_children&&(expando=document.getElementById("rcmexpando"+row.uid))){row.expando=expando;expando.onmousedown=function(e){return self.expand_message_row(e,uid)};if(bw.touch){expando.addEventListener("touchend",function(e){if(e.changedTouches.length==1){self.expand_message_row(e,uid);return rcube_event.cancel(e)}},false)}}this.triggerEvent("insertrow",{uid:uid,row:row})};this.add_message_row=function(uid,cols,flags,attop){if(!this.gui_objects.messagelist||!this.message_list){return false}if(flags.mbox!=this.env.mailbox&&!flags.skip_mbox_check){return false}if(!this.env.messages[uid]){this.env.messages[uid]={}}$.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: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=document.createElement("tr");row.id="rcmrow"+uid;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"}if(message.selected&&!list.in_selection(uid)){list.selection.push(uid)}if(this.env.threading){if(message.depth){tree+='<span id="rcmtab'+uid+'" class="branch" style="width:'+(message.depth*15)+'px;">&nbsp;&nbsp;</span>';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='<div id="rcmexpando'+uid+'" class="'+(message.expanded?"expanded":"collapsed")+'">&nbsp;&nbsp;</div>';row_class+=" thread"+(message.expanded?" expanded":"")}}if(flags.unread_children&&flags.seen&&!message.expanded){row_class+=" unroot"}}tree+='<span id="msgicn'+uid+'" class="'+css_class+'">&nbsp;</span>';row.className=row_class;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='<a href="./?_task=mail&_action='+action+"&_mbox="+urlencode(flags.mbox)+"&"+uid_param+"="+uid+'" onclick="return rcube_event.cancel(event)" onmouseover="rcube_webmail.long_subject_title(this,'+(message.depth+1)+')">'+cols.subject+"</a>"}for(n in this.env.coltypes){c=this.env.coltypes[n];col=document.createElement("td");col.className=String(c).toLowerCase();if(c=="flag"){css_class=(flags.flagged?"flagged":"unflagged");html='<span id="flagicn'+uid+'" class="'+css_class+'">&nbsp;</span>'}else{if(c=="attachment"){if(/application\/|multipart\/(m|signed)/.test(flags.ctype)){html='<span class="attachment">&nbsp;</span>'}else{if(/multipart\/report/.test(flags.ctype)){html='<span class="report">&nbsp;</span>'}else{html="&nbsp;"}}}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='<span id="statusicn'+uid+'" class="'+css_class+'">&nbsp;</span>'}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="<span></span>"+tree}}html=tree+cols[c]}else{if(c=="priority"){if(flags.prio>0&&flags.prio<6){html='<span class="prio'+flags.prio+'">&nbsp;</span>'}else{html="&nbsp;"}}else{html=cols[c]}}}}}}if(html){col.innerHTML=html}row.appendChild(col)}list.insert_row(row,attop);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){$("#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){var i,idx,name,newcols=[],oldcols=this.env.coltypes;for(i=0;i<oldcols.length;i++){name=oldcols[i];idx=$.inArray(name,cols);if(idx!=-1){newcols.push(name);delete cols[idx]}}for(i=0;i<cols.length;i++){if(cols[i]){newcols.push(cols[i])}}if(newcols.join()!=oldcols.join()){update=1;post_data._cols=newcols.join(",")}}if(update){this.list_mailbox("","",sort_col+"_"+sort_order,post_data)}};this.show_message=function(id,safe,preview){if(!id){return}var win,target=window,action=preview?"preview":"show",url="&_action="+action+"&_uid="+id+"&_mbox="+urlencode(this.env.mailbox);if(preview&&(win=this.get_frame_window(this.env.contentframe))){target=win;url+="&_framed=1"}if(safe){url+="&_safe=1"}if(this.env.search_request){url+="&_search="+this.env.search_request}url+="&_caps="+urlencode(this.browser_capabilities());if(this.env.extwin){url+="&_extwin=1"}if(preview&&String(target.location.href).indexOf(url)>=0){this.show_contentframe(true)}else{if(!preview&&this.env.message_extwin&&!this.env.extwin){this.open_window(this.env.comm_path+url,1000)}else{this.location_href(this.env.comm_path+url,target,true)}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&&win.location.href.indexOf(this.env.blankpage)<0){win.location.href=this.env.blankpage}}else{if(!bw.safari&&!bw.konq){$(frame)[show?"show":"hide"]()}}}if(!show&&this.busy){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")}};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)}}}};this.checkmail=function(){var lock=this.set_busy(true,"checkingmail"),params=this.check_recent_params();this.http_request("check-recent",params,lock)};this.filter_mailbox=function(filter){var lock=this.set_busy(true,"searching");this.clear_message_list();this.env.current_page=1;this.http_request("search",this.search_params(false,filter),lock)};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"}if(sort){url._sort=sort}if(this.env.search_request){url._search=this.env.search_request}if(this.env.mailbox!=mbox){page=1;this.env.current_page=page;this.select_all_mode=false}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;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}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)}};this.list_mailbox_remote=function(mbox,page,post_data){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)};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};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};this.expand_message_row=function(e,uid){var row=this.message_list.rows[uid];row.expanded=!row.expanded;this.set_unread_children(uid);row.expanded=!row.expanded;this.message_list.expand_row(e,uid)};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}};this.init_threads=function(roots,mbox){if(mbox&&mbox!=this.env.mailbox){return false}for(var n=0,len=roots.length;n<len;n++){this.add_tree_icons(roots[n])}this.expand_threads()};this.add_tree_icons=function(root){var i,l,r,n,len,pos,tmp=[],uid=[],row,rows=this.message_list.rows;if(root){row=rows[root]?rows[root].obj:null}else{row=this.message_list.list.tBodies[0].firstChild}while(row){if(row.nodeType==1&&(r=rows[row.uid])){if(r.depth){for(i=tmp.length-1;i>=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])}}};this.set_tree_icons=function(uid,tree){var i,divs=[],html="",len=tree.length;for(i=0;i<len;i++){if(tree[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})}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+='<div class="tree '+divs[i]["class"]+'" />'}else{html+='<div style="width:'+divs[i].width+'px" />'}}if(html){$("#rcmtab"+uid).html(html)}};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){p.unread_children=p.unread_children?p.unread_children+1:1}else{return}}this.set_message_icon(root);this.set_unread_children(root)};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){count--}else{if(row.unread){parent=this.message_list.find_root(uid);rows[parent].unread_children--;this.set_unread_children(parent)}}parent=row.parent_uid;row=row.obj.nextSibling;while(row){if(row.nodeType==1&&(r=rows[row.uid])){if(!r.depth||r.depth<=depth){break}r.depth--;$("#rcmtab"+r.uid).width(r.depth*15).html("");if(!r.depth){count++;r.parent_uid=0;if(r.has_children){$("#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)}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}for(var i=0;i<roots.length;i++){this.set_unread_children(roots[i].uid)}return count};this.delete_excessive_thread_rows=function(){var rows=this.message_list.rows,tbody=this.message_list.list.tBodies[0],row=tbody.firstChild,cnt=this.env.pagesize+1;while(row){if(row.nodeType==1&&(r=rows[row.uid])){if(!r.depth&&cnt){cnt--}if(!cnt){this.message_list.remove_row(row.uid)}}row=row.nextSibling}};this.set_message_icon=function(uid){var css_class,row=this.message_list.rows[uid];if(!row){return false}if(row.icon){css_class="msgicon";if(row.deleted){css_class+=" deleted"}else{if(row.unread){css_class+=" unread"}else{if(row.unread_children){css_class+=" unreadchildren"}}}if(row.msgicon==row.icon){if(row.replied){css_class+=" replied"}if(row.forwarded){css_class+=" forwarded"}css_class+=" status"}row.icon.className=css_class}if(row.msgicon&&row.msgicon!=row.icon){css_class="msgicon";if(!row.unread&&row.unread_children){css_class+=" unreadchildren"}if(row.replied){css_class+=" replied"}if(row.forwarded){css_class+=" forwarded"}row.msgicon.className=css_class}if(row.flagicon){css_class=(row.flagged?"flagged":"unflagged");row.flagicon.className=css_class}};this.set_message_status=function(uid,flag,status){var row=this.message_list.rows[uid];if(!row){return false}if(flag=="unread"){row.unread=status}else{if(flag=="deleted"){row.deleted=status}else{if(flag=="replied"){row.replied=status}else{if(flag=="forwarded"){row.forwarded=status}else{if(flag=="flagged"){row.flagged=status}}}}}};this.set_message=function(uid,flag,status){var row=this.message_list&&this.message_list.rows[uid];if(!row){return false}if(flag){this.set_message_status(uid,flag,status)}var rowobj=$(row.obj);if(row.unread&&!rowobj.hasClass("unread")){rowobj.addClass("unread")}else{if(!row.unread&&rowobj.hasClass("unread")){rowobj.removeClass("unread")}}if(row.deleted&&!rowobj.hasClass("deleted")){rowobj.addClass("deleted")}else{if(!row.deleted&&rowobj.hasClass("deleted")){rowobj.removeClass("deleted")}}if(row.flagged&&!rowobj.hasClass("flagged")){rowobj.addClass("flagged")}else{if(!row.flagged&&rowobj.hasClass("flagged")){rowobj.removeClass("flagged")}}this.set_unread_children(uid);this.set_message_icon(uid)};this.set_unread_children=function(uid){var row=this.message_list.rows[uid];if(row.parent_uid){return}if(!row.unread&&row.unread_children&&!row.expanded){$(row.obj).addClass("unroot")}else{$(row.obj).removeClass("unroot")}};this.copy_messages=function(mbox){if(mbox&&typeof mbox==="object"){mbox=mbox.id}if(!mbox||mbox==this.env.mailbox){return}var post_data=this.selection_post_data({_target_mbox:mbox});if(!post_data._uid){return}this.http_post("copy",post_data,this.display_message(this.get_label("copyingmessage"),"loading"))};this.move_messages=function(mbox){if(mbox&&typeof mbox==="object"){mbox=mbox.id}if(!mbox||mbox==this.env.mailbox){return}var lock=false,post_data=this.selection_post_data({_target_mbox:mbox});if(!post_data._uid){return}if(this.env.action=="show"){lock=this.set_busy(true,"movingmessage")}else{this.show_contentframe(false)}this.enable_command(this.env.message_commands,false);this._with_selected_messages("moveto",post_data,lock)};this.delete_messages=function(event){var uid,i,len,trash=this.env.trash_mailbox,list=this.message_list,selection=list?list.get_selection():[];if(!this.env.uid&&!selection.length){return}for(i=0,len=selection.length;i<len;i++){uid=selection[i];if(list.rows[uid].has_children&&!list.rows[uid].expanded){list.select_children(uid)}}if(this.env.flag_for_deletion){this.mark_message("delete");return false}else{if(!trash||this.env.mailbox==trash){this.permanently_remove_messages()}else{if(this.env.delete_junk&&this.env.junk_mailbox&&this.env.mailbox==this.env.junk_mailbox){this.permanently_remove_messages()}else{if((list&&list.modkey==SHIFT_KEY)||(event&&rcube_event.get_modifier(event)==SHIFT_KEY)){if(confirm(this.get_label("deletemessagesconfirm"))){this.permanently_remove_messages()}}else{this.move_messages(trash)}}}}return true};this.permanently_remove_messages=function(){var post_data=this.selection_post_data();if(!post_data._uid){return}this.show_contentframe(false);this._with_selected_messages("delete",post_data)};this._with_selected_messages=function(action,post_data,lock){var count=0,msg;if(this.message_list){var n,id,root,roots=[],selection=this.message_list.get_selection();for(n=0,len=selection.length;n<len;n++){id=selection[n];if(this.env.threading){count+=this.update_thread(id);root=this.message_list.find_root(id);if(root!=id&&$.inArray(root,roots)<0){roots.push(root)}}this.message_list.remove_row(id,(this.env.display_next&&n==selection.length-1))}if(!this.env.display_next){this.message_list.clear_selection()}for(n=0,len=roots.length;n<len;n++){this.add_tree_icons(roots[n])}}if(this.env.display_next&&this.env.next_uid){post_data._next_uid=this.env.next_uid}if(count<0){post_data._count=(count*-1)}else{if(count>0){this.delete_excessive_thread_rows()}}if(!lock){msg=action=="moveto"?"movingmessage":"deletingmessage";lock=this.display_message(this.get_label(msg),"loading")}this.http_post(action,post_data,lock)};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}if(this.env.search_request){data._search=this.env.search_request}return data};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<len;n++){id=a_uids[n];if((flag=="read"&&list.rows[id].unread)||(flag=="unread"&&!list.rows[id].unread)||(flag=="delete"&&!list.rows[id].deleted)||(flag=="undelete"&&list.rows[id].deleted)||(flag=="flagged"&&!list.rows[id].flagged)||(flag=="unflagged"&&list.rows[id].flagged)){r_uids.push(id)}}}if(!r_uids.length&&!this.select_all_mode){return}switch(flag){case"read":case"unread":this.toggle_read_status(flag,r_uids);break;case"delete":case"undelete":this.toggle_delete_status(r_uids);break;case"flagged":case"unflagged":this.toggle_flagged_status(flag,a_uids);break}};this.toggle_read_status=function(flag,a_uids){var i,len=a_uids.length,post_data=this.selection_post_data({_uid:this.uids_to_list(a_uids),_flag:flag}),lock=this.display_message(this.get_label("markingmessage"),"loading");for(i=0;i<len;i++){this.set_message(a_uids[i],"unread",(flag=="unread"?true:false))}this.http_post("mark",post_data,lock);for(i=0;i<len;i++){this.update_thread_root(a_uids[i],flag)}};this.toggle_flagged_status=function(flag,a_uids){var i,len=a_uids.length,post_data=this.selection_post_data({_uid:this.uids_to_list(a_uids),_flag:flag}),lock=this.display_message(this.get_label("markingmessage"),"loading");for(i=0;i<len;i++){this.set_message(a_uids[i],"flagged",(flag=="flagged"?true:false))}this.http_post("mark",post_data,lock)};this.toggle_delete_status=function(a_uids){var len=a_uids.length,i,uid,all_deleted=true,rows=this.message_list?this.message_list.rows:[];if(len==1){if(!rows.length||(rows[a_uids[0]]&&!rows[a_uids[0]].deleted)){this.flag_as_deleted(a_uids)}else{this.flag_as_undeleted(a_uids)}return true}for(i=0;i<len;i++){uid=a_uids[i];if(rows[uid]&&!rows[uid].deleted){all_deleted=false;break}}if(all_deleted){this.flag_as_undeleted(a_uids)}else{this.flag_as_deleted(a_uids)}return true};this.flag_as_undeleted=function(a_uids){var i,len=a_uids.length,post_data=this.selection_post_data({_uid:this.uids_to_list(a_uids),_flag:"undelete"}),lock=this.display_message(this.get_label("markingmessage"),"loading");for(i=0;i<len;i++){this.set_message(a_uids[i],"deleted",false)}this.http_post("mark",post_data,lock)};this.flag_as_deleted=function(a_uids){var r_uids=[],post_data=this.selection_post_data({_uid:this.uids_to_list(a_uids),_flag:"delete"}),lock=this.display_message(this.get_label("markingmessage"),"loading"),rows=this.message_list?this.message_list.rows:[],count=0;for(var i=0,len=a_uids.length;i<len;i++){uid=a_uids[i];if(rows[uid]){if(rows[uid].unread){r_uids[r_uids.length]=uid}if(this.env.skip_deleted){count+=this.update_thread(uid);this.message_list.remove_row(uid,(this.env.display_next&&i==this.message_list.selection.length-1))}else{this.set_message(uid,"deleted",true)}}}if(this.env.skip_deleted&&this.message_list){if(!this.env.display_next){this.message_list.clear_selection()}if(count<0){post_data._count=(count*-1)}else{if(count>0){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)};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<len;i++){uid=uids[i];if(rows[uid]){this.set_message(uid,"unread",false)}}};this.uids_to_list=function(uids){return this.select_all_mode?"*":uids.join(",")};this.set_button_titles=function(){var label="deletemessage";if(!this.env.flag_for_deletion&&this.env.trash_mailbox&&this.env.mailbox!=this.env.trash_mailbox&&(!this.env.delete_junk||!this.env.junk_mailbox||this.env.mailbox!=this.env.junk_mailbox)){label="movemessagetotrash"}this.set_alttext("delete",label)};this.expunge_mailbox=function(mbox){var lock,post_data={_mbox:mbox};if(mbox==this.env.mailbox){lock=this.set_busy(true,"loading");post_data._reload=1;if(this.env.search_request){post_data._search=this.env.search_request}}this.http_post("expunge",post_data,lock)};this.purge_mailbox=function(mbox){var lock,post_data={_mbox:mbox};if(!confirm(this.get_label("purgefolderconfirm"))){return false}if(mbox==this.env.mailbox){lock=this.set_busy(true,"loading");post_data._reload=1}this.http_post("purge",post_data,lock)};this.purge_mailbox_test=function(){return(this.env.exists&&(this.env.mailbox==this.env.trash_mailbox||this.env.mailbox==this.env.junk_mailbox||this.env.mailbox.match("^"+RegExp.escape(this.env.trash_mailbox)+RegExp.escape(this.env.delimiter))||this.env.mailbox.match("^"+RegExp.escape(this.env.junk_mailbox)+RegExp.escape(this.env.delimiter))))};this.login_user_keyup=function(e){var key=rcube_event.get_keycode(e);var passwd=$("#rcmloginpwd");if(key==13&&passwd.length&&!passwd.val()){passwd.focus();return rcube_event.cancel(e)}return true};this.open_compose_step=function(p){var url=this.url("mail/compose",p);if(this.env.compose_extwin&&!this.env.extwin){this.open_window(url,1150)}else{this.redirect(url);if(this.env.extwin){window.resizeTo(Math.max(1150,$(window).width()),$(window).height()+24)}}};this.init_messageform=function(){if(!this.gui_objects.messageform){return false}var input_from=$("[name='_from']"),input_to=$("[name='_to']"),input_subject=$("input[name='_subject']"),input_message=$("[name='_message']").get(0),html_mode=$("input[name='_is_html']").val()=="1",ac_fields=["cc","bcc","replyto","followupto"],ac_props,opener_rc=this.opener();if(opener_rc&&opener_rc.env.action=="compose"){setTimeout(function(){opener.history.back()},100);this.env.opened_extwin=true}if(this.env.autocomplete_threads>0){ac_props={threads:this.env.autocomplete_threads,sources:this.env.autocomplete_sources}}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);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;this.compose_field_hash(true);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}var msgid=this.set_busy(true,draft?"savingmessage":"sendingmessage"),lang=this.spellcheck_lang(),files=[];$("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);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){this.enable_command("add-recipient",list.selection.length>0)};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]);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})}};this.check_compose_input=function(cmd){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']");if(input_from.prop("type")=="text"&&!rcube_check_email(input_from.val(),true)){alert(this.get_label("nosenderwarning"));input_from.focus();return false}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}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}}if(input_subject.val()==""){var myprompt=$('<div class="prompt">').html('<div class="message">'+this.get_label("nosubjectwarning")+"</div>").appendTo(document.body);var prompt_value=$("<input>").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})};myprompt.dialog({modal:true,resizable:false,buttons:buttons,close:function(event,ui){$(this).remove()}});prompt_value.select();return false}this.stop_spellchecking();if(window.tinyMCE){ed=tinyMCE.get(this.env.composebody)}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}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.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};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)}}};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())){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)}this.busy=false};this.compose_field_hash=function(save){var ed,i,val,str="",hash_fields=["to","cc","bcc","subject"];for(i=0;i<hash_fields.length;i++){if(val=$('[name="_'+hash_fields[i]+'"]').val()){str+=val+":"}}if(window.tinyMCE&&(ed=tinyMCE.get(this.env.composebody))){str+=ed.getContent()}else{str+=$("[name='_message']").val()}if(this.env.attachments){for(var upload_id in this.env.attachments){str+=upload_id}}if(save){this.cmp_hash=str}return str};this.change_identity=function(obj,show_sig){if(!obj||!obj.options){return false}if(!show_sig){show_sig=this.env.show_sig}if(!this.env.identities_initialized){this.env.identities_initialized=true;if(this.env.show_sig_later){this.env.show_sig=true}if(this.env.opened_extwin){return}}var cursor_pos,p=-1,id=obj.options[obj.selectedIndex].value,input_message=$("[name='_message']"),message=input_message.val(),is_html=($("input[name='_is_html']").val()=="1"),sig=this.env.identity;if(this.env.signatures&&this.env.signatures[id]){this.enable_command("insert-sig",true);this.env.compose_commands.push("insert-sig")}else{this.enable_command("insert-sig",false)}if(!is_html){if(show_sig&&sig&&this.env.signatures&&this.env.signatures[sig]){sig=this.env.signatures[sig].text;sig=sig.replace(/\r\n/g,"\n");p=this.env.top_posting?message.indexOf(sig):message.lastIndexOf(sig);if(p>=0){message=message.substring(0,p)+message.substring(p+sig.length,message.length)}}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){message=message.substring(0,p)+sig+message.substring(p,message.length);cursor_pos=p-1}else{if(!message){cursor_pos=0;message="\n\n"+sig}else{if(pos=this.get_caret_pos(input_message.get(0))){message=message.substring(0,pos)+"\n"+sig+"\n\n"+message.substring(pos,message.length);cursor_pos=pos}else{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);this.set_caret_pos(input_message.get(0),cursor_pos)}else{if(show_sig&&this.env.signatures){var editor=tinyMCE.get(this.env.composebody),sigElem=editor.dom.get("_rc_sig");if(!sigElem){var body=editor.getBody(),doc=editor.getDoc();sigElem=doc.createElement("div");sigElem.setAttribute("id","_rc_sig");if(this.env.top_posting){editor.getWin().focus();var node=editor.selection.getNode();if(node.nodeName=="BODY"){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){body.appendChild(doc.createElement("br"))}body.appendChild(sigElem)}}if(this.env.signatures[id]){sigElem.innerHTML=this.env.signatures[id].html}}}this.env.identity=id;return true};this.upload_file=function(form){if(!form){return false}var size=0,numfiles=0;$("input[type=file]",form).each(function(i,field){var files=field.files?field.files.length:(field.value?1:0);if(field.files){for(var i=0;i<files;i++){size+=field.files[i].size}}numfiles+=files});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,"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)}if(bw.opera){rcmail.env.uploadframe=e.data.ts}});var content="<span>"+this.get_label("uploading"+(numfiles>1?"many":""))+"</span>",ts=frame_name.replace(/^rcmupload/,"");this.add2attachment_list(ts,{name:"",html:content,classname:"uploading",frame:frame_name,complete:false});if(this.env.upload_progress_time){this.upload_progress_start("upload",ts)}}this.gui_objects.attachmentform=form;return true};this.add2attachment_list=function(name,att,upload_id){if(!this.gui_objects.attachmentlist){return false}if(!att.complete&&ref.env.loadingicon){att.html='<img src="'+ref.env.loadingicon+'" alt="" class="uploading" />'+att.html}if(!att.complete&&att.frame){att.html='<a title="'+this.get_label("cancel")+'" onclick="return rcmail.cancel_attachment_upload(\''+name+"', '"+att.frame+'\');" href="#cancelupload" class="cancelupload">'+(this.env.cancelicon?'<img src="'+this.env.cancelicon+'" alt="" />':this.get_label("cancel"))+"</a>"+att.html}var indicator,li=$("<li>");li.attr("id",name).addClass(att.classname).html(att.html).on("mouseover",function(){rcube_webmail.long_subject_title_ex(this,0)});if(upload_id&&(indicator=document.getElementById(upload_id))){li.replaceAll(indicator)}else{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)}};this.add_contact=function(value){if(value){this.http_post("addcontact",{_address:value})}return true};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}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}}};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};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,target){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);if(target&&rc.env.task=="mail"&&rc.env.action==""&&rc.env.mailbox==target){rc.command("checkmail")}}setTimeout(function(){window.close()},1000)}else{setTimeout(function(){ref.list_mailbox()},500)}};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:case 40: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:if(mod==SHIFT_KEY||!this.ksearch_visible()){this.ksearch_hide();return}case 13:if(!this.ksearch_visible()){return false}this.insert_recipient(this.ksearch_selected);this.ksearch_hide();return rcube_event.cancel(e);case 27:this.ksearch_hide();return;case 37:case 39:if(mod!=SHIFT_KEY){return}}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}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="",pre=inp_value.substring(0,p),end=inp_value.substring(p+this.ksearch_value.length,inp_value.length);this.ksearch_destroy();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;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}};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()}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;q=$.trim(q);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;if(!q.length){return}if(old_value&&old_value.length&&q.indexOf(old_value)==0&&(!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<threads;i++){source=this.ksearch_data.sources.shift();if(threads>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){if(!this.ksearch_value){return}if(this.ksearch_input&&search!=this.ksearch_value){return}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;if(!this.ksearch_pane){ul=$("<ul>");this.ksearch_pane=$("<div>").attr("id","rcmKSearchpane").css({position:"absolute","z-index":30000}).append(ul).appendTo(document.body);this.ksearch_pane.__ul=ul[0]}ul=this.ksearch_pane.__ul;if(reqid&&this.ksearch_pane.data("reqid")==reqid){maxlen-=ul.childNodes.length}else{this.ksearch_pane.data("reqid",reqid);init=1;ul.innerHTML="";this.env.contacts=[];var pos=$(this.ksearch_input).offset();this.ksearch_pane.css({left:pos.left+"px",top:(pos.top+this.ksearch_input.offsetHeight)+"px",display:"none"})}if(results&&(len=results.length)){for(i=0;i<len&&maxlen>0;i++){text=typeof results[i]==="object"?results[i].name:results[i];li=document.createElement("LI");li.innerHTML=text.replace(new RegExp("("+RegExp.escape(value)+")","ig"),"##$1%%").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/##([^%]+)%%/g,"<b>$1</b>");li.onmouseover=function(){ref.ksearch_select(this)};li.onmouseup=function(){ref.ksearch_click(this)};li._rcm_id=this.env.contacts.length+i;ul.appendChild(li);maxlen-=1}}if(ul.childNodes.length){this.ksearch_pane.show();if(!this.env.contacts.length){$("li:first",ul).attr("id","rcmksearchSelected").addClass("selected");this.ksearch_selected=0}}if(len){this.env.contacts=this.env.contacts.concat(results)}if(data.id==reqid){data.num--;if(maxlen>0&&data.sources.length){var lock,xhr,source=data.sources.shift(),post_data;if(source){post_data={_search:value,_id:reqid,_source:source};lock=this.display_message(this.get_label("searching"),"loading");xhr=this.http_post(data.action,post_data,lock);this.ksearch_data.locks.push(lock);this.ksearch_data.requests.push(xhr)}}else{if(!maxlen){if(!this.ksearch_msg){this.ksearch_msg=this.display_message(this.get_label("autocompletemore"))}this.ksearch_abort()}}}};this.ksearch_click=function(node){if(this.ksearch_input){this.ksearch_input.focus()}this.insert_recipient(node._rcm_id);this.ksearch_hide()};this.ksearch_blur=function(){if(this.ksearch_timer){clearTimeout(this.ksearch_timer)}this.ksearch_input=null;this.ksearch_hide()};this.ksearch_hide=function(){this.ksearch_selected=null;this.ksearch_value="";if(this.ksearch_pane){this.ksearch_pane.hide()}this.ksearch_destroy()};this.ksearch_destroy=function(){this.ksearch_abort();if(this.ksearch_info){this.hide_message(this.ksearch_info)}if(this.ksearch_msg){this.hide_message(this.ksearch_msg)}this.ksearch_data=null;this.ksearch_info=null;this.ksearch_msg=null};this.ksearch_abort=function(){var i,len,ac=this.ksearch_data;if(!ac){return}for(i=0,len=ac.locks.length;i<len;i++){this.abort_request({request:ac.requests[i],lock:ac.locks[i]})}};this.contactlist_keypress=function(list){if(list.key_pressed==list.DELETE_KEY){this.command("delete")}};this.contactlist_select=function(list){if(this.preview_timer){clearTimeout(this.preview_timer)}var n,id,sid,ref=this,writable=false,source=this.env.source?this.env.address_sources[this.env.source]:null;if(id=list.get_single_selection()){this.preview_timer=setTimeout(function(){ref.load_contact(id,"show")},200)}else{if(this.env.contentframe){this.show_contentframe(false)}}if(list.selection.length){this.env.selection_sources=[];if(!source){for(n in list.selection){sid=String(list.selection[n]).replace(/^[^-]+-/,"");if(sid&&this.env.address_sources[sid]){writable=writable||!this.env.address_sources[sid].readonly;this.env.selection_sources.push(sid)}}this.env.selection_sources=$.unique(this.env.selection_sources)}else{this.env.selection_sources.push(this.env.source);writable=!source.readonly}}this.enable_command("group-remove-selected",this.env.group&&list.selection.length>0);this.enable_command("compose",this.env.group||list.selection.length>0);this.enable_command("edit",id&&writable);this.enable_command("delete",list.selection.length&&writable);return false};this.list_contacts=function(src,group,page){var win,folder,url={},target=window;if(!src){src=this.env.source}if(page&&this.current_page==page&&src==this.env.source&&group==this.env.group){return false}if(src!=this.env.source){page=this.env.current_page=1;this.reset_qsearch()}else{if(group!=this.env.group){page=this.env.current_page=1}}if(this.env.search_id){folder="S"+this.env.search_id}else{if(!this.env.search_request){folder=group?"G"+src+group:src}}this.select_folder(folder);this.env.source=src;this.env.group=group;if(this.gui_objects.contactslist){this.list_contacts_remote(src,group,page);return}if(win=this.get_frame_window(this.env.contentframe)){target=win;url._framed=1}if(group){url._gid=group}if(page){url._page=page}if(src){url._source=src}if(this.env.search_request){url._search=this.env.search_request}this.set_busy(true,"loading");this.location_href(url,target)};this.list_contacts_remote=function(src,group,page){this.list_contacts_clear();var url={},lock=this.set_busy(true,"loading");if(src){url._source=src}if(page){url._page=page}if(group){url._gid=group}this.env.source=src;this.env.group=group;if(this.env.search_request){url._search=this.env.search_request}this.http_request(this.env.task=="mail"?"list-contacts":"list",url,lock)};this.list_contacts_clear=function(){this.contact_list.clear(true);this.show_contentframe(false);this.enable_command("delete",false);this.enable_command("compose",this.env.group?true:false)};this.load_contact=function(cid,action,framed){var win,url={},target=window;if(win=this.get_frame_window(this.env.contentframe)){url._framed=1;target=win;this.show_contentframe(true);if(!cid){this.contact_list.clear_selection();this.enable_command("delete","compose",false)}}else{if(framed){return false}}if(action&&(cid||action=="add")&&!this.drag_active){if(this.env.group){url._gid=this.env.group}url._action=action;url._source=this.env.source;url._cid=cid;this.location_href(url,target,true)}return true};this.group_member_change=function(what,cid,source,gid){what=what=="add"?"add":"del";var label=this.get_label(what=="add"?"addingmember":"removingmember"),lock=this.display_message(label,"loading"),post_data={_cid:cid,_source:source,_gid:gid};this.http_post("group-"+what+"members",post_data,lock)};this.copy_contact=function(cid,to){var n,dest=to.type=="group"?to.source:to.id,source=this.env.source,group=this.env.group?this.env.group:"";if(!cid){cid=this.contact_list.get_selection().join(",")}if(!cid||!this.env.address_sources[dest]||this.env.address_sources[dest].readonly){return}if(source==""&&this.env.selection_sources.length==1){source=this.env.selection_sources[0]}if(to.type=="group"){if(dest==source){this.group_member_change("add",cid,dest,to.id)}else{var lock=this.display_message(this.get_label("copyingcontact"),"loading"),post_data={_cid:cid,_source:this.env.source,_to:dest,_togid:to.id,_gid:group};this.http_post("copy",post_data,lock)}}else{if(to.id!=source){var lock=this.display_message(this.get_label("copyingcontact"),"loading"),post_data={_cid:cid,_source:this.env.source,_to:to.id,_gid:group};this.http_post("copy",post_data,lock)}}};this.delete_contacts=function(){var selection=this.contact_list.get_selection(),undelete=this.env.source&&this.env.address_sources[this.env.source].undelete;if(!(selection.length||this.env.cid)||(!undelete&&!confirm(this.get_label("deletecontactconfirm")))){return}var id,n,a_cids=[],post_data={_source:this.env.source,_from:(this.env.action?this.env.action:"")},lock=this.display_message(this.get_label("contactdeleting"),"loading");if(this.env.cid){a_cids.push(this.env.cid)}else{for(n=0;n<selection.length;n++){id=selection[n];a_cids.push(id);this.contact_list.remove_row(id,(n==selection.length-1))}if(selection.length==1){this.show_contentframe(false)}}post_data._cid=a_cids.join(",");if(this.env.group){post_data._gid=this.env.group}if(this.env.search_request){post_data._search=this.env.search_request}this.http_post("delete",post_data,lock);return true};this.update_contact_row=function(cid,cols_arr,newcid,source){var c,row,list=this.contact_list;cid=this.html_identifier(cid);if(!list.rows[cid]){cid=cid+"-"+source;if(newcid){newcid=newcid+"-"+source}}if(list.rows[cid]&&(row=list.rows[cid].obj)){for(c=0;c<cols_arr.length;c++){if(row.cells[c]){$(row.cells[c]).html(cols_arr[c])}}if(newcid){newcid=this.html_identifier(newcid);row.id="rcmrow"+newcid;list.remove_row(cid);list.init_row(row);list.selection[0]=newcid;row.style.display=""}}};this.add_contact_row=function(cid,cols,classes){if(!this.gui_objects.contactslist){return false}var c,col,list=this.contact_list,row=document.createElement("tr");row.id="rcmrow"+this.html_identifier(cid);row.className="contact "+(classes||"");if(list.in_selection(cid)){row.className+=" selected"}for(c in cols){col=document.createElement("td");col.className=String(c).toLowerCase();if(cols[c]){col.innerHTML=cols[c]}row.appendChild(col)}list.insert_row(row);this.enable_command("export",list.rowcount>0)};this.init_contact_form=function(){var ref=this,col;if(this.env.coltypes){this.set_photo_actions($("#ff_photo").val());for(col in this.env.coltypes){this.init_edit_field(col,null)}}$(".contactfieldgroup .row a.deletebutton").click(function(){ref.delete_edit_field(this);return false});$("select.addfieldmenu").change(function(e){ref.insert_edit_field($(this).val(),$(this).attr("rel"),this);this.selectedIndex=0});if($.datepicker&&this.env.date_format){$.datepicker.setDefaults({dateFormat:this.env.date_format,changeMonth:true,changeYear:true,yearRange:"-100:+10",showOtherMonths:true,selectOtherMonths:true,onSelect:function(dateText){$(this).focus().val(dateText)}});$("input.datepicker").datepicker()}$("input[type='text']:visible").first().focus();if(this.env.action=="search"){$(this.gui_objects.editform).append($('<input type="submit">').hide()).submit(function(){$("input.mainaction").click();return false})}};this.group_create=function(){this.add_input_row("contactgroup")};this.group_rename=function(){if(!this.env.group||!this.gui_objects.folderlist){return}if(!this.name_input){this.enable_command("list","listgroup",false);this.name_input=$("<input>").attr("type","text").val(this.env.contactgroups["G"+this.env.source+this.env.group].name);this.name_input.bind("keydown",function(e){return rcmail.add_input_keydown(e)});this.env.group_renaming=true;var link,li=this.get_folder_li(this.env.source+this.env.group,"rcmliG");if(li&&(link=li.firstChild)){$(link).hide().before(this.name_input)}}this.name_input.select().focus()};this.group_delete=function(){if(this.env.group&&confirm(this.get_label("deletegroupconfirm"))){var lock=this.set_busy(true,"groupdeleting");this.http_post("group-delete",{_source:this.env.source,_gid:this.env.group},lock)}};this.remove_group_item=function(prop){var li,key="G"+prop.source+prop.id;if((li=this.get_folder_li(key))){this.triggerEvent("group_delete",{source:prop.source,id:prop.id,li:li});li.parentNode.removeChild(li);delete this.env.contactfolders[key];delete this.env.contactgroups[key]}this.list_contacts(prop.source,0)};this.add_input_row=function(type){if(!this.gui_objects.folderlist){return}if(!this.name_input){this.name_input=$("<input>").attr("type","text").data("tt",type);this.name_input.bind("keydown",function(e){return rcmail.add_input_keydown(e)});this.name_input_li=$("<li>").addClass(type).append(this.name_input);var li=type=="contactsearch"?$("li:last",this.gui_objects.folderlist):this.get_folder_li(this.env.source);this.name_input_li.insertAfter(li)}this.name_input.select().focus()};this.group_remove_selected=function(){ref.http_post("group-delmembers",{_cid:this.contact_list.selection,_source:this.env.source,_gid:this.env.group})};this.remove_group_contacts=function(props){if("undefined"!=typeof this.env.group&&(this.env.group===props.gid)){var n,selection=this.contact_list.get_selection();for(n=0;n<selection.length;n++){id=selection[n];this.contact_list.remove_row(id,(n==selection.length-1))}}};this.add_input_keydown=function(e){var key=rcube_event.get_keycode(e),input=$(e.target),itype=input.data("tt");if(key==13){var newname=input.val();if(newname){var lock=this.set_busy(true,"loading");if(itype=="contactsearch"){this.http_post("search-create",{_search:this.env.search_request,_name:newname},lock)}else{if(this.env.group_renaming){this.http_post("group-rename",{_source:this.env.source,_gid:this.env.group,_name:newname},lock)}else{this.http_post("group-create",{_source:this.env.source,_name:newname},lock)}}}return false}else{if(key==27){this.reset_add_input()}}return true};this.reset_add_input=function(){if(this.name_input){if(this.env.group_renaming){var li=this.name_input.parent();li.children().last().show();this.env.group_renaming=false}this.name_input.remove();if(this.name_input_li){this.name_input_li.remove()}this.name_input=this.name_input_li=null}this.enable_command("list","listgroup",true)};this.insert_contact_group=function(prop){this.reset_add_input();prop.type="group";var key="G"+prop.source+prop.id,link=$("<a>").attr("href","#").attr("rel",prop.source+":"+prop.id).click(function(){return rcmail.command("listgroup",prop,this)}).html(prop.name),li=$("<li>").attr({id:"rcmli"+this.html_identifier(key),"class":"contactgroup"}).append(link);this.env.contactfolders[key]=this.env.contactgroups[key]=prop;this.add_contact_group_row(prop,li);this.triggerEvent("group_insert",{id:prop.id,source:prop.source,name:prop.name,li:li[0]})};this.update_contact_group=function(prop){this.reset_add_input();var key="G"+prop.source+prop.id,li=this.get_folder_li(key),link;if(li&&prop.newid){var newkey="G"+prop.source+prop.newid,newprop=$.extend({},prop);li.id="rcmli"+this.html_identifier(newkey);this.env.contactfolders[newkey]=this.env.contactfolders[key];this.env.contactfolders[newkey].id=prop.newid;this.env.group=prop.newid;delete this.env.contactfolders[key];delete this.env.contactgroups[key];newprop.id=prop.newid;newprop.type="group";link=$("<a>").attr("href","#").attr("rel",prop.source+":"+prop.newid).click(function(){return rcmail.command("listgroup",newprop,this)}).html(prop.name);$(li).children().replaceWith(link)}else{if(li&&(link=li.firstChild)&&link.tagName.toLowerCase()=="a"){link.innerHTML=prop.name}}this.env.contactfolders[key].name=this.env.contactgroups[key].name=prop.name;this.add_contact_group_row(prop,$(li),true);this.triggerEvent("group_update",{id:prop.id,source:prop.source,name:prop.name,li:li[0],newid:prop.newid})};this.add_contact_group_row=function(prop,li,reloc){var row,name=prop.name.toUpperCase(),sibling=this.get_folder_li(prop.source),prefix="rcmliG"+this.html_identifier(prop.source);if(reloc){row=li.clone(true);li.remove()}else{row=li}$('li[id^="'+prefix+'"]',this.gui_objects.folderlist).each(function(i,elem){if(name>=$(this).text().toUpperCase()){sibling=elem}else{return false}});row.insertAfter(sibling)};this.update_group_commands=function(){var source=this.env.source!=""?this.env.address_sources[this.env.source]:null;this.enable_command("group-create",(source&&source.groups&&!source.readonly));this.enable_command("group-rename","group-delete",(source&&source.groups&&this.env.group&&!source.readonly))};this.init_edit_field=function(col,elem){var label=this.env.coltypes[col].label;if(!elem){elem=$(".ff_"+col)}if(label){elem.placeholder(label)}};this.insert_edit_field=function(col,section,menu){var elem=$("#ff_"+col);if(elem.length){elem.show().focus();$(menu).children('option[value="'+col+'"]').prop("disabled",true)}else{var lastelem=$(".ff_"+col),appendcontainer=$("#contactsection"+section+" .contactcontroller"+col);if(!appendcontainer.length){var sect=$("#contactsection"+section),lastgroup=$(".contactfieldgroup",sect).last();appendcontainer=$("<fieldset>").addClass("contactfieldgroup contactcontroller"+col);if(lastgroup.length){appendcontainer.insertAfter(lastgroup)}else{sect.prepend(appendcontainer)}}if(appendcontainer.length&&appendcontainer.get(0).nodeName=="FIELDSET"){var input,colprop=this.env.coltypes[col],row=$("<div>").addClass("row"),cell=$("<div>").addClass("contactfieldcontent data"),label=$("<div>").addClass("contactfieldlabel label");if(colprop.subtypes_select){label.html(colprop.subtypes_select)}else{label.html(colprop.label)}var name_suffix=colprop.limit!=1?"[]":"";if(colprop.type=="text"||colprop.type=="date"){input=$("<input>").addClass("ff_"+col).attr({type:"text",name:"_"+col+name_suffix,size:colprop.size}).appendTo(cell);this.init_edit_field(col,input);if(colprop.type=="date"&&$.datepicker){input.datepicker()}}else{if(colprop.type=="textarea"){input=$("<textarea>").addClass("ff_"+col).attr({name:"_"+col+name_suffix,cols:colprop.size,rows:colprop.rows}).appendTo(cell);this.init_edit_field(col,input)}else{if(colprop.type=="composite"){var childcol,cp,first,templ,cols=[],suffices=[];if((templ=this.env[col+"_template"])){for(var j=0;j<templ.length;j++){cols.push(templ[j][1]);suffices.push(templ[j][2])}}else{for(childcol in colprop.childs){cols.push(childcol)}}for(var i=0;i<cols.length;i++){childcol=cols[i];cp=colprop.childs[childcol];input=$("<input>").addClass("ff_"+childcol).attr({type:"text",name:"_"+childcol+name_suffix,size:cp.size}).appendTo(cell);cell.append(suffices[i]||" ");this.init_edit_field(childcol,input);if(!first){first=input}}input=first}else{if(colprop.type=="select"){input=$("<select>").addClass("ff_"+col).attr("name","_"+col+name_suffix).appendTo(cell);var options=input.attr("options");options[options.length]=new Option("---","");if(colprop.options){$.each(colprop.options,function(i,val){options[options.length]=new Option(val,i)})}}}}}if(input){var delbutton=$('<a href="#del"></a>').addClass("contactfieldbutton deletebutton").attr({title:this.get_label("delete"),rel:col}).html(this.env.delbutton).click(function(){ref.delete_edit_field(this);return false}).appendTo(cell);row.append(label).append(cell).appendTo(appendcontainer.show());input.first().focus();if(!colprop.count){colprop.count=0}if(++colprop.count==colprop.limit&&colprop.limit){$(menu).children('option[value="'+col+'"]').prop("disabled",true)}}}}};this.delete_edit_field=function(elem){var col=$(elem).attr("rel"),colprop=this.env.coltypes[col],fieldset=$(elem).parents("fieldset.contactfieldgroup"),addmenu=fieldset.parent().find("select.addfieldmenu");if(--colprop.count<=0&&colprop.visible){$(elem).parent().children("input").val("").blur()}else{$(elem).parents("div.row").remove();if(!fieldset.children("div.row").length){fieldset.hide()}}if(addmenu.length){var option=addmenu.children('option[value="'+col+'"]');if(option.length){option.prop("disabled",false)}else{option=$("<option>").attr("value",col).html(colprop.label).appendTo(addmenu)}addmenu.show()}};this.upload_contact_photo=function(form){if(form&&form.elements._photo.value){this.async_upload_form(form,"upload-photo",function(e){rcmail.set_busy(false,null,rcmail.file_upload_id)});this.file_upload_id=this.set_busy(true,"uploading")}};this.replace_contact_photo=function(id){var img_src=id=="-del-"?this.env.photo_placeholder:this.env.comm_path+"&_action=photo&_source="+this.env.source+"&_cid="+this.env.cid+"&_photo="+id;this.set_photo_actions(id);$(this.gui_objects.contactphoto).children("img").attr("src",img_src)};this.photo_upload_end=function(){this.set_busy(false,null,this.file_upload_id);delete this.file_upload_id};this.set_photo_actions=function(id){var n,buttons=this.buttons["upload-photo"];for(n=0;buttons&&n<buttons.length;n++){$("a#"+buttons[n].id).html(this.get_label(id=="-del-"?"addphoto":"replacephoto"))}$("#ff_photo").val(id);this.enable_command("upload-photo",this.env.coltypes.photo?true:false);this.enable_command("delete-photo",this.env.coltypes.photo&&id!="-del-")};this.advanced_search=function(){var win,url={_form:1,_action:"search"},target=window;if(win=this.get_frame_window(this.env.contentframe)){url._framed=1;target=win;this.contact_list.clear_selection()}this.location_href(url,target,true);return true};this.unselect_directory=function(){this.select_folder("");this.enable_command("search-delete",false)};this.insert_saved_search=function(name,id){this.reset_add_input();var key="S"+id,link=$("<a>").attr("href","#").attr("rel",id).click(function(){return rcmail.command("listsearch",id,this)}).html(name),li=$("<li>").attr({id:"rcmli"+this.html_identifier(key),"class":"contactsearch"}).append(link),prop={name:name,id:id,li:li[0]};this.add_saved_search_row(prop,li);this.select_folder("S"+id);this.enable_command("search-delete",true);this.env.search_id=id;this.triggerEvent("abook_search_insert",prop)};this.add_saved_search_row=function(prop,li,reloc){var row,sibling,name=prop.name.toUpperCase();if(reloc){row=li.clone(true);li.remove()}else{row=li}$('li[class~="contactsearch"]',this.gui_objects.folderlist).each(function(i,elem){if(!sibling){sibling=this.previousSibling}if(name>=$(this).text().toUpperCase()){sibling=elem}else{return false}});if(sibling){row.insertAfter(sibling)}else{row.appendTo(this.gui_objects.folderlist)}};this.search_create=function(){this.add_input_row("contactsearch")};this.search_delete=function(){if(this.env.search_request){var lock=this.set_busy(true,"savedsearchdeleting");this.http_post("search-delete",{_sid:this.env.search_id},lock)}};this.remove_search_item=function(id){var li,key="S"+id;if((li=this.get_folder_li(key))){this.triggerEvent("search_delete",{id:id,li:li});li.parentNode.removeChild(li)}this.env.search_id=null;this.env.search_request=null;this.list_contacts_clear();this.reset_qsearch();this.enable_command("search-delete","search-create",false)};this.listsearch=function(id){var folder,lock=this.set_busy(true,"searching");if(this.contact_list){this.list_contacts_clear()}this.reset_qsearch();this.select_folder("S"+id);this.env.current_page=1;this.http_request("search",{_sid:id},lock)};this.section_select=function(list){var win,id=list.get_single_selection(),target=window,url={_action:"edit-prefs",_section:id};if(id){if(win=this.get_frame_window(this.env.contentframe)){url._framed=1;target=win}this.location_href(url,target,true)}return true};this.identity_select=function(list){var id;if(id=list.get_single_selection()){this.enable_command("delete",list.rowcount>1&&this.env.identities_level<2);this.load_identity(id,"edit-identity")}};this.load_identity=function(id,action){if(action=="edit-identity"&&(!id||id==this.env.iid)){return false}var win,target=window,url={_action:action,_iid:id};if(win=this.get_frame_window(this.env.contentframe)){url._framed=1;target=win}if(action&&(id||action=="add-identity")){this.set_busy(true);this.location_href(url,target)}return true};this.delete_identity=function(id){var selection=this.identity_list.get_selection();if(!(selection.length||this.env.iid)){return}if(!id){id=this.env.iid?this.env.iid:selection[0]}if(confirm(this.get_label("deleteidentityconfirm"))){this.goto_url("delete-identity",{_iid:id,_token:this.env.request_token},true)}return true};this.update_identity_row=function(id,name,add){var row,col,list=this.identity_list,rid=this.html_identifier(id);if(list.rows[rid]&&(row=list.rows[rid].obj)){$(row.cells[0]).html(name)}else{if(add){row=$("<tr>").attr("id","rcmrow"+rid).get(0);col=$("<td>").addClass("mail").html(name).appendTo(row);list.insert_row(row);list.select(rid)}}};this.init_subscription_list=function(){var p=this;this.subscription_list=new rcube_list_widget(this.gui_objects.subscriptionlist,{multiselect:false,draggable:true,keyboard:false,toggleselect:true});this.subscription_list.addEventListener("select",function(o){p.subscription_select(o)});this.subscription_list.addEventListener("dragstart",function(o){p.drag_active=true});this.subscription_list.addEventListener("dragend",function(o){p.subscription_move_folder(o)});this.subscription_list.row_init=function(row){row.obj.onmouseover=function(){p.focus_subscription(row.id)};row.obj.onmouseout=function(){p.unfocus_subscription(row.id)}};this.subscription_list.init();$("#mailboxroot").mouseover(function(){p.focus_subscription(this.id)}).mouseout(function(){p.unfocus_subscription(this.id)})};this.focus_subscription=function(id){var row,folder,delim=RegExp.escape(this.env.delimiter),reg=RegExp("["+delim+"]?[^"+delim+"]+$");if(this.drag_active&&this.env.mailbox&&(row=document.getElementById(id))){if(this.env.subscriptionrows[id]&&(folder=this.env.subscriptionrows[id][0])!==null){if(this.check_droptarget(folder)&&!this.env.subscriptionrows[this.get_folder_row_id(this.env.mailbox)][2]&&(folder!=this.env.mailbox.replace(reg,""))&&(!folder.match(new RegExp("^"+RegExp.escape(this.env.mailbox+this.env.delimiter))))){this.env.dstfolder=folder;$(row).addClass("droptarget")}}}};this.unfocus_subscription=function(id){var row=$("#"+id);this.env.dstfolder=null;if(this.env.subscriptionrows[id]&&row[0]){row.removeClass("droptarget")}else{$(this.subscription_list.frame).removeClass("droptarget")}};this.subscription_select=function(list){var id,folder;if(list&&(id=list.get_single_selection())&&(folder=this.env.subscriptionrows["rcmrow"+id])){this.env.mailbox=folder[0];this.show_folder(folder[0]);this.enable_command("delete-folder",!folder[2])}else{this.env.mailbox=null;this.show_contentframe(false);this.enable_command("delete-folder","purge",false)}};this.subscription_move_folder=function(list){var delim=RegExp.escape(this.env.delimiter),reg=RegExp("["+delim+"]?[^"+delim+"]+$");if(this.env.mailbox&&this.env.dstfolder!==null&&(this.env.dstfolder!=this.env.mailbox)&&(this.env.dstfolder!=this.env.mailbox.replace(reg,""))){reg=new RegExp("[^"+delim+"]*["+delim+"]","g");var basename=this.env.mailbox.replace(reg,""),newname=this.env.dstfolder===""?basename:this.env.dstfolder+this.env.delimiter+basename;if(newname!=this.env.mailbox){this.http_post("rename-folder",{_folder_oldname:this.env.mailbox,_folder_newname:newname},this.set_busy(true,"foldermoving"));this.subscription_list.draglayer.hide()}}this.drag_active=false;this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder))};this.create_folder=function(){this.show_folder("",this.env.mailbox)};this.delete_folder=function(name){var id=this.get_folder_row_id(name?name:this.env.mailbox),folder=this.env.subscriptionrows[id][0];if(folder&&confirm(this.get_label("deletefolderconfirm"))){var lock=this.set_busy(true,"folderdeleting");this.http_post("delete-folder",{_mbox:folder},lock)}};this.add_folder_row=function(name,display_name,is_protected,subscribed,skip_init,class_name){if(!this.gui_objects.subscriptionlist){return false}var row,n,i,tmp,tmp_name,folders,rowid,list=[],slist=[],tbody=this.gui_objects.subscriptionlist.tBodies[0],refrow=$("tr",tbody).get(1),id="rcmrow"+((new Date).getTime());if(!refrow){this.goto_url("folders");return false}row=$(refrow).clone(true);row.attr("id",id);row.attr("class",class_name);row.find("td:first").html(display_name);$('input[name="_subscribed[]"]',row).val(name).prop({checked:subscribed?true:false,disabled:is_protected?true:false});this.env.subscriptionrows[id]=[name,display_name,0];folders=[];$.each(this.env.subscriptionrows,function(k,v){folders.push(v)});folders.sort(function(a,b){return a[0]<b[0]?-1:(a[0]>b[0]?1:0)});for(n in folders){if(folders[n][2]){tmp_name=folders[n][0]+this.env.delimiter;if(tmp_name==this.env.prefix_ns){continue}slist.push(folders[n][0]);tmp=tmp_name}else{if(tmp&&folders[n][0].indexOf(tmp)==0){slist.push(folders[n][0])}else{list.push(folders[n][0]);tmp=null}}}for(n=0;n<slist.length;n++){if(name.indexOf(slist[n]+this.env.delimiter)==0){rowid=this.get_folder_row_id(slist[n])}}for(n=0;!rowid&&n<list.length;n++){if(n&&list[n]==name){rowid=this.get_folder_row_id(list[n-1])}}if(rowid){$("#"+rowid).after(row)}else{row.appendTo(tbody)}this.subscription_list.clear_selection();if(!skip_init){this.init_subscription_list()}row=row.get(0);if(row.scrollIntoView){row.scrollIntoView()}return row};this.replace_folder_row=function(oldfolder,newfolder,display_name,is_protected,class_name){if(!this.gui_objects.subscriptionlist){return false}var i,n,len,name,dispname,oldrow,tmprow,row,level,tbody=this.gui_objects.subscriptionlist.tBodies[0],folders=this.env.subscriptionrows,id=this.get_folder_row_id(oldfolder),regex=new RegExp("^"+RegExp.escape(oldfolder)),subscribed=$('input[name="_subscribed[]"]',$("#"+id)).prop("checked"),list=this.get_subfolders(oldfolder);this._remove_folder_row(id);row=$(this.add_folder_row(newfolder,display_name,is_protected,subscribed,true,class_name));if(len=list.length){level=(oldfolder.split(this.env.delimiter)).length-(newfolder.split(this.env.delimiter)).length}for(n=0;n<len;n++){id=list[n];name=this.env.subscriptionrows[id][0];dispname=this.env.subscriptionrows[id][1];oldrow=$("#"+id);tmprow=oldrow.clone(true);oldrow.remove();row.after(tmprow);row=tmprow;name=name.replace(regex,newfolder);$('input[name="_subscribed[]"]',row).val(name);this.env.subscriptionrows[id][0]=name;if(level!=0){if(level>0){for(i=level;i>0;i--){dispname=dispname.replace(/^&nbsp;&nbsp;&nbsp;&nbsp;/,"")}}else{for(i=level;i<0;i++){dispname="&nbsp;&nbsp;&nbsp;&nbsp;"+dispname}}row.find("td:first").html(dispname);this.env.subscriptionrows[id][1]=dispname}}this.init_subscription_list()};this.remove_folder_row=function(folder,subs){var n,len,list=[],id=this.get_folder_row_id(folder);if(subs){list=this.get_subfolders(folder)}this._remove_folder_row(id);for(n=0,len=list.length;n<len;n++){this._remove_folder_row(list[n])}};this._remove_folder_row=function(id){this.subscription_list.remove_row(id.replace(/^rcmrow/,""));$("#"+id).remove();delete this.env.subscriptionrows[id]};this.get_subfolders=function(folder){var name,list=[],regex=new RegExp("^"+RegExp.escape(folder)+RegExp.escape(this.env.delimiter)),row=$("#"+this.get_folder_row_id(folder)).get(0);while(row=row.nextSibling){if(row.id){name=this.env.subscriptionrows[row.id][0];if(regex.test(name)){list.push(row.id)}else{break}}}return list};this.subscribe=function(folder){if(folder){var lock=this.display_message(this.get_label("foldersubscribing"),"loading");this.http_post("subscribe",{_mbox:folder},lock)}};this.unsubscribe=function(folder){if(folder){var lock=this.display_message(this.get_label("folderunsubscribing"),"loading");this.http_post("unsubscribe",{_mbox:folder},lock)}};this.get_folder_row_id=function(folder){var id,folders=this.env.subscriptionrows;for(id in folders){if(folders[id]&&folders[id][0]==folder){break}}return id};this.show_folder=function(folder,path,force){var win,target=window,url="&_action=edit-folder&_mbox="+urlencode(folder);if(path){url+="&_path="+urlencode(path)}if(win=this.get_frame_window(this.env.contentframe)){target=win;url+="&_framed=1"}if(String(target.location.href).indexOf(url)>=0&&!force){this.show_contentframe(true)}else{this.location_href(this.env.comm_path+url,target,true)}};this.disable_subscription=function(folder){var id=this.get_folder_row_id(folder);if(id){$('input[name="_subscribed[]"]',$("#"+id)).prop("disabled",true)}};this.folder_size=function(folder){var lock=this.set_busy(true,"loading");this.http_post("folder-size",{_mbox:folder},lock)};this.folder_size_update=function(size){$("#folder-size").replaceWith(size)};var init_button=function(cmd,prop){var elm=document.getElementById(prop.id);if(!elm){return}var preload=false;if(prop.type=="image"){elm=elm.parentNode;preload=true}elm._command=cmd;elm._id=prop.id;if(prop.sel){elm.onmousedown=function(e){return rcmail.button_sel(this._command,this._id)};elm.onmouseup=function(e){return rcmail.button_out(this._command,this._id)};if(preload){new Image().src=prop.sel}}if(prop.over){elm.onmouseover=function(e){return rcmail.button_over(this._command,this._id)};elm.onmouseout=function(e){return rcmail.button_out(this._command,this._id)};if(preload){new Image().src=prop.over}}};this.init_buttons=function(){for(var cmd in this.buttons){if(typeof cmd!=="string"){continue}for(var i=0;i<this.buttons[cmd].length;i++){init_button(cmd,this.buttons[cmd][i])}}this.set_button(this.task,"sel")};this.set_button=function(command,state){var n,button,obj,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];obj=document.getElementById(button.id);if(!obj){continue}if(button.type=="image"&&!button.status){button.pas=obj._original_src?obj._original_src:obj.src;if(obj.runtimeStyle&&obj.runtimeStyle.filter&&obj.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/)){button.pas=RegExp.$1}}else{if(!button.status){button.pas=String(obj.className)}}if(button.type=="image"&&button[state]){button.status=state;obj.src=button[state]}else{if(button[state]!==undefined){button.status=state;obj.className=button[state]}}if(button.type=="input"){button.status=state;obj.disabled=!state}}};this.set_alttext=function(command,label){var n,button,obj,link,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];obj=document.getElementById(button.id);if(button.type=="image"&&obj){obj.setAttribute("alt",this.get_label(label));if((link=obj.parentNode)&&link.tagName.toLowerCase()=="a"){link.setAttribute("title",this.get_label(label))}}else{if(obj){obj.setAttribute("title",this.get_label(label))}}}};this.button_over=function(command,id){var n,button,obj,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];if(button.id==id&&button.status=="act"){obj=document.getElementById(button.id);if(obj&&button.over){if(button.type=="image"){obj.src=button.over}else{obj.className=button.over}}}}};this.button_sel=function(command,id){var n,button,obj,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];if(button.id==id&&button.status=="act"){obj=document.getElementById(button.id);if(obj&&button.sel){if(button.type=="image"){obj.src=button.sel}else{obj.className=button.sel}}this.buttons_sel[id]=command}}};this.button_out=function(command,id){var n,button,obj,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];if(button.id==id&&button.status=="act"){obj=document.getElementById(button.id);if(obj&&button.act){if(button.type=="image"){obj.src=button.act}else{obj.className=button.act}}}}};this.set_pagetitle=function(title){if(title&&document.title){document.title=title}};this.display_message=function(msg,type,timeout){if(this.is_framed()){return parent.rcmail.display_message(msg,type,timeout)}if(!this.gui_objects.message){if(type!="loading"){this.pending_message=[msg,type,timeout]}return 1}type=type?type:"notice";var ref=this,key=this.html_identifier(msg),date=new Date(),id=type+date.getTime();if(!timeout){timeout=this.message_time*(type=="error"||type=="warning"?2:1)}if(type=="loading"){key="loading";timeout=this.env.request_timeout*1000;if(!msg){msg=this.get_label("loading")}}if(this.messages[key]){if(this.messages[key].obj){this.messages[key].obj.html(msg)}if(type=="loading"){this.messages[key].labels.push({id:id,msg:msg})}this.messages[key].elements.push(id);setTimeout(function(){ref.hide_message(id,type=="loading")},timeout);return id}var obj=$("<div>").addClass(type).html(msg).data("key",key),cont=$(this.gui_objects.message).append(obj).show();this.messages[key]={obj:obj,elements:[id]};if(type=="loading"){this.messages[key].labels=[{id:id,msg:msg}]}else{obj.click(function(){return ref.hide_message(obj)})}this.triggerEvent("message",{message:msg,type:type,timeout:timeout,object:obj});if(timeout>0){setTimeout(function(){ref.hide_message(id,type=="loading")},timeout)}return id};this.hide_message=function(obj,fade){if(this.is_framed()){return parent.rcmail.hide_message(obj,fade)}if(!this.gui_objects.message){return}var k,n,i,msg,m=this.messages;if(typeof obj==="object"){$(obj)[fade?"fadeOut":"hide"]();msg=$(obj).data("key");if(this.messages[msg]){delete this.messages[msg]}}else{for(k in m){for(n in m[k].elements){if(m[k]&&m[k].elements[n]==obj){m[k].elements.splice(n,1);if(!m[k].elements.length){m[k].obj[fade?"fadeOut":"hide"]();delete m[k]}else{if(k=="loading"){for(i in m[k].labels){if(m[k].labels[i].id==obj){delete m[k].labels[i]}else{msg=m[k].labels[i].msg}m[k].obj.html(msg)}}}}}}}};this.clear_messages=function(){if(this.is_framed()){return parent.rcmail.clear_messages()}var k,n,m=this.messages;for(k in m){for(n in m[k].elements){if(m[k].obj){m[k].obj.hide()}}}this.messages={}};this.show_popup_dialog=function(html,title){if(this.is_framed()){parent.rcmail.show_popup_dialog(html,title);return}var popup=$('<div class="popup">').html(html).dialog({title:title,modal:true,resizable:true,width:580,close:function(event,ui){$(this).remove()}});var win=$(window),w=win.width(),h=win.height(),width=popup.width(),height=popup.height();popup.dialog("option",{height:Math.min(h-40,height+50),width:Math.min(w-20,width+50)}).dialog("option","position",["center","center"])};this.set_page_buttons=function(){this.enable_command("nextpage","lastpage",(this.env.pagecount>this.env.current_page));this.enable_command("previouspage","firstpage",(this.env.current_page>1))};this.select_folder=function(name,prefix,encode){if(this.gui_objects.folderlist){var current_li,target_li;if((current_li=$("li.selected",this.gui_objects.folderlist))){current_li.removeClass("selected").addClass("unfocused")}if((target_li=this.get_folder_li(name,prefix,encode))){$(target_li).removeClass("unfocused").addClass("selected")}this.triggerEvent("selectfolder",{folder:name,prefix:prefix})}};this.mark_folder=function(name,class_name,prefix,encode){$(this.get_folder_li(name,prefix,encode)).addClass(class_name)};this.unmark_folder=function(name,class_name,prefix,encode){$(this.get_folder_li(name,prefix,encode)).removeClass(class_name)};this.get_folder_li=function(name,prefix,encode){if(!prefix){prefix="rcmli"}if(this.gui_objects.folderlist){name=this.html_identifier(name,encode);return document.getElementById(prefix+name)}return null};this.set_message_coltypes=function(coltypes,repl,smart_col){var list=this.message_list,thead=list?list.list.tHead:null,cell,col,n,len,th,tr;this.env.coltypes=coltypes;if(thead){if(repl){th=document.createElement("thead");tr=document.createElement("tr");for(c=0,len=repl.length;c<len;c++){cell=document.createElement("td");cell.innerHTML=repl[c].html||"";if(repl[c].id){cell.id=repl[c].id}if(repl[c].className){cell.className=repl[c].className}tr.appendChild(cell)}th.appendChild(tr);thead.parentNode.replaceChild(th,thead);list.thead=thead=th}for(n=0,len=this.env.coltypes.length;n<len;n++){col=this.env.coltypes[n];if((cell=thead.rows[0].cells[n])&&(col=="from"||col=="to"||col=="fromto")){cell.id="rcm"+col;$("span,a",cell).text(this.get_label(col=="fromto"?smart_col:col));$("a",cell).click(function(){return rcmail.command("sort",this.id.replace(/^rcm/,""),this)})}}}this.env.subject_col=null;this.env.flagged_col=null;this.env.status_col=null;if((n=$.inArray("subject",this.env.coltypes))>=0){this.env.subject_col=n;if(list){list.subject_col=n}}if((n=$.inArray("flag",this.env.coltypes))>=0){this.env.flagged_col=n}if((n=$.inArray("status",this.env.coltypes))>=0){this.env.status_col=n}if(list){list.init_header()}};this.set_rowcount=function(text,mbox){if(mbox&&mbox!=this.env.mailbox){return false}$(this.gui_objects.countdisplay).html(text);this.set_page_buttons()};this.set_mailboxname=function(content){if(this.gui_objects.mailboxname&&content){this.gui_objects.mailboxname.innerHTML=content}};this.set_quota=function(content){if(this.gui_objects.quotadisplay&&content&&content.type=="text"){$(this.gui_objects.quotadisplay).html(content.percent+"%").attr("title",content.title)}this.triggerEvent("setquota",content);this.env.quota_content=content};this.set_unread_count=function(mbox,count,set_title,mark){if(!this.gui_objects.mailboxlist){return false}this.env.unread_counts[mbox]=count;this.set_unread_count_display(mbox,set_title);if(mark){this.mark_folder(mbox,mark,"",true)}else{if(!count){this.unmark_folder(mbox,"recent","",true)}}};this.set_unread_count_display=function(mbox,set_title){var reg,link,text_obj,item,mycount,childcount,div;if(item=this.get_folder_li(mbox,"",true)){mycount=this.env.unread_counts[mbox]?this.env.unread_counts[mbox]:0;link=$(item).children("a").eq(0);text_obj=link.children("span.unreadcount");if(!text_obj.length&&mycount){text_obj=$("<span>").addClass("unreadcount").appendTo(link)}reg=/\s+\([0-9]+\)$/i;childcount=0;if((div=item.getElementsByTagName("div")[0])&&div.className.match(/collapsed/)){for(var k in this.env.unread_counts){if(k.indexOf(mbox+this.env.delimiter)==0){childcount+=this.env.unread_counts[k]}}}if(mycount&&text_obj.length){text_obj.html(this.env.unreadwrap.replace(/%[sd]/,mycount))}else{if(text_obj.length){text_obj.remove()}}reg=new RegExp(RegExp.escape(this.env.delimiter)+"[^"+RegExp.escape(this.env.delimiter)+"]+$");if(mbox.match(reg)){this.set_unread_count_display(mbox.replace(reg,""),false)}if((mycount+childcount)>0){$(item).addClass("unread")}else{$(item).removeClass("unread")}}reg=/^\([0-9]+\)\s+/i;if(set_title&&document.title){var new_title="",doc_title=String(document.title);if(mycount&&doc_title.match(reg)){new_title=doc_title.replace(reg,"("+mycount+") ")}else{if(mycount){new_title="("+mycount+") "+doc_title}else{new_title=doc_title.replace(reg,"")}}this.set_pagetitle(new_title)}};this.set_headers=function(content){if(this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&content){$(this.gui_objects.all_headers_box).html(content).show()}};this.show_headers=function(props,elem){if(!this.gui_objects.all_headers_row||!this.gui_objects.all_headers_box||!this.env.uid){return}$(elem).removeClass("show-headers").addClass("hide-headers");$(this.gui_objects.all_headers_row).show();elem.onclick=function(){rcmail.command("hide-headers","",elem)};if(!this.gui_objects.all_headers_box.innerHTML){var lock=this.display_message(this.get_label("loading"),"loading");this.http_post("headers",{_uid:this.env.uid},lock)}};this.hide_headers=function(props,elem){if(!this.gui_objects.all_headers_row||!this.gui_objects.all_headers_box){return}$(elem).removeClass("hide-headers").addClass("show-headers");$(this.gui_objects.all_headers_row).hide();elem.onclick=function(){rcmail.command("show-headers","",elem)}};this.html2plain=function(htmlText,id){var rcmail=this,url="?_task=utils&_action=html2text",lock=this.set_busy(true,"converting");this.log("HTTP POST: "+url);$.ajax({type:"POST",url:url,data:htmlText,contentType:"application/octet-stream",error:function(o,status,err){rcmail.http_error(o,status,err,lock)},success:function(data){rcmail.set_busy(false,null,lock);$("#"+id).val(data);rcmail.log(data)}})};this.plain2html=function(plain,id){var lock=this.set_busy(true,"converting");plain=plain.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");$("#"+id).val(plain?"<pre>"+plain+"</pre>":"");this.set_busy(false,null,lock)};this.url=function(action,query){var querystring=typeof query==="string"?"&"+query:"";if(typeof action!=="string"){query=action}else{if(!query||typeof query!=="object"){query={}}}if(action){query._action=action}else{query._action=this.env.action}var base=this.env.comm_path,k,param={};if(query._action.match(/([a-z]+)\/([a-z0-9-_.]+)/)){query._action=RegExp.$2;base=base.replace(/\_task=[a-z]+/,"_task="+RegExp.$1)}for(k in query){if(query[k]!==undefined&&query[k]!==null){param[k]=query[k]}}return base+"&"+$.param(param)+querystring};this.redirect=function(url,lock){if(lock||lock===null){this.set_busy(true)}if(this.is_framed()){parent.rcmail.redirect(url,lock)}else{if(this.env.extwin){if(typeof url=="string"){url+=(url.indexOf("?")<0?"?":"&")+"_extwin=1"}else{url._extwin=1}}this.location_href(url,window)}};this.goto_url=function(action,query,lock){this.redirect(this.url(action,query))};this.location_href=function(url,target,frame){if(frame){this.lock_frame()}if(typeof url=="object"){url=this.env.comm_path+"&"+$.param(url)}if(bw.ie&&target==window){$("<a>").attr("href",url).appendTo(document.body).get(0).click()}else{target.location.href=url}this.start_keepalive()};this.http_request=function(action,query,lock){var url=this.url(action,query);var result=this.triggerEvent("request"+action,query);if(result!==undefined){if(result===false){return false}else{query=result}}url+="&_remote=1";this.log("HTTP GET: "+url);this.start_keepalive();return $.ajax({type:"GET",url:url,data:{_unlock:(lock?lock:0)},dataType:"json",success:function(data){ref.http_response(data)},error:function(o,status,err){ref.http_error(o,status,err,lock,action)}})};this.http_post=function(action,postdata,lock){var url=this.url(action);if(postdata&&typeof postdata==="object"){postdata._remote=1;postdata._unlock=(lock?lock:0)}else{postdata+=(postdata?"&":"")+"_remote=1"+(lock?"&_unlock="+lock:"")}var result=this.triggerEvent("request"+action,postdata);if(result!==undefined){if(result===false){return false}else{postdata=result}}this.log("HTTP POST: "+url);this.start_keepalive();return $.ajax({type:"POST",url:url,data:postdata,dataType:"json",success:function(data){ref.http_response(data)},error:function(o,status,err){ref.http_error(o,status,err,lock,action)}})};this.abort_request=function(r){if(r.request){r.request.abort()}if(r.lock){this.set_busy(false,null,r.lock)}};this.http_response=function(response){if(!response){return}if(response.unlock){this.set_busy(false)}this.triggerEvent("responsebefore",{response:response});this.triggerEvent("responsebefore"+response.action,{response:response});if(response.env){this.set_env(response.env)}if(typeof response.texts==="object"){for(var name in response.texts){if(typeof response.texts[name]==="string"){this.add_label(name,response.texts[name])}}}if(response.exec){this.log(response.exec);eval(response.exec)}if(response.callbacks&&response.callbacks.length){for(var i=0;i<response.callbacks.length;i++){this.triggerEvent(response.callbacks[i][0],response.callbacks[i][1])}}switch(response.action){case"delete":if(this.task=="addressbook"){var sid,uid=this.contact_list.get_selection(),writable=false;if(uid&&this.contact_list.rows[uid]){if(this.env.source==""){sid=String(uid).replace(/^[^-]+-/,"");writable=sid&&this.env.address_sources[sid]&&!this.env.address_sources[sid].readonly}else{writable=!this.env.address_sources[this.env.source].readonly}}this.enable_command("compose",(uid&&this.contact_list.rows[uid]));this.enable_command("delete","edit",writable);this.enable_command("export",(this.contact_list&&this.contact_list.rowcount>0))}case"moveto":if(this.env.action=="show"){this.enable_command(this.env.message_commands,true);if(!this.env.list_post){this.enable_command("reply-list",false)}}else{if(this.task=="addressbook"){this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount})}}case"purge":case"expunge":if(this.task=="mail"){if(!this.env.exists){if(this.env.contentframe){this.show_contentframe(false)}this.enable_command(this.env.message_commands,"purge","expunge","select-all","select-none","expand-all","expand-unread","collapse-all",false)}if(this.message_list){this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount})}}break;case"refresh":case"check-recent":case"getunread":case"search":this.env.qsearch=null;case"list":if(this.task=="mail"){this.enable_command("show","select-all","select-none",this.env.messagecount>0);this.enable_command("expunge",this.env.exists);this.enable_command("purge",this.purge_mailbox_test());this.enable_command("expand-all","expand-unread","collapse-all",this.env.threading&&this.env.messagecount);if((response.action=="list"||response.action=="search")&&this.message_list){this.msglist_select(this.message_list);this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount})}}else{if(this.task=="addressbook"){this.enable_command("export",(this.contact_list&&this.contact_list.rowcount>0));if(response.action=="list"||response.action=="search"){this.enable_command("search-create",this.env.source=="");this.enable_command("search-delete",this.env.search_id);this.update_group_commands();this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount})}}}break}if(response.unlock){this.hide_message(response.unlock)}this.triggerEvent("responseafter",{response:response});this.triggerEvent("responseafter"+response.action,{response:response});this.start_keepalive()};this.http_error=function(request,status,err,lock,action){var errmsg=request.statusText;this.set_busy(false,null,lock);request.abort();if(this.unload){return}if(request.status&&errmsg){this.display_message(this.get_label("servererror")+" ("+errmsg+")","error")}else{if(status=="timeout"){this.display_message(this.get_label("requesttimedout"),"error")}else{if(request.status==0&&status!="abort"){this.display_message(this.get_label("servererror")+" (No connection)","error")}}}var location_url=request.getResponseHeader("Location");if(location_url&&this.env.action!="compose"){this.redirect(location_url)}if(request.status==403){(this.is_framed()?parent:window).location.reload();return}if(action=="keep-alive"){setTimeout(function(){ref.keep_alive();ref.start_keepalive()},30000)}};this.iframe_loaded=function(unlock){this.set_busy(false,null,unlock);if(this.submit_timer){clearTimeout(this.submit_timer)}};this.async_upload_form=function(form,action,onload){var frame,ts=new Date().getTime(),frame_name="rcmupload"+ts;if(this.env.upload_progress_name){var fname=this.env.upload_progress_name,field=$("input[name="+fname+"]",form);if(!field.length){field=$("<input>").attr({type:"hidden",name:fname});field.prependTo(form)}field.val(ts)}if(document.all){document.body.insertAdjacentHTML("BeforeEnd",'<iframe name="'+frame_name+'" src="program/resources/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>');frame=$('iframe[name="'+frame_name+'"]')}else{frame=$("<iframe>").attr("name",frame_name).css({border:"none",width:0,height:0,visibility:"hidden"}).appendTo(document.body)}frame.bind("load",{ts:ts},onload);$(form).attr({target:frame_name,action:this.url(action,{_id:this.env.compose_id||"",_uploadid:ts}),method:"POST"}).attr(form.encoding?"encoding":"enctype","multipart/form-data").submit();return frame_name};this.document_drag_hover=function(e,over){e.preventDefault();$(ref.gui_objects.filedrop)[(over?"addClass":"removeClass")]("active")};this.file_drag_hover=function(e,over){e.preventDefault();e.stopPropagation();$(ref.gui_objects.filedrop)[(over?"addClass":"removeClass")]("hover")};this.file_dropped=function(e){this.file_drag_hover(e,false);var files=e.target.files||e.dataTransfer.files,formdata=window.FormData?new FormData():null,fieldname=(this.env.filedrop.fieldname||"_file")+(this.env.filedrop.single?"":"[]"),boundary="------multipartformboundary"+(new Date).getTime(),dashdash="--",crlf="\r\n",multipart=dashdash+boundary+crlf;if(!files||!files.length){return}var submit_data=function(){var multiple=files.length>1,ts=new Date().getTime(),content="<span>"+(multiple?ref.get_label("uploadingmany"):files[0].name)+"</span>";if(!ref.add2attachment_list(ts,{name:"",html:content,classname:"uploading",complete:false})){ref.file_upload_id=ref.set_busy(true,"uploading")}multipart+=dashdash+boundary+dashdash+crlf;$.ajax({type:"POST",dataType:"json",url:ref.url(ref.env.filedrop.action||"upload",{_id:ref.env.compose_id||ref.env.cid||"",_uploadid:ts,_remote:1}),contentType:formdata?false:"multipart/form-data; boundary="+boundary,processData:false,timeout:0,data:formdata||multipart,headers:{"X-Roundcube-Request":ref.env.request_token},xhr:function(){var xhr=jQuery.ajaxSettings.xhr();if(!formdata&&xhr.sendAsBinary){xhr.send=xhr.sendAsBinary}return xhr},success:function(data){ref.http_response(data)},error:function(o,status,err){ref.http_error(o,status,err,null,"attachment")}})};var last=this.env.filedrop.single?0:files.length-1;for(var j=0,i=0,f;j<=last&&(f=files[i]);i++){if(!f.name){f.name=f.fileName}if(!f.size){f.size=f.fileSize}if(!f.type){f.type="application/octet-stream"}if(!formdata&&/[^\x20-\x7E]/.test(f.name)){f.name_bin=unescape(encodeURIComponent(f.name))}if(this.env.filedrop.filter&&!f.type.match(new RegExp(this.env.filedrop.filter))){continue}if(formdata){formdata.append(fieldname,f);if(j==last){return submit_data()}}else{if(window.FileReader){var reader=new FileReader();reader.onload=(function(file,j){return function(e){multipart+='Content-Disposition: form-data; name="'+fieldname+'"';multipart+='; filename="'+(f.name_bin||file.name)+'"'+crlf;multipart+="Content-Length: "+file.size+crlf;multipart+="Content-Type: "+file.type+crlf+crlf;multipart+=reader.result+crlf;multipart+=dashdash+boundary+crlf;if(j==last){return submit_data()}}})(f,j);reader.readAsBinaryString(f)}else{if(f.getAsBinary){multipart+='Content-Disposition: form-data; name="'+fieldname+'"';multipart+='; filename="'+(f.name_bin||f.name)+'"'+crlf;multipart+="Content-Length: "+f.size+crlf;multipart+="Content-Type: "+f.type+crlf+crlf;multipart+=f.getAsBinary()+crlf;multipart+=dashdash+boundary+crlf;if(j==last){return submit_data()}}}}j++}};this.start_keepalive=function(){if(!this.env.session_lifetime||this.env.framed||this.env.extwin||this.task=="login"||this.env.action=="print"){return}if(this._keepalive){clearInterval(this._keepalive)}this._keepalive=setInterval(function(){ref.keep_alive()},this.env.session_lifetime*0.5*1000)};this.start_refresh=function(){if(!this.env.refresh_interval||this.env.framed||this.env.extwin||this.task=="login"||this.env.action=="print"){return}if(this._refresh){clearInterval(this._refresh)}this._refresh=setInterval(function(){ref.refresh()},this.env.refresh_interval*1000)};this.keep_alive=function(){if(!this.busy){this.http_request("keep-alive")}};this.refresh=function(){if(this.busy){setTimeout(function(){ref.refresh();ref.start_refresh()},10000);return}var params={},lock=this.set_busy(true,"refreshing");if(this.task=="mail"&&this.gui_objects.mailboxlist){params=this.check_recent_params()}this.http_request("refresh",params,lock)};this.check_recent_params=function(){var params={_mbox:this.env.mailbox};if(this.gui_objects.mailboxlist){params._folderlist=1}if(this.gui_objects.messagelist){params._list=1}if(this.gui_objects.quotadisplay){params._quota=1}if(this.env.search_request){params._search=this.env.search_request}return params};this.opener=function(){try{if(window.opener&&!opener.closed&&opener.rcmail){return opener.rcmail}}catch(e){}};this.get_single_uid=function(){return this.env.uid?this.env.uid:(this.message_list?this.message_list.get_single_selection():null)};this.get_single_cid=function(){return this.env.cid?this.env.cid:(this.contact_list?this.contact_list.get_single_selection():null)};this.get_caret_pos=function(obj){if(obj.selectionEnd!==undefined){return obj.selectionEnd}if(document.selection&&document.selection.createRange){var range=document.selection.createRange();if(range.parentElement()!=obj){return 0}var gm=range.duplicate();if(obj.tagName=="TEXTAREA"){gm.moveToElementText(obj)}else{gm.expand("textedit")}gm.setEndPoint("EndToStart",range);var p=gm.text.length;return p<=obj.value.length?p:-1}return obj.value.length};this.set_caret_pos=function(obj,pos){if(obj.setSelectionRange){obj.setSelectionRange(pos,pos)}else{if(obj.createTextRange){var range=obj.createTextRange();range.collapse(true);range.moveEnd("character",pos);range.moveStart("character",pos);range.select()}}};this.lock_form=function(form,lock){if(!form||!form.elements){return}var n,len,elm;if(lock){this.disabled_form_elements=[]}for(n=0,len=form.elements.length;n<len;n++){elm=form.elements[n];if(elm.type=="hidden"){continue}if(lock&&elm.disabled){this.disabled_form_elements.push(elm)}else{if(lock||(this.disabled_form_elements&&$.inArray(elm,this.disabled_form_elements)<0)){elm.disabled=lock}}}};this.mailto_handler_uri=function(){return location.href.split("?")[0]+"?_task=mail&_action=compose&_to=%s"};this.register_protocol_handler=function(name){try{window.navigator.registerProtocolHandler("mailto",this.mailto_handler_uri(),name)}catch(e){}};this.check_protocol_handler=function(name,elem){var nav=window.navigator;if(!nav||(typeof nav.registerProtocolHandler!="function")||((typeof nav.isProtocolHandlerRegistered=="function")&&nav.isProtocolHandlerRegistered("mailto",this.mailto_handler_uri())=="registered")){$(elem).addClass("disabled")}else{$(elem).click(function(){rcmail.register_protocol_handler(name);return false})}};this.browser_capabilities_check=function(){if(!this.env.browser_capabilities){this.env.browser_capabilities={}}if(this.env.browser_capabilities.pdf===undefined){this.env.browser_capabilities.pdf=this.pdf_support_check()}if(this.env.browser_capabilities.flash===undefined){this.env.browser_capabilities.flash=this.flash_support_check()}if(this.env.browser_capabilities.tif===undefined){this.tif_support_check()}};this.browser_capabilities=function(){if(!this.env.browser_capabilities){return""}var n,ret=[];for(n in this.env.browser_capabilities){ret.push(n+"="+this.env.browser_capabilities[n])}return ret.join()};this.tif_support_check=function(){var img=new Image();img.onload=function(){rcmail.env.browser_capabilities.tif=1};img.onerror=function(){rcmail.env.browser_capabilities.tif=0};img.src="program/resources/blank.tif"};this.pdf_support_check=function(){var plugin=navigator.mimeTypes?navigator.mimeTypes["application/pdf"]:{},plugins=navigator.plugins,len=plugins.length,regex=/Adobe Reader|PDF|Acrobat/i;if(plugin&&plugin.enabledPlugin){return 1}if(window.ActiveXObject){try{if(axObj=new ActiveXObject("AcroPDF.PDF")){return 1}}catch(e){}try{if(axObj=new ActiveXObject("PDF.PdfCtrl")){return 1}}catch(e){}}for(i=0;i<len;i++){plugin=plugins[i];if(typeof plugin==="String"){if(regex.test(plugin)){return 1}}else{if(plugin.name&&regex.test(plugin.name)){return 1}}}return 0};this.flash_support_check=function(){var plugin=navigator.mimeTypes?navigator.mimeTypes["application/x-shockwave-flash"]:{};if(plugin&&plugin.enabledPlugin){return 1}if(window.ActiveXObject){try{if(axObj=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")){return 1}}catch(e){}}return 0};this.set_cookie=function(name,value,expires){setCookie(name,value,expires,this.env.cookie_path,this.env.cookie_domain,this.env.cookie_secure)}}rcube_webmail.long_subject_title=function(d,a){if(!d.title){var b=$(d);if(b.width()+a*15>b.parent().width()){d.title=b.text()}}};rcube_webmail.long_subject_title_ex=function(g,b){if(!g.title){var e=$(g),a=$.trim(e.text()),f=$("<span>").text(a).css({position:"absolute","float":"left",visibility:"hidden","font-size":e.css("font-size"),"font-weight":e.css("font-weight")}).appendTo($("body")),d=f.width();f.remove();if(d+b*15>e.width()){g.title=a}}};rcube_webmail.prototype.get_cookie=getCookie;rcube_webmail.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;rcube_webmail.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;rcube_webmail.prototype.triggerEvent=rcube_event_engine.prototype.triggerEvent; \ No newline at end of file
diff --git a/program/js/common.js b/program/js/common.js
index 02934f734..f6fa154ef 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -1,731 +1 @@
-/*
- +-----------------------------------------------------------------------+
- | Roundcube common js library |
- | |
- | This file is part of the Roundcube web development suite |
- | Copyright (C) 2005-2012, The Roundcube Dev Team |
- | |
- | Licensed under the GNU General Public License version 3 or |
- | any later version with exceptions for skins & plugins. |
- | See the README file for a full license statement. |
- | |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- +-----------------------------------------------------------------------+
-*/
-
-// Constants
-var CONTROL_KEY = 1;
-var SHIFT_KEY = 2;
-var CONTROL_SHIFT_KEY = 3;
-
-
-/**
- * Default browser check class
- * @constructor
- */
-function roundcube_browser()
-{
- var n = navigator;
-
- this.ver = parseFloat(n.appVersion);
- this.appver = n.appVersion;
- this.agent = n.userAgent;
- this.agent_lc = n.userAgent.toLowerCase();
- this.name = n.appName;
- this.vendor = n.vendor ? n.vendor : '';
- this.vendver = n.vendorSub ? parseFloat(n.vendorSub) : 0;
- this.product = n.product ? n.product : '';
- this.platform = String(n.platform).toLowerCase();
- this.lang = (n.language) ? n.language.substring(0,2) :
- (n.browserLanguage) ? n.browserLanguage.substring(0,2) :
- (n.systemLanguage) ? n.systemLanguage.substring(0,2) : 'en';
-
- this.win = (this.platform.indexOf('win') >= 0);
- this.mac = (this.platform.indexOf('mac') >= 0);
- this.linux = (this.platform.indexOf('linux') >= 0);
- this.unix = (this.platform.indexOf('unix') >= 0);
-
- this.dom = document.getElementById ? true : false;
- this.dom2 = (document.addEventListener && document.removeEventListener);
-
- this.ie = (document.all && !window.opera);
- this.ie4 = (this.ie && !this.dom);
- this.ie5 = (this.dom && this.appver.indexOf('MSIE 5')>0);
- this.ie8 = (this.dom && this.appver.indexOf('MSIE 8')>0);
- this.ie9 = (this.dom && this.appver.indexOf('MSIE 9')>0);
- this.ie7 = (this.dom && this.appver.indexOf('MSIE 7')>0);
- this.ie6 = (this.dom && !this.ie8 && !this.ie7 && this.appver.indexOf('MSIE 6')>0);
-
- this.ns = ((this.ver < 5 && this.name == 'Netscape') || (this.ver >= 5 && this.vendor.indexOf('Netscape') >= 0));
- this.chrome = (this.agent_lc.indexOf('chrome') > 0);
- this.safari = (!this.chrome && (this.agent_lc.indexOf('safari') > 0 || this.agent_lc.indexOf('applewebkit') > 0));
- this.konq = (this.agent_lc.indexOf('konqueror') > 0);
- this.mz = (this.dom && !this.ie && !this.ns && !this.chrome && !this.safari && !this.konq && this.agent.indexOf('Mozilla') >= 0);
- this.iphone = (this.safari && (this.agent_lc.indexOf('iphone') > 0 || this.agent_lc.indexOf('ipod') > 0));
- this.ipad = (this.safari && this.agent_lc.indexOf('ipad') > 0);
- this.opera = window.opera ? true : false;
-
- if (this.opera && window.RegExp)
- this.vendver = (/opera(\s|\/)([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$2) : -1;
- else if (this.chrome && window.RegExp)
- this.vendver = (/chrome\/([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0;
- else if (!this.vendver && this.safari)
- this.vendver = (/(safari|applewebkit)\/([0-9]+)/.test(this.agent_lc)) ? parseInt(RegExp.$2) : 0;
- else if ((!this.vendver && this.mz) || this.agent.indexOf('Camino')>0)
- this.vendver = (/rv:([0-9\.]+)/.test(this.agent)) ? parseFloat(RegExp.$1) : 0;
- else if (this.ie && window.RegExp)
- this.vendver = (/msie\s+([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0;
- else if (this.konq && window.RegExp)
- this.vendver = (/khtml\/([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0;
-
- // get real language out of safari's user agent
- if (this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc)))
- this.lang = RegExp.$1;
-
- this.tablet = /ipad|android|xoom|sch-i800|playbook|tablet|kindle/i.test(this.agent_lc);
- this.mobile = /iphone|ipod|blackberry|iemobile|opera mini|opera mobi|mobile/i.test(this.agent_lc);
- this.touch = this.mobile || this.tablet;
- this.dhtml = ((this.ie4 && this.win) || this.ie5 || this.ie6 || this.ns4 || this.mz);
- this.vml = (this.win && this.ie && this.dom && !this.opera);
- this.pngalpha = (this.mz || (this.opera && this.vendver >= 6) || (this.ie && this.mac && this.vendver >= 5) ||
- (this.ie && this.win && this.vendver >= 5.5) || this.safari);
- this.opacity = (this.mz || (this.ie && this.vendver >= 5.5 && !this.opera) || (this.safari && this.vendver >= 100));
- this.cookies = n.cookieEnabled;
-
- // test for XMLHTTP support
- this.xmlhttp_test = function()
- {
- var activeX_test = new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");
- this.xmlhttp = (window.XMLHttpRequest || (window.ActiveXObject && activeX_test()));
- return this.xmlhttp;
- };
-
- // set class names to html tag according to the current user agent detection
- // this allows browser-specific css selectors like "html.chrome .someclass"
- this.set_html_class = function()
- {
- var classname = ' js';
-
- if (this.ie)
- classname += ' ie ie'+parseInt(this.vendver);
- else if (this.opera)
- classname += ' opera';
- else if (this.konq)
- classname += ' konqueror';
- else if (this.safari)
- classname += ' chrome';
- else if (this.chrome)
- classname += ' chrome';
- else if (this.mz)
- classname += ' mozilla';
-
- if (this.iphone)
- classname += ' iphone';
- else if (this.ipad)
- classname += ' ipad';
- else if (this.safari || this.chrome)
- classname += ' webkit';
-
- if (this.mobile)
- classname += ' mobile';
- if (this.tablet)
- classname += ' tablet';
-
- if (document.documentElement)
- document.documentElement.className += classname;
- };
-};
-
-
-// static functions for DOM event handling
-var rcube_event = {
-
-/**
- * returns the event target element
- */
-get_target: function(e)
-{
- e = e || window.event;
- return e && e.target ? e.target : e.srcElement;
-},
-
-/**
- * returns the event key code
- */
-get_keycode: function(e)
-{
- e = e || window.event;
- return e && e.keyCode ? e.keyCode : (e && e.which ? e.which : 0);
-},
-
-/**
- * returns the event key code
- */
-get_button: function(e)
-{
- e = e || window.event;
- return e && e.button !== undefined ? e.button : (e && e.which ? e.which : 0);
-},
-
-/**
- * returns modifier key (constants defined at top of file)
- */
-get_modifier: function(e)
-{
- var opcode = 0;
- e = e || window.event;
-
- if (bw.mac && e)
- opcode += (e.metaKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);
- else if (e)
- opcode += (e.ctrlKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);
-
- return opcode;
-},
-
-/**
- * Return absolute mouse position of an event
- */
-get_mouse_pos: function(e)
-{
- if (!e) e = window.event;
- var mX = (e.pageX) ? e.pageX : e.clientX,
- mY = (e.pageY) ? e.pageY : e.clientY;
-
- if (document.body && document.all) {
- mX += document.body.scrollLeft;
- mY += document.body.scrollTop;
- }
-
- if (e._offset) {
- mX += e._offset.left;
- mY += e._offset.top;
- }
-
- return { x:mX, y:mY };
-},
-
-/**
- * Add an object method as event listener to a certain element
- */
-add_listener: function(p)
-{
- if (!p.object || !p.method) // not enough arguments
- return;
- if (!p.element)
- p.element = document;
-
- if (!p.object._rc_events)
- p.object._rc_events = [];
-
- var key = p.event + '*' + p.method;
- if (!p.object._rc_events[key])
- p.object._rc_events[key] = function(e){ return p.object[p.method](e); };
-
- if (p.element.addEventListener)
- p.element.addEventListener(p.event, p.object._rc_events[key], false);
- else if (p.element.attachEvent) {
- // IE allows multiple events with the same function to be applied to the same object
- // forcibly detach the event, then attach
- p.element.detachEvent('on'+p.event, p.object._rc_events[key]);
- p.element.attachEvent('on'+p.event, p.object._rc_events[key]);
- }
- else
- p.element['on'+p.event] = p.object._rc_events[key];
-},
-
-/**
- * Remove event listener
- */
-remove_listener: function(p)
-{
- if (!p.element)
- p.element = document;
-
- var key = p.event + '*' + p.method;
- if (p.object && p.object._rc_events && p.object._rc_events[key]) {
- if (p.element.removeEventListener)
- p.element.removeEventListener(p.event, p.object._rc_events[key], false);
- else if (p.element.detachEvent)
- p.element.detachEvent('on'+p.event, p.object._rc_events[key]);
- else
- p.element['on'+p.event] = null;
- }
-},
-
-/**
- * Prevent event propagation and bubbling
- */
-cancel: function(evt)
-{
- var e = evt ? evt : window.event;
- if (e.preventDefault)
- e.preventDefault();
- if (e.stopPropagation)
- e.stopPropagation();
-
- e.cancelBubble = true;
- e.returnValue = false;
- return false;
-},
-
-touchevent: function(e)
-{
- return { pageX:e.pageX, pageY:e.pageY, offsetX:e.pageX - e.target.offsetLeft, offsetY:e.pageY - e.target.offsetTop, target:e.target, istouch:true };
-}
-
-};
-
-
-/**
- * rcmail objects event interface
- */
-function rcube_event_engine()
-{
- this._events = {};
-};
-
-rcube_event_engine.prototype = {
-
-/**
- * Setter for object event handlers
- *
- * @param {String} Event name
- * @param {Function} Handler function
- * @return Listener ID (used to remove this handler later on)
- */
-addEventListener: function(evt, func, obj)
-{
- if (!this._events)
- this._events = {};
- if (!this._events[evt])
- this._events[evt] = [];
-
- this._events[evt].push({func:func, obj:obj ? obj : window});
-},
-
-/**
- * Removes a specific event listener
- *
- * @param {String} Event name
- * @param {Int} Listener ID to remove
- */
-removeEventListener: function(evt, func, obj)
-{
- if (obj === undefined)
- obj = window;
-
- for (var h,i=0; this._events && this._events[evt] && i < this._events[evt].length; i++)
- if ((h = this._events[evt][i]) && h.func == func && h.obj == obj)
- this._events[evt][i] = null;
-},
-
-/**
- * This will execute all registered event handlers
- *
- * @param {String} Event to trigger
- * @param {Object} Event object/arguments
- */
-triggerEvent: function(evt, e)
-{
- var ret, h;
- if (e === undefined)
- e = this;
- else if (typeof e === 'object')
- e.event = evt;
-
- if (this._events && this._events[evt] && !this._event_exec) {
- this._event_exec = true;
- for (var i=0; i < this._events[evt].length; i++) {
- if ((h = this._events[evt][i])) {
- if (typeof h.func === 'function')
- ret = h.func.call ? h.func.call(h.obj, e) : h.func(e);
- else if (typeof h.obj[h.func] === 'function')
- ret = h.obj[h.func](e);
-
- // cancel event execution
- if (ret !== undefined && !ret)
- break;
- }
- }
- if (ret && ret.event) {
- try {
- delete ret.event;
- } catch (err) {
- // IE6-7 doesn't support deleting HTMLFormElement attributes (#1488017)
- $(ret).removeAttr('event');
- }
- }
- }
-
- this._event_exec = false;
- if (e.event) {
- try {
- delete e.event;
- } catch (err) {
- // IE6-7 doesn't support deleting HTMLFormElement attributes (#1488017)
- $(e).removeAttr('event');
- }
- }
-
- return ret;
-}
-
-}; // end rcube_event_engine.prototype
-
-
-// check if input is a valid email address
-// By Cal Henderson <cal@iamcal.com>
-// http://code.iamcal.com/php/rfc822/
-function rcube_check_email(input, inline)
-{
- if (input && window.RegExp) {
- var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]',
- dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]',
- atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+',
- quoted_pair = '\\x5c[\\x00-\\x7f]',
- quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22',
- ipv4 = '\\[(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}\\]',
- ipv6 = '\\[IPv6:[0-9a-f:.]+\\]',
- ip_addr = '(' + ipv4 + ')|(' + ipv6 + ')',
- // Use simplified domain matching, because we need to allow Unicode characters here
- // So, e-mail address should be validated also on server side after idn_to_ascii() use
- //domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d',
- //sub_domain = '('+atom+'|'+domain_literal+')',
- // allow punycode/unicode top-level domain
- domain = '(('+ip_addr+')|(([^@\\x2e]+\\x2e)+([^\\x00-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,})))',
- // ICANN e-mail test (http://idn.icann.org/E-mail_test)
- icann_domains = [
- '\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631',
- '\\u4f8b\\u5b50\\x2e\\u6d4b\\u8bd5',
- '\\u4f8b\\u5b50\\x2e\\u6e2c\\u8a66',
- '\\u03c0\\u03b1\\u03c1\\u03ac\\u03b4\\u03b5\\u03b9\\u03b3\\u03bc\\u03b1\\x2e\\u03b4\\u03bf\\u03ba\\u03b9\\u03bc\\u03ae',
- '\\u0909\\u0926\\u093e\\u0939\\u0930\\u0923\\x2e\\u092a\\u0930\\u0940\\u0915\\u094d\\u0937\\u093e',
- '\\u4f8b\\u3048\\x2e\\u30c6\\u30b9\\u30c8',
- '\\uc2e4\\ub840\\x2e\\ud14c\\uc2a4\\ud2b8',
- '\\u0645\\u062b\\u0627\\u0644\\x2e\\u0622\\u0632\\u0645\\u0627\\u06cc\\u0634\u06cc',
- '\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\x2e\\u0438\\u0441\\u043f\\u044b\\u0442\\u0430\\u043d\\u0438\\u0435',
- '\\u0b89\\u0ba4\\u0bbe\\u0bb0\\u0ba3\\u0bae\\u0bcd\\x2e\\u0baa\\u0bb0\\u0bbf\\u0b9f\\u0bcd\\u0b9a\\u0bc8',
- '\\u05d1\\u05f2\\u05b7\\u05e9\\u05e4\\u05bc\\u05d9\\u05dc\\x2e\\u05d8\\u05e2\\u05e1\\u05d8'
- ],
- icann_addr = 'mailtest\\x40('+icann_domains.join('|')+')',
- word = '('+atom+'|'+quoted_string+')',
- delim = '[,;\s\n]',
- local_part = word+'(\\x2e'+word+')*',
- addr_spec = '(('+local_part+'\\x40'+domain+')|('+icann_addr+'))',
- reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i');
-
- return reg1.test(input) ? true : false;
- }
-
- return false;
-};
-
-// recursively copy an object
-function rcube_clone_object(obj)
-{
- var out = {};
-
- for (var key in obj) {
- if (obj[key] && typeof obj[key] === 'object')
- out[key] = rcube_clone_object(obj[key]);
- else
- out[key] = obj[key];
- }
-
- return out;
-};
-
-// make a string URL safe (and compatible with PHP's rawurlencode())
-function urlencode(str)
-{
- if (window.encodeURIComponent)
- return encodeURIComponent(str).replace('*', '%2A');
-
- return escape(str)
- .replace('+', '%2B')
- .replace('*', '%2A')
- .replace('/', '%2F')
- .replace('@', '%40');
-};
-
-
-// get any type of html objects by id/name
-function rcube_find_object(id, d)
-{
- var n, f, obj, e;
- if(!d) d = document;
-
- if(d.getElementsByName && (e = d.getElementsByName(id)))
- obj = e[0];
- if(!obj && d.getElementById)
- obj = d.getElementById(id);
- if(!obj && d.all)
- obj = d.all[id];
-
- if(!obj && d.images.length)
- obj = d.images[id];
-
- if (!obj && d.forms.length) {
- for (f=0; f<d.forms.length; f++) {
- if(d.forms[f].name == id)
- obj = d.forms[f];
- else if(d.forms[f].elements[id])
- obj = d.forms[f].elements[id];
- }
- }
-
- if (!obj && d.layers) {
- if (d.layers[id]) obj = d.layers[id];
- for (n=0; !obj && n<d.layers.length; n++)
- obj = rcube_find_object(id, d.layers[n].document);
- }
-
- return obj;
-};
-
-// determine whether the mouse is over the given object or not
-function rcube_mouse_is_over(ev, obj)
-{
- var mouse = rcube_event.get_mouse_pos(ev),
- pos = $(obj).offset();
-
- return ((mouse.x >= pos.left) && (mouse.x < (pos.left + obj.offsetWidth)) &&
- (mouse.y >= pos.top) && (mouse.y < (pos.top + obj.offsetHeight)));
-};
-
-
-// cookie functions by GoogieSpell
-function setCookie(name, value, expires, path, domain, secure)
-{
- var curCookie = name + "=" + escape(value) +
- (expires ? "; expires=" + expires.toGMTString() : "") +
- (path ? "; path=" + path : "") +
- (domain ? "; domain=" + domain : "") +
- (secure ? "; secure" : "");
- document.cookie = curCookie;
-};
-
-function getCookie(name)
-{
- var dc = document.cookie,
- prefix = name + "=",
- begin = dc.indexOf("; " + prefix);
-
- if (begin == -1) {
- begin = dc.indexOf(prefix);
- if (begin != 0)
- return null;
- }
- else {
- begin += 2;
- }
-
- var end = dc.indexOf(";", begin);
- if (end == -1)
- end = dc.length;
-
- return unescape(dc.substring(begin + prefix.length, end));
-};
-
-// deprecated aliases, to be removed, use rcmail.set_cookie/rcmail.get_cookie
-roundcube_browser.prototype.set_cookie = setCookie;
-roundcube_browser.prototype.get_cookie = getCookie;
-
-// tiny replacement for Firebox functionality
-function rcube_console()
-{
- this.log = function(msg)
- {
- var box = rcube_find_object('dbgconsole');
-
- if (box) {
- if (msg.charAt(msg.length-1)=='\n')
- msg += '--------------------------------------\n';
- else
- msg += '\n--------------------------------------\n';
-
- // Konqueror doesn't allow to just change the value of hidden element
- if (bw.konq) {
- box.innerText += msg;
- box.value = box.innerText;
- } else
- box.value += msg;
- }
- };
-
- this.reset = function()
- {
- var box = rcube_find_object('dbgconsole');
- if (box)
- box.innerText = box.value = '';
- };
-};
-
-var bw = new roundcube_browser();
-bw.set_html_class();
-
-
-// Add escape() method to RegExp object
-// http://dev.rubyonrails.org/changeset/7271
-RegExp.escape = function(str)
-{
- return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
-};
-
-// Extend Date prototype to detect Standard timezone without DST
-// from http://www.michaelapproved.com/articles/timezone-detect-and-ignore-daylight-saving-time-dst/
-Date.prototype.getStdTimezoneOffset = function()
-{
- var m = 12,
- d = new Date(null, m, 1),
- tzo = d.getTimezoneOffset();
-
- while (--m) {
- d.setUTCMonth(m);
- if (tzo != d.getTimezoneOffset()) {
- return Math.max(tzo, d.getTimezoneOffset());
- }
- }
-
- return tzo;
-}
-
-// define String's startsWith() method for old browsers
-if (!String.prototype.startsWith) {
- String.prototype.startsWith = function(search, position) {
- position = position || 0;
- return this.slice(position, search.length) === search;
- };
-}
-
-// Make getElementById() case-sensitive on IE
-if (bw.ie) {
- document._getElementById = document.getElementById;
- document.getElementById = function(id) {
- var i = 0, obj = document._getElementById(id);
-
- if (obj && obj.id != id)
- while ((obj = document.all[i]) && obj.id != id)
- i++;
-
- return obj;
- }
-}
-
-// jQuery plugin to emulate HTML5 placeholder attributes on input elements
-jQuery.fn.placeholder = function(text) {
- return this.each(function() {
- var active = false, elem = $(this);
- this.title = text;
-
- // Try HTML5 placeholder attribute first
- if ('placeholder' in this) {
- elem.attr('placeholder', text);
- }
- // Fallback to Javascript emulation of placeholder
- else {
- this._placeholder = text;
- elem.blur(function(e) {
- if ($.trim(elem.val()) == "")
- elem.val(text);
- elem.triggerHandler('change');
- })
- .focus(function(e) {
- if ($.trim(elem.val()) == text)
- elem.val("");
- elem.triggerHandler('change');
- })
- .change(function(e) {
- var active = elem.val() == text;
- elem[(active ? 'addClass' : 'removeClass')]('placeholder').attr('spellcheck', active);
- });
-
- // Do not blur currently focused element (catch exception: #1489008)
- try { active = this == document.activeElement; } catch(e) {}
- if (!active)
- elem.blur();
- }
- });
-};
-
-
-// This code was written by Tyler Akins and has been placed in the
-// public domain. It would be nice if you left this header intact.
-// Base64 code from Tyler Akins -- http://rumkin.com
-var Base64 = (function () {
- var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-
- var obj = {
- /**
- * Encodes a string in base64
- * @param {String} input The string to encode in base64.
- */
- encode: function (input) {
- if (typeof(window.btoa) === 'function')
- return btoa(input);
-
- var chr1, chr2, chr3, enc1, enc2, enc3, enc4, i = 0, output = '', len = input.length;
-
- do {
- chr1 = input.charCodeAt(i++);
- chr2 = input.charCodeAt(i++);
- chr3 = input.charCodeAt(i++);
-
- enc1 = chr1 >> 2;
- enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
- enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
- enc4 = chr3 & 63;
-
- if (isNaN(chr2))
- enc3 = enc4 = 64;
- else if (isNaN(chr3))
- enc4 = 64;
-
- output = output
- + keyStr.charAt(enc1) + keyStr.charAt(enc2)
- + keyStr.charAt(enc3) + keyStr.charAt(enc4);
- } while (i < len);
-
- return output;
- },
-
- /**
- * Decodes a base64 string.
- * @param {String} input The string to decode.
- */
- decode: function (input) {
- if (typeof(window.atob) === 'function')
- return atob(input);
-
- var chr1, chr2, chr3, enc1, enc2, enc3, enc4, len, i = 0, output = '';
-
- // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
- len = input.length;
-
- do {
- enc1 = keyStr.indexOf(input.charAt(i++));
- enc2 = keyStr.indexOf(input.charAt(i++));
- enc3 = keyStr.indexOf(input.charAt(i++));
- enc4 = keyStr.indexOf(input.charAt(i++));
-
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
-
- output = output + String.fromCharCode(chr1);
-
- if (enc3 != 64)
- output = output + String.fromCharCode(chr2);
- if (enc4 != 64)
- output = output + String.fromCharCode(chr3);
- } while (i < len);
-
- return output;
- }
- };
-
- return obj;
-})();
+var CONTROL_KEY=1;var SHIFT_KEY=2;var CONTROL_SHIFT_KEY=3;function roundcube_browser(){var a=navigator;this.ver=parseFloat(a.appVersion);this.appver=a.appVersion;this.agent=a.userAgent;this.agent_lc=a.userAgent.toLowerCase();this.name=a.appName;this.vendor=a.vendor?a.vendor:"";this.vendver=a.vendorSub?parseFloat(a.vendorSub):0;this.product=a.product?a.product:"";this.platform=String(a.platform).toLowerCase();this.lang=(a.language)?a.language.substring(0,2):(a.browserLanguage)?a.browserLanguage.substring(0,2):(a.systemLanguage)?a.systemLanguage.substring(0,2):"en";this.win=(this.platform.indexOf("win")>=0);this.mac=(this.platform.indexOf("mac")>=0);this.linux=(this.platform.indexOf("linux")>=0);this.unix=(this.platform.indexOf("unix")>=0);this.dom=document.getElementById?true:false;this.dom2=(document.addEventListener&&document.removeEventListener);this.ie=(document.all&&!window.opera);this.ie4=(this.ie&&!this.dom);this.ie5=(this.dom&&this.appver.indexOf("MSIE 5")>0);this.ie8=(this.dom&&this.appver.indexOf("MSIE 8")>0);this.ie9=(this.dom&&this.appver.indexOf("MSIE 9")>0);this.ie7=(this.dom&&this.appver.indexOf("MSIE 7")>0);this.ie6=(this.dom&&!this.ie8&&!this.ie7&&this.appver.indexOf("MSIE 6")>0);this.ns=((this.ver<5&&this.name=="Netscape")||(this.ver>=5&&this.vendor.indexOf("Netscape")>=0));this.chrome=(this.agent_lc.indexOf("chrome")>0);this.safari=(!this.chrome&&(this.agent_lc.indexOf("safari")>0||this.agent_lc.indexOf("applewebkit")>0));this.konq=(this.agent_lc.indexOf("konqueror")>0);this.mz=(this.dom&&!this.ie&&!this.ns&&!this.chrome&&!this.safari&&!this.konq&&this.agent.indexOf("Mozilla")>=0);this.iphone=(this.safari&&(this.agent_lc.indexOf("iphone")>0||this.agent_lc.indexOf("ipod")>0));this.ipad=(this.safari&&this.agent_lc.indexOf("ipad")>0);this.opera=window.opera?true:false;if(this.opera&&window.RegExp){this.vendver=(/opera(\s|\/)([0-9\.]+)/.test(this.agent_lc))?parseFloat(RegExp.$2):-1}else{if(this.chrome&&window.RegExp){this.vendver=(/chrome\/([0-9\.]+)/.test(this.agent_lc))?parseFloat(RegExp.$1):0}else{if(!this.vendver&&this.safari){this.vendver=(/(safari|applewebkit)\/([0-9]+)/.test(this.agent_lc))?parseInt(RegExp.$2):0}else{if((!this.vendver&&this.mz)||this.agent.indexOf("Camino")>0){this.vendver=(/rv:([0-9\.]+)/.test(this.agent))?parseFloat(RegExp.$1):0}else{if(this.ie&&window.RegExp){this.vendver=(/msie\s+([0-9\.]+)/.test(this.agent_lc))?parseFloat(RegExp.$1):0}else{if(this.konq&&window.RegExp){this.vendver=(/khtml\/([0-9\.]+)/.test(this.agent_lc))?parseFloat(RegExp.$1):0}}}}}}if(this.safari&&(/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc))){this.lang=RegExp.$1}this.tablet=/ipad|android|xoom|sch-i800|playbook|tablet|kindle/i.test(this.agent_lc);this.mobile=/iphone|ipod|blackberry|iemobile|opera mini|opera mobi|mobile/i.test(this.agent_lc);this.touch=this.mobile||this.tablet;this.dhtml=((this.ie4&&this.win)||this.ie5||this.ie6||this.ns4||this.mz);this.vml=(this.win&&this.ie&&this.dom&&!this.opera);this.pngalpha=(this.mz||(this.opera&&this.vendver>=6)||(this.ie&&this.mac&&this.vendver>=5)||(this.ie&&this.win&&this.vendver>=5.5)||this.safari);this.opacity=(this.mz||(this.ie&&this.vendver>=5.5&&!this.opera)||(this.safari&&this.vendver>=100));this.cookies=a.cookieEnabled;this.xmlhttp_test=function(){var b=new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");this.xmlhttp=(window.XMLHttpRequest||(window.ActiveXObject&&b()));return this.xmlhttp};this.set_html_class=function(){var b=" js";if(this.ie){b+=" ie ie"+parseInt(this.vendver)}else{if(this.opera){b+=" opera"}else{if(this.konq){b+=" konqueror"}else{if(this.safari){b+=" chrome"}else{if(this.chrome){b+=" chrome"}else{if(this.mz){b+=" mozilla"}}}}}}if(this.iphone){b+=" iphone"}else{if(this.ipad){b+=" ipad"}else{if(this.safari||this.chrome){b+=" webkit"}}}if(this.mobile){b+=" mobile"}if(this.tablet){b+=" tablet"}if(document.documentElement){document.documentElement.className+=b}}}var rcube_event={get_target:function(a){a=a||window.event;return a&&a.target?a.target:a.srcElement},get_keycode:function(a){a=a||window.event;return a&&a.keyCode?a.keyCode:(a&&a.which?a.which:0)},get_button:function(a){a=a||window.event;return a&&a.button!==undefined?a.button:(a&&a.which?a.which:0)},get_modifier:function(b){var a=0;b=b||window.event;if(bw.mac&&b){a+=(b.metaKey&&CONTROL_KEY)+(b.shiftKey&&SHIFT_KEY)}else{if(b){a+=(b.ctrlKey&&CONTROL_KEY)+(b.shiftKey&&SHIFT_KEY)}}return a},get_mouse_pos:function(c){if(!c){c=window.event}var b=(c.pageX)?c.pageX:c.clientX,a=(c.pageY)?c.pageY:c.clientY;if(document.body&&document.all){b+=document.body.scrollLeft;a+=document.body.scrollTop}if(c._offset){b+=c._offset.left;a+=c._offset.top}return{x:b,y:a}},add_listener:function(b){if(!b.object||!b.method){return}if(!b.element){b.element=document}if(!b.object._rc_events){b.object._rc_events=[]}var a=b.event+"*"+b.method;if(!b.object._rc_events[a]){b.object._rc_events[a]=function(c){return b.object[b.method](c)}}if(b.element.addEventListener){b.element.addEventListener(b.event,b.object._rc_events[a],false)}else{if(b.element.attachEvent){b.element.detachEvent("on"+b.event,b.object._rc_events[a]);b.element.attachEvent("on"+b.event,b.object._rc_events[a])}else{b.element["on"+b.event]=b.object._rc_events[a]}}},remove_listener:function(b){if(!b.element){b.element=document}var a=b.event+"*"+b.method;if(b.object&&b.object._rc_events&&b.object._rc_events[a]){if(b.element.removeEventListener){b.element.removeEventListener(b.event,b.object._rc_events[a],false)}else{if(b.element.detachEvent){b.element.detachEvent("on"+b.event,b.object._rc_events[a])}else{b.element["on"+b.event]=null}}}},cancel:function(a){var b=a?a:window.event;if(b.preventDefault){b.preventDefault()}if(b.stopPropagation){b.stopPropagation()}b.cancelBubble=true;b.returnValue=false;return false},touchevent:function(a){return{pageX:a.pageX,pageY:a.pageY,offsetX:a.pageX-a.target.offsetLeft,offsetY:a.pageY-a.target.offsetTop,target:a.target,istouch:true}}};function rcube_event_engine(){this._events={}}rcube_event_engine.prototype={addEventListener:function(a,b,d){if(!this._events){this._events={}}if(!this._events[a]){this._events[a]=[]}var c={func:b,obj:d?d:window};this._events[a][this._events[a].length]=c},removeEventListener:function(a,d,e){if(e===undefined){e=window}for(var c,b=0;this._events&&this._events[a]&&b<this._events[a].length;b++){if((c=this._events[a][b])&&c.func==d&&c.obj==e){this._events[a][b]=null}}},triggerEvent:function(a,g){var b,d;if(g===undefined){g=this}else{if(typeof g==="object"){g.event=a}}if(this._events&&this._events[a]&&!this._event_exec){this._event_exec=true;for(var c=0;c<this._events[a].length;c++){if((d=this._events[a][c])){if(typeof d.func==="function"){b=d.func.call?d.func.call(d.obj,g):d.func(g)}else{if(typeof d.obj[d.func]==="function"){b=d.obj[d.func](g)}}if(b!==undefined&&!b){break}}}if(b&&b.event){try{delete b.event}catch(f){$(b).removeAttr("event")}}}this._event_exec=false;if(g.event){try{delete g.event}catch(f){$(g).removeAttr("event")}}return b}};function rcube_layer(b,a){this.name=b;this.create=function(m){var d=(m.x)?m.x:0,k=(m.y)?m.y:0,j=m.width,f=m.height,g=m.zindex,c=m.vis,i=m.parent,e=document.createElement("DIV");e.id=this.name;e.style.position="absolute";e.style.visibility=(c)?(c==2)?"inherit":"visible":"hidden";e.style.left=d+"px";e.style.top=k+"px";if(j){e.style.width=j.toString().match(/\%$/)?j:j+"px"}if(f){e.style.height=f.toString().match(/\%$/)?f:f+"px"}if(g){e.style.zIndex=g}if(i){i.appendChild(e)}else{document.body.appendChild(e)}this.elm=e};if(a!=null){this.create(a);this.name=this.elm.id}else{this.elm=document.getElementById(b)}if(!this.elm){return false}this.css=this.elm.style;this.event=this.elm;this.width=this.elm.offsetWidth;this.height=this.elm.offsetHeight;this.x=parseInt(this.elm.offsetLeft);this.y=parseInt(this.elm.offsetTop);this.visible=(this.css.visibility=="visible"||this.css.visibility=="show"||this.css.visibility=="inherit")?true:false;this.move=function(c,d){this.x=c;this.y=d;this.css.left=Math.round(this.x)+"px";this.css.top=Math.round(this.y)+"px"};this.resize=function(c,d){this.css.width=c+"px";this.css.height=d+"px";this.width=c;this.height=d};this.show=function(c){if(c==1){this.css.visibility="visible";this.visible=true}else{if(c==2){this.css.visibility="inherit";this.visible=true}else{this.css.visibility="hidden";this.visible=false}}};this.write=function(c){this.elm.innerHTML=c}}function rcube_check_email(h,c){if(h&&window.RegExp){var f="[^\\x0d\\x22\\x5c\\x80-\\xff]",e="[^\\x0d\\x5b-\\x5d\\x80-\\xff]",a="[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+",g="\\x5c[\\x00-\\x7f]",l="\\x22("+f+"|"+g+")*\\x22",k="\\[(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}\\]",j="\\[IPv6:[0-9a-f:.]+\\]",i="("+k+")|("+j+")",r="(("+i+")|(([^@\\x2e]+\\x2e)+([^\\x00-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,})))",d=["\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631","\\u4f8b\\u5b50\\x2e\\u6d4b\\u8bd5","\\u4f8b\\u5b50\\x2e\\u6e2c\\u8a66","\\u03c0\\u03b1\\u03c1\\u03ac\\u03b4\\u03b5\\u03b9\\u03b3\\u03bc\\u03b1\\x2e\\u03b4\\u03bf\\u03ba\\u03b9\\u03bc\\u03ae","\\u0909\\u0926\\u093e\\u0939\\u0930\\u0923\\x2e\\u092a\\u0930\\u0940\\u0915\\u094d\\u0937\\u093e","\\u4f8b\\u3048\\x2e\\u30c6\\u30b9\\u30c8","\\uc2e4\\ub840\\x2e\\ud14c\\uc2a4\\ud2b8","\\u0645\\u062b\\u0627\\u0644\\x2e\\u0622\\u0632\\u0645\\u0627\\u06cc\\u0634\u06cc","\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\x2e\\u0438\\u0441\\u043f\\u044b\\u0442\\u0430\\u043d\\u0438\\u0435","\\u0b89\\u0ba4\\u0bbe\\u0bb0\\u0ba3\\u0bae\\u0bcd\\x2e\\u0baa\\u0bb0\\u0bbf\\u0b9f\\u0bcd\\u0b9a\\u0bc8","\\u05d1\\u05f2\\u05b7\\u05e9\\u05e4\\u05bc\\u05d9\\u05dc\\x2e\\u05d8\\u05e2\\u05e1\\u05d8"],p="mailtest\\x40("+d.join("|")+")",n="("+a+"|"+l+")",q="[,;s\n]",m=n+"(\\x2e"+n+")*",b="(("+m+"\\x40"+r+")|("+p+"))",o=c?new RegExp("(^|<|"+q+")"+b+"($|>|"+q+")","i"):new RegExp("^"+b+"$","i");return o.test(h)?true:false}return false}function rcube_clone_object(c){var a={};for(var b in c){if(c[b]&&typeof c[b]==="object"){a[b]=clone_object(c[b])}else{a[b]=c[b]}}return a}function urlencode(a){if(window.encodeURIComponent){return encodeURIComponent(a).replace("*","%2A")}return escape(a).replace("+","%2B").replace("*","%2A").replace("/","%2F").replace("@","%40")}function rcube_find_object(i,g){var h,a,c,b;if(!g){g=document}if(g.getElementsByName&&(b=g.getElementsByName(i))){c=b[0]}if(!c&&g.getElementById){c=g.getElementById(i)}if(!c&&g.all){c=g.all[i]}if(!c&&g.images.length){c=g.images[i]}if(!c&&g.forms.length){for(a=0;a<g.forms.length;a++){if(g.forms[a].name==i){c=g.forms[a]}else{if(g.forms[a].elements[i]){c=g.forms[a].elements[i]}}}}if(!c&&g.layers){if(g.layers[i]){c=g.layers[i]}for(h=0;!c&&h<g.layers.length;h++){c=rcube_find_object(i,g.layers[h].document)}}return c}function rcube_mouse_is_over(b,c){var a=rcube_event.get_mouse_pos(b),d=$(c).offset();return((a.x>=d.left)&&(a.x<(d.left+c.offsetWidth))&&(a.y>=d.top)&&(a.y<(d.top+c.offsetHeight)))}function setCookie(c,e,a,g,d,f){var b=c+"="+escape(e)+(a?"; expires="+a.toGMTString():"")+(g?"; path="+g:"")+(d?"; domain="+d:"")+(f?"; secure":"");document.cookie=b}function getCookie(c){var b=document.cookie,e=c+"=",d=b.indexOf("; "+e);if(d==-1){d=b.indexOf(e);if(d!=0){return null}}else{d+=2}var a=b.indexOf(";",d);if(a==-1){a=b.length}return unescape(b.substring(d+e.length,a))}roundcube_browser.prototype.set_cookie=setCookie;roundcube_browser.prototype.get_cookie=getCookie;function rcube_console(){this.log=function(b){var a=rcube_find_object("dbgconsole");if(a){if(b.charAt(b.length-1)=="\n"){b+="--------------------------------------\n"}else{b+="\n--------------------------------------\n"}if(bw.konq){a.innerText+=b;a.value=a.innerText}else{a.value+=b}}};this.reset=function(){var a=rcube_find_object("dbgconsole");if(a){a.innerText=a.value=""}}}var bw=new roundcube_browser();bw.set_html_class();RegExp.escape=function(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")};Date.prototype.getStdTimezoneOffset=function(){var a=12,c=new Date(null,a,1),b=c.getTimezoneOffset();while(--a){c.setUTCMonth(a);if(b!=c.getTimezoneOffset()){return Math.max(b,c.getTimezoneOffset())}}return b};if(bw.ie){document._getElementById=document.getElementById;document.getElementById=function(c){var a=0,b=document._getElementById(c);if(b&&b.id!=c){while((b=document.all[a])&&b.id!=c){a++}}return b}}jQuery.fn.placeholder=function(a){return this.each(function(){var d=false,b=$(this);this.title=a;if("placeholder" in this){b.attr("placeholder",a)}else{this._placeholder=a;b.blur(function(f){if($.trim(b.val())==""){b.val(a)}b.triggerHandler("change")}).focus(function(f){if($.trim(b.val())==a){b.val("")}b.triggerHandler("change")}).change(function(g){var f=b.val()==a;b[(f?"addClass":"removeClass")]("placeholder").attr("spellcheck",f)});try{d=this==document.activeElement}catch(c){}if(!d){b.blur()}}})};var Base64=(function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var b={encode:function(f){if(typeof(window.btoa)==="function"){return btoa(f)}var n,l,j,m,k,h,g,d=0,c="",e=f.length;do{n=f.charCodeAt(d++);l=f.charCodeAt(d++);j=f.charCodeAt(d++);m=n>>2;k=((n&3)<<4)|(l>>4);h=((l&15)<<2)|(j>>6);g=j&63;if(isNaN(l)){h=g=64}else{if(isNaN(j)){g=64}}c=c+a.charAt(m)+a.charAt(k)+a.charAt(h)+a.charAt(g)}while(d<e);return c},decode:function(f){if(typeof(window.atob)==="function"){return atob(f)}var n,l,j,m,k,h,g,e,d=0,c="";f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");e=f.length;do{m=a.indexOf(f.charAt(d++));k=a.indexOf(f.charAt(d++));h=a.indexOf(f.charAt(d++));g=a.indexOf(f.charAt(d++));n=(m<<2)|(k>>4);l=((k&15)<<4)|(h>>2);j=((h&3)<<6)|g;c=c+String.fromCharCode(n);if(h!=64){c=c+String.fromCharCode(l)}if(g!=64){c=c+String.fromCharCode(j)}}while(d<e);return c}};return b})(); \ No newline at end of file
diff --git a/program/js/editor.js b/program/js/editor.js
index 020971d6e..bc36e9a39 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -41,7 +41,7 @@ function rcmail_editor_init(config)
$.extend(conf, {
plugins: 'paste,tabfocus',
theme_advanced_buttons1: 'bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,outdent,indent,charmap,hr,link,unlink,code,forecolor',
- theme_advanced_buttons2: 'fontselect,fontsizeselect'
+ theme_advanced_buttons2: ',fontselect,fontsizeselect'
});
else { // mail compose
$.extend(conf, {
@@ -74,18 +74,11 @@ function rcmail_editor_init(config)
// react to real individual tinyMCE editor init
function rcmail_editor_callback()
{
- var css = {},
- elem = rcube_find_object('_from'),
+ var elem = rcube_find_object('_from'),
fe = rcmail.env.compose_focus_elem;
if (rcmail.env.default_font)
- css['font-family'] = rcmail.env.default_font;
-
- if (rcmail.env.default_font_size)
- css['font-size'] = rcmail.env.default_font_size;
-
- if (css['font-family'] || css['font-size'])
- $(tinyMCE.get(rcmail.env.composebody).getBody()).css(css);
+ $(tinyMCE.get(rcmail.env.composebody).getBody()).css('font-family', rcmail.env.default_font);
if (elem && elem.type == 'select-one') {
rcmail.change_identity(elem);
@@ -161,8 +154,8 @@ function rcmail_editor_images()
for (i in files) {
att = files[i];
- if (att.complete && att.mimetype.startsWith('image/')) {
- list.push([att.name, rcmail.env.comm_path+'&_id='+rcmail.env.compose_id+'&_action=display-attachment&_file='+i]);
+ if (att.complete && att.mimetype.indexOf('image/') == 0) {
+ list.push([att.name, rcmail.env.comm_path+'&_action=display-attachment&_file='+i+'&_id='+rcmail.env.compose_id]);
}
}
diff --git a/program/js/googiespell.js b/program/js/googiespell.js
index 9832116dd..6d0a19c06 100644
--- a/program/js/googiespell.js
+++ b/program/js/googiespell.js
@@ -1,1135 +1 @@
-/*
- +-----------------------------------------------------------------------+
- | Roundcube SpellCheck script |
- | jQuery'fied spell checker based on GoogieSpell 4.0 |
- | (which was published under GPL "version 2 or any later version") |
- | |
- | This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006 Amir Salihefendic |
- | Copyright (C) 2009 The Roundcube Dev Team |
- | Copyright (C) 2011 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: 4mir Salihefendic <amix@amix.dk> |
- | Aleksander Machniak - <alec [at] alec.pl> |
- +-----------------------------------------------------------------------+
-*/
-
-var GOOGIE_CUR_LANG,
- GOOGIE_DEFAULT_LANG = 'en';
-
-function GoogieSpell(img_dir, server_url, has_dict)
-{
- var ref = this,
- cookie_value = rcmail.get_cookie('language');
-
- GOOGIE_CUR_LANG = cookie_value != null ? cookie_value : GOOGIE_DEFAULT_LANG;
-
- this.array_keys = function(arr) {
- var res = [];
- for (var key in arr) { res.push([key]); }
- return res;
- }
-
- this.img_dir = img_dir;
- this.server_url = server_url;
-
- this.org_lang_to_word = {
- "da": "Dansk", "de": "Deutsch", "en": "English",
- "es": "Español", "fr": "Français", "it": "Italiano",
- "nl": "Nederlands", "pl": "Polski", "pt": "Português",
- "ru": "РуÑÑкий", "fi": "Suomi", "sv": "Svenska"
- };
- this.lang_to_word = this.org_lang_to_word;
- this.langlist_codes = this.array_keys(this.lang_to_word);
- this.show_change_lang_pic = true;
- this.change_lang_pic_placement = 'right';
- this.report_state_change = true;
-
- this.ta_scroll_top = 0;
- this.el_scroll_top = 0;
-
- this.lang_chck_spell = "Check spelling";
- this.lang_revert = "Revert to";
- this.lang_close = "Close";
- this.lang_rsm_edt = "Resume editing";
- this.lang_no_error_found = "No spelling errors found";
- this.lang_no_suggestions = "No suggestions";
- this.lang_learn_word = "Add to dictionary";
-
- this.show_spell_img = false; // roundcube mod.
- this.decoration = true;
- this.use_close_btn = false;
- this.edit_layer_dbl_click = true;
- this.report_ta_not_found = true;
-
- // Extensions
- this.custom_ajax_error = null;
- this.custom_no_spelling_error = null;
- this.custom_menu_builder = []; // Should take an eval function and a build menu function
- this.custom_item_evaulator = null; // Should take an eval function and a build menu function
- this.extra_menu_items = [];
- this.custom_spellcheck_starter = null;
- this.main_controller = true;
- this.has_dictionary = has_dict;
-
- // Observers
- this.lang_state_observer = null;
- this.spelling_state_observer = null;
- this.show_menu_observer = null;
- this.all_errors_fixed_observer = null;
-
- // Focus links - used to give the text box focus
- this.use_focus = false;
- this.focus_link_t = null;
- this.focus_link_b = null;
-
- // Counters
- this.cnt_errors = 0;
- this.cnt_errors_fixed = 0;
-
- // Set document's onclick to hide the language and error menu
- $(document).bind('click', function(e) {
- var target = $(e.target);
- if(target.attr('googie_action_btn') != '1' && ref.isLangWindowShown())
- ref.hideLangWindow();
- if(target.attr('googie_action_btn') != '1' && ref.isErrorWindowShown())
- ref.hideErrorWindow();
- });
-
-
-this.decorateTextarea = function(id)
-{
- this.text_area = typeof id === 'string' ? document.getElementById(id) : id;
-
- if (this.text_area) {
- if (!this.spell_container && this.decoration) {
- var table = document.createElement('table'),
- tbody = document.createElement('tbody'),
- tr = document.createElement('tr'),
- spell_container = document.createElement('td'),
- r_width = this.isDefined(this.force_width) ? this.force_width : this.text_area.offsetWidth,
- r_height = this.isDefined(this.force_height) ? this.force_height : 16;
-
- tr.appendChild(spell_container);
- tbody.appendChild(tr);
- $(table).append(tbody).insertBefore(this.text_area).width('100%').height(r_height);
- $(spell_container).height(r_height).width(r_width).css('text-align', 'right');
-
- this.spell_container = spell_container;
- }
-
- this.checkSpellingState();
- }
- else if (this.report_ta_not_found)
- alert('Text area not found');
-};
-
-//////
-// API Functions (the ones that you can call)
-/////
-this.setSpellContainer = function(id)
-{
- this.spell_container = typeof id === 'string' ? document.getElementById(id) : id;
-};
-
-this.setLanguages = function(lang_dict)
-{
- this.lang_to_word = lang_dict;
- this.langlist_codes = this.array_keys(lang_dict);
-};
-
-this.setCurrentLanguage = function(lan_code)
-{
- GOOGIE_CUR_LANG = lan_code;
-
- //Set cookie
- var now = new Date();
- now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
- rcmail.set_cookie('language', lan_code, now);
-};
-
-this.setForceWidthHeight = function(width, height)
-{
- // Set to null if you want to use one of them
- this.force_width = width;
- this.force_height = height;
-};
-
-this.setDecoration = function(bool)
-{
- this.decoration = bool;
-};
-
-this.dontUseCloseButtons = function()
-{
- this.use_close_btn = false;
-};
-
-this.appendNewMenuItem = function(name, call_back_fn, checker)
-{
- this.extra_menu_items.push([name, call_back_fn, checker]);
-};
-
-this.appendCustomMenuBuilder = function(eval_fn, builder)
-{
- this.custom_menu_builder.push([eval_fn, builder]);
-};
-
-this.setFocus = function()
-{
- try {
- this.focus_link_b.focus();
- this.focus_link_t.focus();
- return true;
- }
- catch(e) {
- return false;
- }
-};
-
-
-//////
-// Set functions (internal)
-/////
-this.setStateChanged = function(current_state)
-{
- this.state = current_state;
- if (this.spelling_state_observer != null && this.report_state_change)
- this.spelling_state_observer(current_state, this);
-};
-
-this.setReportStateChange = function(bool)
-{
- this.report_state_change = bool;
-};
-
-
-//////
-// Request functions
-/////
-this.getUrl = function()
-{
- return this.server_url + GOOGIE_CUR_LANG;
-};
-
-this.escapeSpecial = function(val)
-{
- return val ? val.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;") : '';
-};
-
-this.createXMLReq = function (text)
-{
- return '<?xml version="1.0" encoding="utf-8" ?>'
- + '<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1">'
- + '<text>' + text + '</text></spellrequest>';
-};
-
-this.spellCheck = function(ignore)
-{
- this.prepare(ignore);
-
- var req_text = this.escapeSpecial(this.orginal_text),
- ref = this;
-
- $.ajax({ type: 'POST', url: this.getUrl(), data: this.createXMLReq(req_text), dataType: 'text',
- error: function(o) {
- if (ref.custom_ajax_error)
- ref.custom_ajax_error(ref);
- else
- alert('An error was encountered on the server. Please try again later.');
- if (ref.main_controller) {
- $(ref.spell_span).remove();
- ref.removeIndicator();
- }
- ref.checkSpellingState();
- },
- success: function(data) {
- ref.processData(data);
- if (!ref.results.length) {
- if (!ref.custom_no_spelling_error)
- ref.flashNoSpellingErrorState();
- else
- ref.custom_no_spelling_error(ref);
- }
- ref.removeIndicator();
- }
- });
-};
-
-this.learnWord = function(word, id)
-{
- word = this.escapeSpecial(word.innerHTML);
-
- var ref = this,
- req_text = '<?xml version="1.0" encoding="utf-8" ?><learnword><text>' + word + '</text></learnword>';
-
- $.ajax({ type: 'POST', url: this.getUrl(), data: req_text, dataType: 'text',
- error: function(o) {
- if (ref.custom_ajax_error)
- ref.custom_ajax_error(ref);
- else
- alert('An error was encountered on the server. Please try again later.');
- },
- success: function(data) {
- }
- });
-};
-
-
-//////
-// Spell checking functions
-/////
-this.prepare = function(ignore, no_indicator)
-{
- this.cnt_errors_fixed = 0;
- this.cnt_errors = 0;
- this.setStateChanged('checking_spell');
-
- if (!no_indicator && this.main_controller)
- this.appendIndicator(this.spell_span);
-
- this.error_links = [];
- this.ta_scroll_top = this.text_area.scrollTop;
- this.ignore = ignore;
- this.hideLangWindow();
-
- if ($(this.text_area).val() == '' || ignore) {
- if (!this.custom_no_spelling_error)
- this.flashNoSpellingErrorState();
- else
- this.custom_no_spelling_error(this);
- this.removeIndicator();
- return;
- }
-
- this.createEditLayer(this.text_area.offsetWidth, this.text_area.offsetHeight);
- this.createErrorWindow();
- $('body').append(this.error_window);
-
- try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
- catch (e) { }
-
- if (this.main_controller)
- $(this.spell_span).unbind('click');
-
- this.orginal_text = $(this.text_area).val();
-};
-
-this.parseResult = function(r_text)
-{
- // Returns an array: result[item] -> ['attrs'], ['suggestions']
- var re_split_attr_c = /\w+="(\d+|true)"/g,
- re_split_text = /\t/g,
- matched_c = r_text.match(/<c[^>]*>[^<]*<\/c>/g),
- results = [];
-
- if (matched_c == null)
- return results;
-
- for (var i=0, len=matched_c.length; i < len; i++) {
- var item = [];
- this.errorFound();
-
- // Get attributes
- item['attrs'] = [];
- var c_attr, val,
- split_c = matched_c[i].match(re_split_attr_c);
- for (var j=0; j < split_c.length; j++) {
- c_attr = split_c[j].split(/=/);
- val = c_attr[1].replace(/"/g, '');
- item['attrs'][c_attr[0]] = val != 'true' ? parseInt(val) : val;
- }
-
- // Get suggestions
- item['suggestions'] = [];
- var only_text = matched_c[i].replace(/<[^>]*>/g, ''),
- split_t = only_text.split(re_split_text);
- for (var k=0; k < split_t.length; k++) {
- if(split_t[k] != '')
- item['suggestions'].push(split_t[k]);
- }
- results.push(item);
- }
-
- return results;
-};
-
-this.processData = function(data)
-{
- this.results = this.parseResult(data);
- if (this.results.length) {
- this.showErrorsInIframe();
- this.resumeEditingState();
- }
-};
-
-//////
-// Error menu functions
-/////
-this.createErrorWindow = function()
-{
- this.error_window = document.createElement('div');
- $(this.error_window).addClass('googie_window popupmenu').attr('googie_action_btn', '1');
-};
-
-this.isErrorWindowShown = function()
-{
- return $(this.error_window).is(':visible');
-};
-
-this.hideErrorWindow = function()
-{
- $(this.error_window).hide();
- $(this.error_window_iframe).hide();
-};
-
-this.updateOrginalText = function(offset, old_value, new_value, id)
-{
- var part_1 = this.orginal_text.substring(0, offset),
- part_2 = this.orginal_text.substring(offset+old_value.length),
- add_2_offset = new_value.length - old_value.length;
-
- this.orginal_text = part_1 + new_value + part_2;
- $(this.text_area).val(this.orginal_text);
- for (var j=0, len=this.results.length; j<len; j++) {
- // Don't edit the offset of the current item
- if (j != id && j > id)
- this.results[j]['attrs']['o'] += add_2_offset;
- }
-};
-
-this.saveOldValue = function(elm, old_value) {
- elm.is_changed = true;
- elm.old_value = old_value;
-};
-
-this.createListSeparator = function()
-{
- var td = document.createElement('td'),
- tr = document.createElement('tr');
-
- $(td).html(' ').attr('googie_action_btn', '1')
- .css({'cursor': 'default', 'font-size': '3px', 'border-top': '1px solid #ccc', 'padding-top': '3px'});
- tr.appendChild(td);
-
- return tr;
-};
-
-this.correctError = function(id, elm, l_elm, rm_pre_space)
-{
- var old_value = elm.innerHTML,
- new_value = l_elm.nodeType == 3 ? l_elm.nodeValue : l_elm.innerHTML,
- offset = this.results[id]['attrs']['o'];
-
- if (rm_pre_space) {
- var pre_length = elm.previousSibling.innerHTML;
- elm.previousSibling.innerHTML = pre_length.slice(0, pre_length.length-1);
- old_value = " " + old_value;
- offset--;
- }
-
- this.hideErrorWindow();
- this.updateOrginalText(offset, old_value, new_value, id);
-
- $(elm).html(new_value).css('color', 'green').attr('is_corrected', true);
-
- this.results[id]['attrs']['l'] = new_value.length;
-
- if (!this.isDefined(elm.old_value))
- this.saveOldValue(elm, old_value);
-
- this.errorFixed();
-};
-
-this.ignoreError = function(elm, id)
-{
- // @TODO: ignore all same words
- $(elm).removeAttr('class').css('color', '').unbind();
- this.hideErrorWindow();
-};
-
-this.showErrorWindow = function(elm, id)
-{
- if (this.show_menu_observer)
- this.show_menu_observer(this);
-
- var ref = this,
- pos = $(elm).offset(),
- table = document.createElement('table'),
- list = document.createElement('tbody');
-
- $(this.error_window).html('');
- $(table).addClass('googie_list').attr('googie_action_btn', '1');
-
- // Check if we should use custom menu builder, if not we use the default
- var changed = false;
- for (var k=0; k<this.custom_menu_builder.length; k++) {
- var eb = this.custom_menu_builder[k];
- if (eb[0](this.results[id])) {
- changed = eb[1](this, list, elm);
- break;
- }
- }
-
- if (!changed) {
- // Build up the result list
- var suggestions = this.results[id]['suggestions'],
- offset = this.results[id]['attrs']['o'],
- len = this.results[id]['attrs']['l'],
- row, item, dummy;
-
- // [Add to dictionary] button
- if (this.has_dictionary && !$(elm).attr('is_corrected')) {
- row = document.createElement('tr'),
- item = document.createElement('td'),
- dummy = document.createElement('span');
-
- $(dummy).text(this.lang_learn_word);
- $(item).attr('googie_action_btn', '1').css('cursor', 'default')
- .mouseover(ref.item_onmouseover)
- .mouseout(ref.item_onmouseout)
- .click(function(e) {
- ref.learnWord(elm, id);
- ref.ignoreError(elm, id);
- });
-
- item.appendChild(dummy);
- row.appendChild(item);
- list.appendChild(row);
- }
-/*
- if (suggestions.length == 0) {
- row = document.createElement('tr'),
- item = document.createElement('td'),
- dummy = document.createElement('span');
-
- $(dummy).text(this.lang_no_suggestions);
- $(item).attr('googie_action_btn', '1').css('cursor', 'default');
-
- item.appendChild(dummy);
- row.appendChild(item);
- list.appendChild(row);
- }
-*/
- for (var i=0, len=suggestions.length; i < len; i++) {
- row = document.createElement('tr'),
- item = document.createElement('td'),
- dummy = document.createElement('span');
-
- $(dummy).html(suggestions[i]);
-
- $(item).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout)
- .click(function(e) { ref.correctError(id, elm, e.target.firstChild) });
-
- item.appendChild(dummy);
- row.appendChild(item);
- list.appendChild(row);
- }
-
- // The element is changed, append the revert
- if (elm.is_changed && elm.innerHTML != elm.old_value) {
- var old_value = elm.old_value,
- revert_row = document.createElement('tr'),
- revert = document.createElement('td'),
- rev_span = document.createElement('span');
-
- $(rev_span).addClass('googie_list_revert').html(this.lang_revert + ' ' + old_value);
-
- $(revert).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout)
- .click(function(e) {
- ref.updateOrginalText(offset, elm.innerHTML, old_value, id);
- $(elm).removeAttr('is_corrected').css('color', '#b91414').html(old_value);
- ref.hideErrorWindow();
- });
-
- revert.appendChild(rev_span);
- revert_row.appendChild(revert);
- list.appendChild(revert_row);
- }
-
- // Append the edit box
- var edit_row = document.createElement('tr'),
- edit = document.createElement('td'),
- edit_input = document.createElement('input'),
- ok_pic = document.createElement('img'),
- edit_form = document.createElement('form');
-
- var onsub = function () {
- if (edit_input.value != '') {
- if (!ref.isDefined(elm.old_value))
- ref.saveOldValue(elm, elm.innerHTML);
-
- ref.updateOrginalText(offset, elm.innerHTML, edit_input.value, id);
- $(elm).attr('is_corrected', true).css('color', 'green').html(edit_input.value);
- ref.hideErrorWindow();
- }
- return false;
- };
-
- $(edit_input).width(120).css({'margin': 0, 'padding': 0});
- $(edit_input).val(elm.innerHTML).attr('googie_action_btn', '1');
- $(edit).css('cursor', 'default').attr('googie_action_btn', '1');
-
- $(ok_pic).attr('src', this.img_dir + 'ok.gif')
- .width(32).height(16)
- .css({'cursor': 'pointer', 'margin-left': '2px', 'margin-right': '2px'})
- .click(onsub);
-
- $(edit_form).attr('googie_action_btn', '1')
- .css({'margin': 0, 'padding': 0, 'cursor': 'default', 'white-space': 'nowrap'})
- .submit(onsub);
-
- edit_form.appendChild(edit_input);
- edit_form.appendChild(ok_pic);
- edit.appendChild(edit_form);
- edit_row.appendChild(edit);
- list.appendChild(edit_row);
-
- // Append extra menu items
- if (this.extra_menu_items.length > 0)
- list.appendChild(this.createListSeparator());
-
- var loop = function(i) {
- if (i < ref.extra_menu_items.length) {
- var e_elm = ref.extra_menu_items[i];
-
- if (!e_elm[2] || e_elm[2](elm, ref)) {
- var e_row = document.createElement('tr'),
- e_col = document.createElement('td');
-
- $(e_col).html(e_elm[0])
- .mouseover(ref.item_onmouseover)
- .mouseout(ref.item_onmouseout)
- .click(function() { return e_elm[1](elm, ref) });
-
- e_row.appendChild(e_col);
- list.appendChild(e_row);
- }
- loop(i+1);
- }
- };
-
- loop(0);
- loop = null;
-
- //Close button
- if (this.use_close_btn) {
- list.appendChild(this.createCloseButton(this.hideErrorWindow));
- }
- }
-
- table.appendChild(list);
- this.error_window.appendChild(table);
-
- // calculate and set position
- var height = $(this.error_window).height(),
- width = $(this.error_window).width(),
- pageheight = $(document).height(),
- pagewidth = $(document).width(),
- top = pos.top + height + 20 < pageheight ? pos.top + 20 : pos.top - height,
- left = pos.left + width < pagewidth ? pos.left : pos.left - width;
-
- $(this.error_window).css({'top': top+'px', 'left': left+'px'}).show();
-
- // Dummy for IE - dropdown bug fix
- if (document.all && !window.opera) {
- if (!this.error_window_iframe) {
- var iframe = $('<iframe>').css({'position': 'absolute', 'z-index': -1});
- $('body').append(iframe);
- this.error_window_iframe = iframe;
- }
-
- $(this.error_window_iframe)
- .css({'top': this.error_window.offsetTop, 'left': this.error_window.offsetLeft,
- 'width': this.error_window.offsetWidth, 'height': this.error_window.offsetHeight})
- .show();
- }
-};
-
-
-//////
-// Edit layer (the layer where the suggestions are stored)
-//////
-this.createEditLayer = function(width, height)
-{
- this.edit_layer = document.createElement('div');
- $(this.edit_layer).addClass('googie_edit_layer').attr('id', 'googie_edit_layer')
- .width('auto').height(height);
-
- if (this.text_area.nodeName.toLowerCase() != 'input' || $(this.text_area).val() == '') {
- $(this.edit_layer).css('overflow', 'auto').height(height-4);
- } else {
- $(this.edit_layer).css('overflow', 'hidden');
- }
-
- var ref = this;
-
- if (this.edit_layer_dbl_click) {
- $(this.edit_layer).dblclick(function(e) {
- if (e.target.className != 'googie_link' && !ref.isErrorWindowShown()) {
- ref.resumeEditing();
- var fn1 = function() {
- $(ref.text_area).focus();
- fn1 = null;
- };
- window.setTimeout(fn1, 10);
- }
- return false;
- });
- }
-};
-
-this.resumeEditing = function()
-{
- this.setStateChanged('ready');
-
- if (this.edit_layer)
- this.el_scroll_top = this.edit_layer.scrollTop;
-
- this.hideErrorWindow();
-
- if (this.main_controller)
- $(this.spell_span).removeClass().addClass('googie_no_style');
-
- if (!this.ignore) {
- if (this.use_focus) {
- $(this.focus_link_t).remove();
- $(this.focus_link_b).remove();
- }
-
- $(this.edit_layer).remove();
- $(this.text_area).show();
-
- if (this.el_scroll_top != undefined)
- this.text_area.scrollTop = this.el_scroll_top;
- }
- this.checkSpellingState(false);
-};
-
-this.createErrorLink = function(text, id)
-{
- var elm = document.createElement('span'),
- ref = this,
- d = function (e) {
- ref.showErrorWindow(elm, id);
- d = null;
- return false;
- };
-
- $(elm).html(text).addClass('googie_link').click(d).removeAttr('is_corrected')
- .attr({'googie_action_btn' : '1', 'g_id' : id});
-
- return elm;
-};
-
-this.createPart = function(txt_part)
-{
- if (txt_part == " ")
- return document.createTextNode(" ");
-
- txt_part = this.escapeSpecial(txt_part);
- txt_part = txt_part.replace(/\n/g, "<br>");
- txt_part = txt_part.replace(/ /g, " &nbsp;");
- txt_part = txt_part.replace(/^ /g, "&nbsp;");
- txt_part = txt_part.replace(/ $/g, "&nbsp;");
-
- var span = document.createElement('span');
- $(span).html(txt_part);
- return span;
-};
-
-this.showErrorsInIframe = function()
-{
- var output = document.createElement('div'),
- pointer = 0,
- results = this.results;
-
- if (results.length > 0) {
- for (var i=0, length=results.length; i < length; i++) {
- var offset = results[i]['attrs']['o'],
- len = results[i]['attrs']['l'],
- part_1_text = this.orginal_text.substring(pointer, offset),
- part_1 = this.createPart(part_1_text);
-
- output.appendChild(part_1);
- pointer += offset - pointer;
-
- // If the last child was an error, then insert some space
- var err_link = this.createErrorLink(this.orginal_text.substr(offset, len), i);
- this.error_links.push(err_link);
- output.appendChild(err_link);
- pointer += len;
- }
-
- // Insert the rest of the orginal text
- var part_2_text = this.orginal_text.substr(pointer, this.orginal_text.length),
- part_2 = this.createPart(part_2_text);
-
- output.appendChild(part_2);
- }
- else
- output.innerHTML = this.orginal_text;
-
- $(output).css('text-align', 'left');
-
- var me = this;
- if (this.custom_item_evaulator)
- $.map(this.error_links, function(elm){me.custom_item_evaulator(me, elm)});
-
- $(this.edit_layer).append(output);
-
- // Hide text area and show edit layer
- $(this.text_area).hide();
- $(this.edit_layer).insertBefore(this.text_area);
-
- if (this.use_focus) {
- this.focus_link_t = this.createFocusLink('focus_t');
- this.focus_link_b = this.createFocusLink('focus_b');
-
- $(this.focus_link_t).insertBefore(this.edit_layer);
- $(this.focus_link_b).insertAfter(this.edit_layer);
- }
-
-// this.edit_layer.scrollTop = this.ta_scroll_top;
-};
-
-
-//////
-// Choose language menu
-//////
-this.createLangWindow = function()
-{
- this.language_window = document.createElement('div');
- $(this.language_window).addClass('googie_window popupmenu')
- .width(100).attr('googie_action_btn', '1');
-
- // Build up the result list
- var table = document.createElement('table'),
- list = document.createElement('tbody'),
- ref = this,
- row, item, span;
-
- $(table).addClass('googie_list').width('100%');
- this.lang_elms = [];
-
- for (i=0; i < this.langlist_codes.length; i++) {
- row = document.createElement('tr');
- item = document.createElement('td');
- span = document.createElement('span');
-
- $(span).text(this.lang_to_word[this.langlist_codes[i]]);
- this.lang_elms.push(item);
-
- $(item).attr('googieId', this.langlist_codes[i])
- .bind('click', function(e) {
- ref.deHighlightCurSel();
- ref.setCurrentLanguage($(this).attr('googieId'));
-
- if (ref.lang_state_observer != null) {
- ref.lang_state_observer();
- }
-
- ref.highlightCurSel();
- ref.hideLangWindow();
- })
- .bind('mouseover', function(e) {
- if (this.className != "googie_list_selected")
- this.className = "googie_list_onhover";
- })
- .bind('mouseout', function(e) {
- if (this.className != "googie_list_selected")
- this.className = "googie_list_onout";
- });
-
- item.appendChild(span);
- row.appendChild(item);
- list.appendChild(row);
- }
-
- // Close button
- if (this.use_close_btn) {
- list.appendChild(this.createCloseButton(function () { ref.hideLangWindow.apply(ref) }));
- }
-
- this.highlightCurSel();
-
- table.appendChild(list);
- this.language_window.appendChild(table);
-};
-
-this.isLangWindowShown = function()
-{
- return $(this.language_window).is(':visible');
-};
-
-this.hideLangWindow = function()
-{
- $(this.language_window).hide();
- $(this.switch_lan_pic).removeClass().addClass('googie_lang_3d_on');
-};
-
-this.showLangWindow = function(elm)
-{
- if (this.show_menu_observer)
- this.show_menu_observer(this);
-
- this.createLangWindow();
- $('body').append(this.language_window);
-
- var pos = $(elm).offset(),
- height = $(elm).height(),
- width = $(elm).width(),
- h = $(this.language_window).height(),
- pageheight = $(document).height(),
- left = this.change_lang_pic_placement == 'right' ?
- pos.left - 100 + width : pos.left + width,
- top = pos.top + h < pageheight ? pos.top + height : pos.top - h - 4;
-
- $(this.language_window).css({'top' : top+'px','left' : left+'px'}).show();
-
- this.highlightCurSel();
-};
-
-this.deHighlightCurSel = function()
-{
- $(this.lang_cur_elm).removeClass().addClass('googie_list_onout');
-};
-
-this.highlightCurSel = function()
-{
- if (GOOGIE_CUR_LANG == null)
- GOOGIE_CUR_LANG = GOOGIE_DEFAULT_LANG;
- for (var i=0; i < this.lang_elms.length; i++) {
- if ($(this.lang_elms[i]).attr('googieId') == GOOGIE_CUR_LANG) {
- this.lang_elms[i].className = 'googie_list_selected';
- this.lang_cur_elm = this.lang_elms[i];
- }
- else {
- this.lang_elms[i].className = 'googie_list_onout';
- }
- }
-};
-
-this.createChangeLangPic = function()
-{
- var img = $('<img>')
- .attr({src: this.img_dir + 'change_lang.gif', 'alt': 'Change language', 'googie_action_btn': '1'}),
- switch_lan = document.createElement('span');
- ref = this;
-
- $(switch_lan).addClass('googie_lang_3d_on')
- .append(img)
- .bind('click', function(e) {
- var elm = this.tagName.toLowerCase() == 'img' ? this.parentNode : this;
- if($(elm).hasClass('googie_lang_3d_click')) {
- elm.className = 'googie_lang_3d_on';
- ref.hideLangWindow();
- }
- else {
- elm.className = 'googie_lang_3d_click';
- ref.showLangWindow(elm);
- }
- });
-
- return switch_lan;
-};
-
-this.createSpellDiv = function()
-{
- var span = document.createElement('span');
-
- $(span).addClass('googie_check_spelling_link').text(this.lang_chck_spell);
-
- if (this.show_spell_img) {
- $(span).append(' ').append($('<img>').attr('src', this.img_dir + 'spellc.gif'));
- }
- return span;
-};
-
-
-//////
-// State functions
-/////
-this.flashNoSpellingErrorState = function(on_finish)
-{
- this.setStateChanged('no_error_found');
-
- var ref = this;
- if (this.main_controller) {
- var no_spell_errors;
- if (on_finish) {
- var fn = function() {
- on_finish();
- ref.checkSpellingState();
- };
- no_spell_errors = fn;
- }
- else
- no_spell_errors = function () { ref.checkSpellingState() };
-
- var rsm = $('<span>').text(this.lang_no_error_found);
-
- $(this.switch_lan_pic).hide();
- $(this.spell_span).empty().append(rsm)
- .removeClass().addClass('googie_check_spelling_ok');
-
- window.setTimeout(no_spell_errors, 1000);
- }
-};
-
-this.resumeEditingState = function()
-{
- this.setStateChanged('resume_editing');
-
- //Change link text to resume
- if (this.main_controller) {
- var rsm = $('<span>').text(this.lang_rsm_edt);
- var ref = this;
-
- $(this.switch_lan_pic).hide();
- $(this.spell_span).empty().unbind().append(rsm)
- .bind('click', function() { ref.resumeEditing() })
- .removeClass().addClass('googie_resume_editing');
- }
-
- try { this.edit_layer.scrollTop = this.ta_scroll_top; }
- catch (e) {};
-};
-
-this.checkSpellingState = function(fire)
-{
- if (fire)
- this.setStateChanged('ready');
-
- if (this.show_change_lang_pic)
- this.switch_lan_pic = this.createChangeLangPic();
- else
- this.switch_lan_pic = document.createElement('span');
-
- var span_chck = this.createSpellDiv(),
- ref = this;
-
- if (this.custom_spellcheck_starter)
- $(span_chck).bind('click', function(e) { ref.custom_spellcheck_starter() });
- else {
- $(span_chck).bind('click', function(e) { ref.spellCheck() });
- }
-
- if (this.main_controller) {
- if (this.change_lang_pic_placement == 'left') {
- $(this.spell_container).empty().append(this.switch_lan_pic).append(' ').append(span_chck);
- } else {
- $(this.spell_container).empty().append(span_chck).append(' ').append(this.switch_lan_pic);
- }
- }
-
- this.spell_span = span_chck;
-};
-
-
-//////
-// Misc. functions
-/////
-this.isDefined = function(o)
-{
- return (o !== undefined && o !== null)
-};
-
-this.errorFixed = function()
-{
- this.cnt_errors_fixed++;
- if (this.all_errors_fixed_observer)
- if (this.cnt_errors_fixed == this.cnt_errors) {
- this.hideErrorWindow();
- this.all_errors_fixed_observer();
- }
-};
-
-this.errorFound = function()
-{
- this.cnt_errors++;
-};
-
-this.createCloseButton = function(c_fn)
-{
- return this.createButton(this.lang_close, 'googie_list_close', c_fn);
-};
-
-this.createButton = function(name, css_class, c_fn)
-{
- var btn_row = document.createElement('tr'),
- btn = document.createElement('td'),
- spn_btn;
-
- if (css_class) {
- spn_btn = document.createElement('span');
- $(spn_btn).addClass(css_class).html(name);
- } else {
- spn_btn = document.createTextNode(name);
- }
-
- $(btn).bind('click', c_fn)
- .bind('mouseover', this.item_onmouseover)
- .bind('mouseout', this.item_onmouseout);
-
- btn.appendChild(spn_btn);
- btn_row.appendChild(btn);
-
- return btn_row;
-};
-
-this.removeIndicator = function(elm)
-{
- //$(this.indicator).remove();
- // roundcube mod.
- if (window.rcmail)
- rcmail.set_busy(false, null, this.rc_msg_id);
-};
-
-this.appendIndicator = function(elm)
-{
- // modified by roundcube
- if (window.rcmail)
- this.rc_msg_id = rcmail.set_busy(true, 'checking');
-/*
- this.indicator = document.createElement('img');
- $(this.indicator).attr('src', this.img_dir + 'indicator.gif')
- .css({'margin-right': '5px', 'text-decoration': 'none'}).width(16).height(16);
-
- if (elm)
- $(this.indicator).insertBefore(elm);
- else
- $('body').append(this.indicator);
-*/
-}
-
-this.createFocusLink = function(name)
-{
- var link = document.createElement('a');
- $(link).attr({'href': 'javascript:;', 'name': name});
- return link;
-};
-
-this.item_onmouseover = function(e)
-{
- if (this.className != 'googie_list_revert' && this.className != 'googie_list_close')
- this.className = 'googie_list_onhover';
- else
- this.parentNode.className = 'googie_list_onhover';
-};
-
-this.item_onmouseout = function(e)
-{
- if (this.className != 'googie_list_revert' && this.className != 'googie_list_close')
- this.className = 'googie_list_onout';
- else
- this.parentNode.className = 'googie_list_onout';
-};
-
-
-};
+var GOOGIE_CUR_LANG,GOOGIE_DEFAULT_LANG="en";function GoogieSpell(c,a,e){var b=this,d=rcmail.get_cookie("language");GOOGIE_CUR_LANG=d!=null?d:GOOGIE_DEFAULT_LANG;this.array_keys=function(f){var h=[];for(var g in f){h.push([g])}return h};this.img_dir=c;this.server_url=a;this.org_lang_to_word={da:"Dansk",de:"Deutsch",en:"English",es:"Español",fr:"Français",it:"Italiano",nl:"Nederlands",pl:"Polski",pt:"Português",ru:"РуÑÑкий",fi:"Suomi",sv:"Svenska"};this.lang_to_word=this.org_lang_to_word;this.langlist_codes=this.array_keys(this.lang_to_word);this.show_change_lang_pic=true;this.change_lang_pic_placement="right";this.report_state_change=true;this.ta_scroll_top=0;this.el_scroll_top=0;this.lang_chck_spell="Check spelling";this.lang_revert="Revert to";this.lang_close="Close";this.lang_rsm_edt="Resume editing";this.lang_no_error_found="No spelling errors found";this.lang_no_suggestions="No suggestions";this.lang_learn_word="Add to dictionary";this.show_spell_img=false;this.decoration=true;this.use_close_btn=false;this.edit_layer_dbl_click=true;this.report_ta_not_found=true;this.custom_ajax_error=null;this.custom_no_spelling_error=null;this.custom_menu_builder=[];this.custom_item_evaulator=null;this.extra_menu_items=[];this.custom_spellcheck_starter=null;this.main_controller=true;this.has_dictionary=e;this.lang_state_observer=null;this.spelling_state_observer=null;this.show_menu_observer=null;this.all_errors_fixed_observer=null;this.use_focus=false;this.focus_link_t=null;this.focus_link_b=null;this.cnt_errors=0;this.cnt_errors_fixed=0;$(document).bind("click",function(g){var f=$(g.target);if(f.attr("googie_action_btn")!="1"&&b.isLangWindowShown()){b.hideLangWindow()}if(f.attr("googie_action_btn")!="1"&&b.isErrorWindowShown()){b.hideErrorWindow()}});this.decorateTextarea=function(m){this.text_area=typeof m==="string"?document.getElementById(m):m;if(this.text_area){if(!this.spell_container&&this.decoration){var j=document.createElement("table"),g=document.createElement("tbody"),l=document.createElement("tr"),k=document.createElement("td"),f=this.isDefined(this.force_width)?this.force_width:this.text_area.offsetWidth,h=this.isDefined(this.force_height)?this.force_height:16;l.appendChild(k);g.appendChild(l);$(j).append(g).insertBefore(this.text_area).width("100%").height(h);$(k).height(h).width(f).css("text-align","right");this.spell_container=k}this.checkSpellingState()}else{if(this.report_ta_not_found){alert("Text area not found")}}};this.setSpellContainer=function(f){this.spell_container=typeof f==="string"?document.getElementById(f):f};this.setLanguages=function(f){this.lang_to_word=f;this.langlist_codes=this.array_keys(f)};this.setCurrentLanguage=function(g){GOOGIE_CUR_LANG=g;var f=new Date();f.setTime(f.getTime()+365*24*60*60*1000);rcmail.set_cookie("language",g,f)};this.setForceWidthHeight=function(g,f){this.force_width=g;this.force_height=f};this.setDecoration=function(f){this.decoration=f};this.dontUseCloseButtons=function(){this.use_close_btn=false};this.appendNewMenuItem=function(g,h,f){this.extra_menu_items.push([g,h,f])};this.appendCustomMenuBuilder=function(g,f){this.custom_menu_builder.push([g,f])};this.setFocus=function(){try{this.focus_link_b.focus();this.focus_link_t.focus();return true}catch(f){return false}};this.setStateChanged=function(f){this.state=f;if(this.spelling_state_observer!=null&&this.report_state_change){this.spelling_state_observer(f,this)}};this.setReportStateChange=function(f){this.report_state_change=f};this.getUrl=function(){return this.server_url+GOOGIE_CUR_LANG};this.escapeSpecial=function(f){return f?f.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):""};this.createXMLReq=function(f){return'<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>'+f+"</text></spellrequest>"};this.spellCheck=function(h){this.prepare(h);var g=this.escapeSpecial(this.orginal_text),f=this;$.ajax({type:"POST",url:this.getUrl(),data:this.createXMLReq(g),dataType:"text",error:function(j){if(f.custom_ajax_error){f.custom_ajax_error(f)}else{alert("An error was encountered on the server. Please try again later.")}if(f.main_controller){$(f.spell_span).remove();f.removeIndicator()}f.checkSpellingState()},success:function(j){f.processData(j);if(!f.results.length){if(!f.custom_no_spelling_error){f.flashNoSpellingErrorState()}else{f.custom_no_spelling_error(f)}}f.removeIndicator()}})};this.learnWord=function(h,j){h=this.escapeSpecial(h.innerHTML);var g=this,f='<?xml version="1.0" encoding="utf-8" ?><learnword><text>'+h+"</text></learnword>";$.ajax({type:"POST",url:this.getUrl(),data:f,dataType:"text",error:function(k){if(g.custom_ajax_error){g.custom_ajax_error(g)}else{alert("An error was encountered on the server. Please try again later.")}},success:function(k){}})};this.prepare=function(h,g){this.cnt_errors_fixed=0;this.cnt_errors=0;this.setStateChanged("checking_spell");if(!g&&this.main_controller){this.appendIndicator(this.spell_span)}this.error_links=[];this.ta_scroll_top=this.text_area.scrollTop;this.ignore=h;this.hideLangWindow();if($(this.text_area).val()==""||h){if(!this.custom_no_spelling_error){this.flashNoSpellingErrorState()}else{this.custom_no_spelling_error(this)}this.removeIndicator();return}this.createEditLayer(this.text_area.offsetWidth,this.text_area.offsetHeight);this.createErrorWindow();$("body").append(this.error_window);try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")}catch(f){}if(this.main_controller){$(this.spell_span).unbind("click")}this.orginal_text=$(this.text_area).val()};this.parseResult=function(s){var l=/\w+="(\d+|true)"/g,o=/\t/g,f=s.match(/<c[^>]*>[^<]*<\/c>/g),p=[];if(f==null){return p}for(var q=0,r=f.length;q<r;q++){var w=[];this.errorFound();w.attrs=[];var u,h,v=f[q].match(l);for(var n=0;n<v.length;n++){u=v[n].split(/=/);h=u[1].replace(/"/g,"");w.attrs[u[0]]=h!="true"?parseInt(h):h}w.suggestions=[];var t=f[q].replace(/<[^>]*>/g,""),g=t.split(o);for(var m=0;m<g.length;m++){if(g[m]!=""){w.suggestions.push(g[m])}}p.push(w)}return p};this.processData=function(f){this.results=this.parseResult(f);if(this.results.length){this.showErrorsInIframe();this.resumeEditingState()}};this.createErrorWindow=function(){this.error_window=document.createElement("div");$(this.error_window).addClass("googie_window popupmenu").attr("googie_action_btn","1")};this.isErrorWindowShown=function(){return $(this.error_window).is(":visible")};this.hideErrorWindow=function(){$(this.error_window).hide();$(this.error_window_iframe).hide()};this.updateOrginalText=function(k,n,p,f){var h=this.orginal_text.substring(0,k),g=this.orginal_text.substring(k+n.length),o=p.length-n.length;this.orginal_text=h+p+g;$(this.text_area).val(this.orginal_text);for(var l=0,m=this.results.length;l<m;l++){if(l!=f&&l>f){this.results[l]["attrs"]["o"]+=o}}};this.saveOldValue=function(g,f){g.is_changed=true;g.old_value=f};this.createListSeparator=function(){var g=document.createElement("td"),f=document.createElement("tr");$(g).html(" ").attr("googie_action_btn","1").css({cursor:"default","font-size":"3px","border-top":"1px solid #ccc","padding-top":"3px"});f.appendChild(g);return f};this.correctError=function(n,m,l,f){var g=m.innerHTML,h=l.nodeType==3?l.nodeValue:l.innerHTML,k=this.results[n]["attrs"]["o"];if(f){var j=m.previousSibling.innerHTML;m.previousSibling.innerHTML=j.slice(0,j.length-1);g=" "+g;k--}this.hideErrorWindow();this.updateOrginalText(k,g,h,n);$(m).html(h).css("color","green").attr("is_corrected",true);this.results[n]["attrs"]["l"]=h.length;if(!this.isDefined(m.old_value)){this.saveOldValue(m,g)}this.errorFixed()};this.ignoreError=function(g,f){$(g).removeAttr("class").css("color","").unbind();this.hideErrorWindow()};this.showErrorWindow=function(u,B){if(this.show_menu_observer){this.show_menu_observer(this)}var o=this,p=$(u).offset(),I=document.createElement("table"),J=document.createElement("tbody");$(this.error_window).html("");$(I).addClass("googie_list").attr("googie_action_btn","1");var r=false;for(var F=0;F<this.custom_menu_builder.length;F++){var q=this.custom_menu_builder[F];if(q[0](this.results[B])){r=q[1](this,J,u);break}}if(!r){var z=this.results[B]["suggestions"],n=this.results[B]["attrs"]["o"],H=this.results[B]["attrs"]["l"],t,K,O;if(this.has_dictionary&&!$(u).attr("is_corrected")){t=document.createElement("tr"),K=document.createElement("td"),O=document.createElement("span");$(O).text(this.lang_learn_word);$(K).attr("googie_action_btn","1").css("cursor","default").mouseover(o.item_onmouseover).mouseout(o.item_onmouseout).click(function(k){o.learnWord(u,B);o.ignoreError(u,B)});K.appendChild(O);t.appendChild(K);J.appendChild(t)}for(var G=0,H=z.length;G<H;G++){t=document.createElement("tr"),K=document.createElement("td"),O=document.createElement("span");$(O).html(z[G]);$(K).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout).click(function(k){o.correctError(B,u,k.target.firstChild)});K.appendChild(O);t.appendChild(K);J.appendChild(t)}if(u.is_changed&&u.innerHTML!=u.old_value){var g=u.old_value,j=document.createElement("tr"),f=document.createElement("td"),s=document.createElement("span");$(s).addClass("googie_list_revert").html(this.lang_revert+" "+g);$(f).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout).click(function(k){o.updateOrginalText(n,u.innerHTML,g,B);$(u).removeAttr("is_corrected").css("color","#b91414").html(g);o.hideErrorWindow()});f.appendChild(s);j.appendChild(f);J.appendChild(j)}var M=document.createElement("tr"),C=document.createElement("td"),N=document.createElement("input"),w=document.createElement("img"),h=document.createElement("form");var m=function(){if(N.value!=""){if(!o.isDefined(u.old_value)){o.saveOldValue(u,u.innerHTML)}o.updateOrginalText(n,u.innerHTML,N.value,B);$(u).attr("is_corrected",true).css("color","green").html(N.value);o.hideErrorWindow()}return false};$(N).width(120).css({margin:0,padding:0});$(N).val(u.innerHTML).attr("googie_action_btn","1");$(C).css("cursor","default").attr("googie_action_btn","1");$(w).attr("src",this.img_dir+"ok.gif").width(32).height(16).css({cursor:"pointer","margin-left":"2px","margin-right":"2px"}).click(m);$(h).attr("googie_action_btn","1").css({margin:0,padding:0,cursor:"default","white-space":"nowrap"}).submit(m);h.appendChild(N);h.appendChild(w);C.appendChild(h);M.appendChild(C);J.appendChild(M);if(this.extra_menu_items.length>0){J.appendChild(this.createListSeparator())}var L=function(Q){if(Q<o.extra_menu_items.length){var P=o.extra_menu_items[Q];if(!P[2]||P[2](u,o)){var k=document.createElement("tr"),R=document.createElement("td");$(R).html(P[0]).mouseover(o.item_onmouseover).mouseout(o.item_onmouseout).click(function(){return P[1](u,o)});k.appendChild(R);J.appendChild(k)}L(Q+1)}};L(0);L=null;if(this.use_close_btn){J.appendChild(this.createCloseButton(this.hideErrorWindow))}}I.appendChild(J);this.error_window.appendChild(I);var A=$(this.error_window).height(),E=$(this.error_window).width(),x=$(document).height(),D=$(document).width(),y=p.top+A+20<x?p.top+20:p.top-A,l=p.left+E<D?p.left:p.left-E;$(this.error_window).css({top:y+"px",left:l+"px"}).show();if($.browser.msie){if(!this.error_window_iframe){var v=$("<iframe>").css({position:"absolute","z-index":-1});$("body").append(v);this.error_window_iframe=v}$(this.error_window_iframe).css({top:this.error_window.offsetTop,left:this.error_window.offsetLeft,width:this.error_window.offsetWidth,height:this.error_window.offsetHeight}).show()}};this.createEditLayer=function(g,f){this.edit_layer=document.createElement("div");$(this.edit_layer).addClass("googie_edit_layer").attr("id","googie_edit_layer").width("auto").height(f);if(this.text_area.nodeName.toLowerCase()!="input"||$(this.text_area).val()==""){$(this.edit_layer).css("overflow","auto").height(f-4)}else{$(this.edit_layer).css("overflow","hidden")}var h=this;if(this.edit_layer_dbl_click){$(this.edit_layer).dblclick(function(k){if(k.target.className!="googie_link"&&!h.isErrorWindowShown()){h.resumeEditing();var j=function(){$(h.text_area).focus();j=null};window.setTimeout(j,10)}return false})}};this.resumeEditing=function(){this.setStateChanged("ready");if(this.edit_layer){this.el_scroll_top=this.edit_layer.scrollTop}this.hideErrorWindow();if(this.main_controller){$(this.spell_span).removeClass().addClass("googie_no_style")}if(!this.ignore){if(this.use_focus){$(this.focus_link_t).remove();$(this.focus_link_b).remove()}$(this.edit_layer).remove();$(this.text_area).show();if(this.el_scroll_top!=undefined){this.text_area.scrollTop=this.el_scroll_top}}this.checkSpellingState(false)};this.createErrorLink=function(h,k){var j=document.createElement("span"),f=this,g=function(l){f.showErrorWindow(j,k);g=null;return false};$(j).html(h).addClass("googie_link").click(g).removeAttr("is_corrected").attr({googie_action_btn:"1",g_id:k});return j};this.createPart=function(g){if(g==" "){return document.createTextNode(" ")}g=this.escapeSpecial(g);g=g.replace(/\n/g,"<br>");g=g.replace(/ /g," &nbsp;");g=g.replace(/^ /g,"&nbsp;");g=g.replace(/ $/g,"&nbsp;");var f=document.createElement("span");$(f).html(g);return f};this.showErrorsInIframe=function(){var m=document.createElement("div"),f=0,o=this.results;if(o.length>0){for(var p=0,k=o.length;p<k;p++){var n=o[p]["attrs"]["o"],r=o[p]["attrs"]["l"],j=this.orginal_text.substring(f,n),l=this.createPart(j);m.appendChild(l);f+=n-f;var g=this.createErrorLink(this.orginal_text.substr(n,r),p);this.error_links.push(g);m.appendChild(g);f+=r}var q=this.orginal_text.substr(f,this.orginal_text.length),h=this.createPart(q);m.appendChild(h)}else{m.innerHTML=this.orginal_text}$(m).css("text-align","left");var s=this;if(this.custom_item_evaulator){$.map(this.error_links,function(t){s.custom_item_evaulator(s,t)})}$(this.edit_layer).append(m);$(this.text_area).hide();$(this.edit_layer).insertBefore(this.text_area);if(this.use_focus){this.focus_link_t=this.createFocusLink("focus_t");this.focus_link_b=this.createFocusLink("focus_b");$(this.focus_link_t).insertBefore(this.edit_layer);$(this.focus_link_b).insertAfter(this.edit_layer)}};this.createLangWindow=function(){this.language_window=document.createElement("div");$(this.language_window).addClass("googie_window popupmenu").width(100).attr("googie_action_btn","1");var j=document.createElement("table"),k=document.createElement("tbody"),h=this,l,g,f;$(j).addClass("googie_list").width("100%");this.lang_elms=[];for(i=0;i<this.langlist_codes.length;i++){l=document.createElement("tr");g=document.createElement("td");f=document.createElement("span");$(f).text(this.lang_to_word[this.langlist_codes[i]]);this.lang_elms.push(g);$(g).attr("googieId",this.langlist_codes[i]).bind("click",function(m){h.deHighlightCurSel();h.setCurrentLanguage($(this).attr("googieId"));if(h.lang_state_observer!=null){h.lang_state_observer()}h.highlightCurSel();h.hideLangWindow()}).bind("mouseover",function(m){if(this.className!="googie_list_selected"){this.className="googie_list_onhover"}}).bind("mouseout",function(m){if(this.className!="googie_list_selected"){this.className="googie_list_onout"}});g.appendChild(f);l.appendChild(g);k.appendChild(l)}if(this.use_close_btn){k.appendChild(this.createCloseButton(function(){h.hideLangWindow.apply(h)}))}this.highlightCurSel();j.appendChild(k);this.language_window.appendChild(j)};this.isLangWindowShown=function(){return $(this.language_window).is(":visible")};this.hideLangWindow=function(){$(this.language_window).hide();$(this.switch_lan_pic).removeClass().addClass("googie_lang_3d_on")};this.showLangWindow=function(o){if(this.show_menu_observer){this.show_menu_observer(this)}this.createLangWindow();$("body").append(this.language_window);var n=$(o).offset(),f=$(o).height(),j=$(o).width(),g=$(this.language_window).height(),k=$(document).height(),m=this.change_lang_pic_placement=="right"?n.left-100+j:n.left+j,l=n.top+g<k?n.top+f:n.top-g-4;$(this.language_window).css({top:l+"px",left:m+"px"}).show();this.highlightCurSel()};this.deHighlightCurSel=function(){$(this.lang_cur_elm).removeClass().addClass("googie_list_onout")};this.highlightCurSel=function(){if(GOOGIE_CUR_LANG==null){GOOGIE_CUR_LANG=GOOGIE_DEFAULT_LANG}for(var f=0;f<this.lang_elms.length;f++){if($(this.lang_elms[f]).attr("googieId")==GOOGIE_CUR_LANG){this.lang_elms[f].className="googie_list_selected";this.lang_cur_elm=this.lang_elms[f]}else{this.lang_elms[f].className="googie_list_onout"}}};this.createChangeLangPic=function(){var f=$("<img>").attr({src:this.img_dir+"change_lang.gif",alt:"Change language",googie_action_btn:"1"}),g=document.createElement("span");b=this;$(g).addClass("googie_lang_3d_on").append(f).bind("click",function(h){var j=this.tagName.toLowerCase()=="img"?this.parentNode:this;if($(j).hasClass("googie_lang_3d_click")){j.className="googie_lang_3d_on";b.hideLangWindow()}else{j.className="googie_lang_3d_click";b.showLangWindow(j)}});return g};this.createSpellDiv=function(){var f=document.createElement("span");$(f).addClass("googie_check_spelling_link").text(this.lang_chck_spell);if(this.show_spell_img){$(f).append(" ").append($("<img>").attr("src",this.img_dir+"spellc.gif"))}return f};this.flashNoSpellingErrorState=function(f){this.setStateChanged("no_error_found");var j=this;if(this.main_controller){var k;if(f){var h=function(){f();j.checkSpellingState()};k=h}else{k=function(){j.checkSpellingState()}}var g=$("<span>").text(this.lang_no_error_found);$(this.switch_lan_pic).hide();$(this.spell_span).empty().append(g).removeClass().addClass("googie_check_spelling_ok");window.setTimeout(k,1000)}};this.resumeEditingState=function(){this.setStateChanged("resume_editing");if(this.main_controller){var f=$("<span>").text(this.lang_rsm_edt);var g=this;$(this.switch_lan_pic).hide();$(this.spell_span).empty().unbind().append(f).bind("click",function(){g.resumeEditing()}).removeClass().addClass("googie_resume_editing")}try{this.edit_layer.scrollTop=this.ta_scroll_top}catch(h){}};this.checkSpellingState=function(g){if(g){this.setStateChanged("ready")}if(this.show_change_lang_pic){this.switch_lan_pic=this.createChangeLangPic()}else{this.switch_lan_pic=document.createElement("span")}var f=this.createSpellDiv(),h=this;if(this.custom_spellcheck_starter){$(f).bind("click",function(j){h.custom_spellcheck_starter()})}else{$(f).bind("click",function(j){h.spellCheck()})}if(this.main_controller){if(this.change_lang_pic_placement=="left"){$(this.spell_container).empty().append(this.switch_lan_pic).append(" ").append(f)}else{$(this.spell_container).empty().append(f).append(" ").append(this.switch_lan_pic)}}this.spell_span=f};this.isDefined=function(f){return(f!==undefined&&f!==null)};this.errorFixed=function(){this.cnt_errors_fixed++;if(this.all_errors_fixed_observer){if(this.cnt_errors_fixed==this.cnt_errors){this.hideErrorWindow();this.all_errors_fixed_observer()}}};this.errorFound=function(){this.cnt_errors++};this.createCloseButton=function(f){return this.createButton(this.lang_close,"googie_list_close",f)};this.createButton=function(g,j,l){var k=document.createElement("tr"),h=document.createElement("td"),f;if(j){f=document.createElement("span");$(f).addClass(j).html(g)}else{f=document.createTextNode(g)}$(h).bind("click",l).bind("mouseover",this.item_onmouseover).bind("mouseout",this.item_onmouseout);h.appendChild(f);k.appendChild(h);return k};this.removeIndicator=function(f){if(window.rcmail){rcmail.set_busy(false,null,this.rc_msg_id)}};this.appendIndicator=function(f){if(window.rcmail){this.rc_msg_id=rcmail.set_busy(true,"checking")}};this.createFocusLink=function(f){var g=document.createElement("a");$(g).attr({href:"javascript:;",name:f});return g};this.item_onmouseover=function(f){if(this.className!="googie_list_revert"&&this.className!="googie_list_close"){this.className="googie_list_onhover"}else{this.parentNode.className="googie_list_onhover"}};this.item_onmouseout=function(f){if(this.className!="googie_list_revert"&&this.className!="googie_list_close"){this.className="googie_list_onout"}else{this.parentNode.className="googie_list_onout"}}}; \ No newline at end of file
diff --git a/program/js/jquery.min.js b/program/js/jquery.min.js
index 83589daa7..5cb76ea03 100644..120000
--- a/program/js/jquery.min.js
+++ b/program/js/jquery.min.js
@@ -1,2 +1 @@
-/*! jQuery v1.8.3 jquery.com | jquery.org/license */
-(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file
+../../../javascript/jquery/jquery.min.js \ No newline at end of file
diff --git a/program/js/jstz.min.js b/program/js/jstz.min.js
index d5f888cac..81c5057fd 100644
--- a/program/js/jstz.min.js
+++ b/program/js/jstz.min.js
@@ -1,2 +1,11 @@
-/*! jsTimezoneDetect - v1.0.5 - 2013-04-01 */
-(function(e){var t=function(){"use strict";var e="s",n=2011,r=function(e){var t=-e.getTimezoneOffset();return t!==null?t:0},i=function(e,t,n){var r=new Date;return e!==undefined&&r.setFullYear(e),r.setDate(n),r.setMonth(t),r},s=function(e){return r(i(e,0,2))},o=function(e){return r(i(e,5,2))},u=function(e){var t=e.getMonth()>7?o(e.getFullYear()):s(e.getFullYear()),n=r(e);return t-n!==0},a=function(){var t=s(n),r=o(n),i=t-r;return i<0?t+",1":i>0?r+",1,"+e:t+",0"},f=function(){var e=a();return new t.TimeZone(t.olson.timezones[e])},l=function(e){var t=new Date(2010,6,15,1,0,0,0),n={"America/Denver":new Date(2011,2,13,3,0,0,0),"America/Mazatlan":new Date(2011,3,3,3,0,0,0),"America/Chicago":new Date(2011,2,13,3,0,0,0),"America/Mexico_City":new Date(2011,3,3,3,0,0,0),"America/Asuncion":new Date(2012,9,7,3,0,0,0),"America/Santiago":new Date(2012,9,3,3,0,0,0),"America/Campo_Grande":new Date(2012,9,21,5,0,0,0),"America/Montevideo":new Date(2011,9,2,3,0,0,0),"America/Sao_Paulo":new Date(2011,9,16,5,0,0,0),"America/Los_Angeles":new Date(2011,2,13,8,0,0,0),"America/Santa_Isabel":new Date(2011,3,5,8,0,0,0),"America/Havana":new Date(2012,2,10,2,0,0,0),"America/New_York":new Date(2012,2,10,7,0,0,0),"Asia/Beirut":new Date(2011,2,27,1,0,0,0),"Europe/Helsinki":new Date(2011,2,27,4,0,0,0),"Europe/Istanbul":new Date(2011,2,28,5,0,0,0),"Asia/Damascus":new Date(2011,3,1,2,0,0,0),"Asia/Jerusalem":new Date(2011,3,1,6,0,0,0),"Asia/Gaza":new Date(2009,2,28,0,30,0,0),"Africa/Cairo":new Date(2009,3,25,0,30,0,0),"Pacific/Auckland":new Date(2011,8,26,7,0,0,0),"Pacific/Fiji":new Date(2010,10,29,23,0,0,0),"America/Halifax":new Date(2011,2,13,6,0,0,0),"America/Goose_Bay":new Date(2011,2,13,2,1,0,0),"America/Miquelon":new Date(2011,2,13,5,0,0,0),"America/Godthab":new Date(2011,2,27,1,0,0,0),"Europe/Moscow":t,"Asia/Yekaterinburg":t,"Asia/Omsk":t,"Asia/Krasnoyarsk":t,"Asia/Irkutsk":t,"Asia/Yakutsk":t,"Asia/Vladivostok":t,"Asia/Kamchatka":t,"Europe/Minsk":t,"Pacific/Apia":new Date(2010,10,1,1,0,0,0),"Australia/Perth":new Date(2008,10,1,1,0,0,0)};return n[e]};return{determine:f,date_is_dst:u,dst_start_for:l}}();t.TimeZone=function(e){"use strict";var n={"America/Denver":["America/Denver","America/Mazatlan"],"America/Chicago":["America/Chicago","America/Mexico_City"],"America/Santiago":["America/Santiago","America/Asuncion","America/Campo_Grande"],"America/Montevideo":["America/Montevideo","America/Sao_Paulo"],"Asia/Beirut":["Asia/Beirut","Europe/Helsinki","Europe/Istanbul","Asia/Damascus","Asia/Jerusalem","Asia/Gaza"],"Pacific/Auckland":["Pacific/Auckland","Pacific/Fiji"],"America/Los_Angeles":["America/Los_Angeles","America/Santa_Isabel"],"America/New_York":["America/Havana","America/New_York"],"America/Halifax":["America/Goose_Bay","America/Halifax"],"America/Godthab":["America/Miquelon","America/Godthab"],"Asia/Dubai":["Europe/Moscow"],"Asia/Dhaka":["Asia/Yekaterinburg"],"Asia/Jakarta":["Asia/Omsk"],"Asia/Shanghai":["Asia/Krasnoyarsk","Australia/Perth"],"Asia/Tokyo":["Asia/Irkutsk"],"Australia/Brisbane":["Asia/Yakutsk"],"Pacific/Noumea":["Asia/Vladivostok"],"Pacific/Tarawa":["Asia/Kamchatka"],"Pacific/Tongatapu":["Pacific/Apia"],"Africa/Johannesburg":["Asia/Gaza","Africa/Cairo"],"Asia/Baghdad":["Europe/Minsk"]},r=e,i=function(){var e=n[r],i=e.length,s=0,o=e[0];for(;s<i;s+=1){o=e[s];if(t.date_is_dst(t.dst_start_for(o))){r=o;return}}},s=function(){return typeof n[r]!="undefined"};return s()&&i(),{name:function(){return r}}},t.olson={},t.olson.timezones={"-720,0":"Pacific/Majuro","-660,0":"Pacific/Pago_Pago","-600,1":"America/Adak","-600,0":"Pacific/Honolulu","-570,0":"Pacific/Marquesas","-540,0":"Pacific/Gambier","-540,1":"America/Anchorage","-480,1":"America/Los_Angeles","-480,0":"Pacific/Pitcairn","-420,0":"America/Phoenix","-420,1":"America/Denver","-360,0":"America/Guatemala","-360,1":"America/Chicago","-360,1,s":"Pacific/Easter","-300,0":"America/Bogota","-300,1":"America/New_York","-270,0":"America/Caracas","-240,1":"America/Halifax","-240,0":"America/Santo_Domingo","-240,1,s":"America/Santiago","-210,1":"America/St_Johns","-180,1":"America/Godthab","-180,0":"America/Argentina/Buenos_Aires","-180,1,s":"America/Montevideo","-120,0":"America/Noronha","-120,1":"America/Noronha","-60,1":"Atlantic/Azores","-60,0":"Atlantic/Cape_Verde","0,0":"UTC","0,1":"Europe/London","60,1":"Europe/Berlin","60,0":"Africa/Lagos","60,1,s":"Africa/Windhoek","120,1":"Asia/Beirut","120,0":"Africa/Johannesburg","180,0":"Asia/Baghdad","180,1":"Europe/Moscow","210,1":"Asia/Tehran","240,0":"Asia/Dubai","240,1":"Asia/Baku","270,0":"Asia/Kabul","300,1":"Asia/Yekaterinburg","300,0":"Asia/Karachi","330,0":"Asia/Kolkata","345,0":"Asia/Kathmandu","360,0":"Asia/Dhaka","360,1":"Asia/Omsk","390,0":"Asia/Rangoon","420,1":"Asia/Krasnoyarsk","420,0":"Asia/Jakarta","480,0":"Asia/Shanghai","480,1":"Asia/Irkutsk","525,0":"Australia/Eucla","525,1,s":"Australia/Eucla","540,1":"Asia/Yakutsk","540,0":"Asia/Tokyo","570,0":"Australia/Darwin","570,1,s":"Australia/Adelaide","600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Tarawa","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"},typeof exports!="undefined"?exports.jstz=t:e.jstz=t})(this); \ No newline at end of file
+var jstz=function(){var b=function(a){a=-a.getTimezoneOffset();return null!==a?a:0},c=function(){return b(new Date(2010,0,1,0,0,0,0))},f=function(){return b(new Date(2010,5,1,0,0,0,0))},e=function(){var a=c(),d=f(),b=c()-f();return new jstz.TimeZone(jstz.olson.timezones[0>b?a+",1":0<b?d+",1,s":a+",0"])};return{determine_timezone:function(){"undefined"!==typeof console&&console.log("jstz.determine_timezone() is deprecated and will be removed in an upcoming version. Please use jstz.determine() instead.");
+return e()},determine:e,date_is_dst:function(a){var d=5<a.getMonth()?f():c(),a=b(a);return 0!==d-a}}}();jstz.TimeZone=function(b){var c=null,c=b;"undefined"!==typeof jstz.olson.ambiguity_list[c]&&function(){for(var b=jstz.olson.ambiguity_list[c],e=b.length,a=0,d=b[0];a<e;a+=1)if(d=b[a],jstz.date_is_dst(jstz.olson.dst_start_dates[d])){c=d;break}}();return{name:function(){return c}}};jstz.olson={};
+jstz.olson.timezones={"-720,0":"Etc/GMT+12","-660,0":"Pacific/Pago_Pago","-600,1":"America/Adak","-600,0":"Pacific/Honolulu","-570,0":"Pacific/Marquesas","-540,0":"Pacific/Gambier","-540,1":"America/Anchorage","-480,1":"America/Los_Angeles","-480,0":"Pacific/Pitcairn","-420,0":"America/Phoenix","-420,1":"America/Denver","-360,0":"America/Guatemala","-360,1":"America/Chicago","-360,1,s":"Pacific/Easter","-300,0":"America/Bogota","-300,1":"America/New_York","-270,0":"America/Caracas","-240,1":"America/Halifax",
+"-240,0":"America/Santo_Domingo","-240,1,s":"America/Asuncion","-210,1":"America/St_Johns","-180,1":"America/Godthab","-180,0":"America/Argentina/Buenos_Aires","-180,1,s":"America/Montevideo","-120,0":"America/Noronha","-120,1":"Etc/GMT+2","-60,1":"Atlantic/Azores","-60,0":"Atlantic/Cape_Verde","0,0":"Etc/UTC","0,1":"Europe/London","60,1":"Europe/Berlin","60,0":"Africa/Lagos","60,1,s":"Africa/Windhoek","120,1":"Asia/Beirut","120,0":"Africa/Johannesburg","180,1":"Europe/Moscow","180,0":"Asia/Baghdad",
+"210,1":"Asia/Tehran","240,0":"Asia/Dubai","240,1":"Asia/Yerevan","270,0":"Asia/Kabul","300,1":"Asia/Yekaterinburg","300,0":"Asia/Karachi","330,0":"Asia/Kolkata","345,0":"Asia/Kathmandu","360,0":"Asia/Dhaka","360,1":"Asia/Omsk","390,0":"Asia/Rangoon","420,1":"Asia/Krasnoyarsk","420,0":"Asia/Jakarta","480,0":"Asia/Shanghai","480,1":"Asia/Irkutsk","525,0":"Australia/Eucla","525,1,s":"Australia/Eucla","540,1":"Asia/Yakutsk","540,0":"Asia/Tokyo","570,0":"Australia/Darwin","570,1,s":"Australia/Adelaide",
+"600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Tarawa","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"};
+jstz.olson.dst_start_dates={"America/Denver":new Date(2011,2,13,3,0,0,0),"America/Mazatlan":new Date(2011,3,3,3,0,0,0),"America/Chicago":new Date(2011,2,13,3,0,0,0),"America/Mexico_City":new Date(2011,3,3,3,0,0,0),"Atlantic/Stanley":new Date(2011,8,4,7,0,0,0),"America/Asuncion":new Date(2011,9,2,3,0,0,0),"America/Santiago":new Date(2011,9,9,3,0,0,0),"America/Campo_Grande":new Date(2011,9,16,5,0,0,0),"America/Montevideo":new Date(2011,9,2,3,0,0,0),"America/Sao_Paulo":new Date(2011,9,16,5,0,0,0),"America/Los_Angeles":new Date(2011,
+2,13,8,0,0,0),"America/Santa_Isabel":new Date(2011,3,5,8,0,0,0),"America/Havana":new Date(2011,2,13,2,0,0,0),"America/New_York":new Date(2011,2,13,7,0,0,0),"Asia/Gaza":new Date(2011,2,26,23,0,0,0),"Asia/Beirut":new Date(2011,2,27,1,0,0,0),"Europe/Minsk":new Date(2011,2,27,2,0,0,0),"Europe/Helsinki":new Date(2011,2,27,4,0,0,0),"Europe/Istanbul":new Date(2011,2,28,5,0,0,0),"Asia/Damascus":new Date(2011,3,1,2,0,0,0),"Asia/Jerusalem":new Date(2011,3,1,6,0,0,0),"Africa/Cairo":new Date(2010,3,30,4,0,0,
+0),"Asia/Yerevan":new Date(2011,2,27,4,0,0,0),"Asia/Baku":new Date(2011,2,27,8,0,0,0),"Pacific/Auckland":new Date(2011,8,26,7,0,0,0),"Pacific/Fiji":new Date(2010,11,29,23,0,0,0),"America/Halifax":new Date(2011,2,13,6,0,0,0),"America/Goose_Bay":new Date(2011,2,13,2,1,0,0),"America/Miquelon":new Date(2011,2,13,5,0,0,0),"America/Godthab":new Date(2011,2,27,1,0,0,0)};
+jstz.olson.ambiguity_list={"America/Denver":["America/Denver","America/Mazatlan"],"America/Chicago":["America/Chicago","America/Mexico_City"],"America/Asuncion":["Atlantic/Stanley","America/Asuncion","America/Santiago","America/Campo_Grande"],"America/Montevideo":["America/Montevideo","America/Sao_Paulo"],"Asia/Beirut":"Asia/Gaza Asia/Beirut Europe/Minsk Europe/Helsinki Europe/Istanbul Asia/Damascus Asia/Jerusalem Africa/Cairo".split(" "),"Asia/Yerevan":["Asia/Yerevan","Asia/Baku"],"Pacific/Auckland":["Pacific/Auckland",
+"Pacific/Fiji"],"America/Los_Angeles":["America/Los_Angeles","America/Santa_Isabel"],"America/New_York":["America/Havana","America/New_York"],"America/Halifax":["America/Goose_Bay","America/Halifax"],"America/Godthab":["America/Miquelon","America/Godthab"]}; \ No newline at end of file
diff --git a/program/js/list.js b/program/js/list.js
index 4ae6c0c66..fbb478db7 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -1,1625 +1 @@
-/*
- +-----------------------------------------------------------------------+
- | Roundcube List Widget |
- | |
- | This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-2013, The Roundcube Dev Team |
- | |
- | Licensed under the GNU General Public License version 3 or |
- | any later version with exceptions for skins & plugins. |
- | See the README file for a full license statement. |
- | |
- +-----------------------------------------------------------------------+
- | Authors: Thomas Bruederli <roundcube@gmail.com> |
- | Charles McNulty <charles@charlesmcnulty.com> |
- +-----------------------------------------------------------------------+
- | Requires: common.js |
- +-----------------------------------------------------------------------+
-*/
-
-
-/**
- * Roundcube List Widget class
- * @contructor
- */
-function rcube_list_widget(list, p)
-{
- // static contants
- this.ENTER_KEY = 13;
- this.DELETE_KEY = 46;
- this.BACKSPACE_KEY = 8;
-
- this.list = list ? list : null;
- this.tagname = this.list ? this.list.nodeName.toLowerCase() : 'table';
- this.id_regexp = /^rcmrow([a-z0-9\-_=\+\/]+)/i;
- this.thead;
- this.tbody;
- this.fixed_header;
- this.frame = null;
- this.rows = {};
- this.selection = [];
- this.rowcount = 0;
- this.colcount = 0;
-
- this.subject_col = -1;
- this.modkey = 0;
- this.multiselect = false;
- this.multiexpand = false;
- this.multi_selecting = false;
- this.draggable = false;
- this.column_movable = false;
- this.keyboard = false;
- this.toggleselect = false;
-
- this.drag_active = false;
- this.col_drag_active = false;
- this.column_fixed = null;
- this.last_selected = 0;
- this.shift_start = 0;
- this.focused = false;
- this.drag_mouse_start = null;
- this.dblclick_time = 500; // default value on MS Windows is 500
- this.row_init = function(){}; // @deprecated; use list.addEventListener('initrow') instead
-
- // overwrite default paramaters
- if (p && typeof p === 'object')
- for (var n in p)
- this[n] = p[n];
-};
-
-
-rcube_list_widget.prototype = {
-
-
-/**
- * get all message rows from HTML table and init each row
- */
-init: function()
-{
- if (this.tagname == 'table' && this.list && this.list.tBodies[0]) {
- this.thead = this.list.tHead;
- this.tbody = this.list.tBodies[0];
- }
- else if (this.tagname != 'table' && this.list) {
- this.tbody = this.list;
- }
-
- if (this.tbody) {
- this.rows = {};
- this.rowcount = 0;
-
- var r, len, rows = this.tbody.childNodes;
-
- for (r=0, len=rows.length; r<len; r++) {
- this.init_row(rows[r]);
- this.rowcount++;
- }
-
- this.init_header();
- this.frame = this.list.parentNode;
-
- // set body events
- if (this.keyboard)
- rcube_event.add_listener({event:'keydown', object:this, method:'key_press'});
- }
-},
-
-
-/**
- * Init list row and set mouse events on it
- */
-init_row: function(row)
-{
- // make references in internal array and set event handlers
- if (row && String(row.id).match(this.id_regexp)) {
- var self = this,
- uid = RegExp.$1;
- row.uid = uid;
- this.rows[uid] = {uid:uid, id:row.id, obj:row};
-
- // set eventhandlers to table row
- row.onmousedown = function(e){ return self.drag_row(e, this.uid); };
- row.onmouseup = function(e){ return self.click_row(e, this.uid); };
-
- if (bw.touch) {
- row.addEventListener('touchstart', function(e) {
- if (e.touches.length == 1) {
- self.touchmoved = false;
- self.drag_row(rcube_event.touchevent(e.touches[0]), this.uid)
- }
- }, false);
- row.addEventListener('touchend', function(e) {
- if (e.changedTouches.length == 1) {
- if (!self.touchmoved && !self.click_row(rcube_event.touchevent(e.changedTouches[0]), this.uid))
- e.preventDefault();
- }
- }, false);
- row.addEventListener('touchmove', function(e) {
- if (e.changedTouches.length == 1) {
- self.touchmoved = true;
- if (self.drag_active)
- e.preventDefault();
- }
- }, false);
- }
-
- if (document.all)
- row.onselectstart = function() { return false; };
-
- this.row_init(this.rows[uid]); // legacy support
- this.triggerEvent('initrow', this.rows[uid]);
- }
-},
-
-
-/**
- * Init list column headers and set mouse events on them
- */
-init_header: function()
-{
- if (this.thead) {
- this.colcount = 0;
-
- if (this.fixed_header) { // copy (modified) fixed header back to the actual table
- $(this.list.tHead).replaceWith($(this.fixed_header).find('thead').clone());
- $(this.list.tHead).find('tr td').attr('style', ''); // remove fixed widths
- }
- else if (!bw.touch && this.list.className.indexOf('fixedheader') >= 0) {
- this.init_fixed_header();
- }
-
- var col, r, p = this;
- // add events for list columns moving
- if (this.column_movable && this.thead && this.thead.rows) {
- for (r=0; r<this.thead.rows[0].cells.length; r++) {
- if (this.column_fixed == r)
- continue;
- col = this.thead.rows[0].cells[r];
- col.onmousedown = function(e){ return p.drag_column(e, this); };
- this.colcount++;
- }
- }
- }
-},
-
-init_fixed_header: function()
-{
- var clone = $(this.list.tHead).clone();
-
- if (!this.fixed_header) {
- this.fixed_header = $('<table>')
- .attr('class', this.list.className + ' fixedcopy')
- .css({ position:'fixed' })
- .append(clone)
- .append('<tbody></tbody>');
- $(this.list).before(this.fixed_header);
-
- var me = this;
- $(window).resize(function(){ me.resize() });
- }
- else {
- $(this.fixed_header).find('thead').replaceWith(clone);
- }
-
- this.thead = clone.get(0);
- this.resize();
-},
-
-resize: function()
-{
- if (!this.fixed_header)
- return;
-
- var column_widths = [];
-
- // get column widths from original thead
- $(this.tbody).parent().find('thead tr td').each(function(index) {
- column_widths[index] = $(this).width();
- });
-
- // apply fixed widths to fixed table header
- $(this.thead).parent().width($(this.tbody).parent().width());
- $(this.thead).find('tr td').each(function(index) {
- $(this).css('width', column_widths[index]);
- });
-},
-
-/**
- * Remove all list rows
- */
-clear: function(sel)
-{
- if (this.tagname == 'table') {
- var tbody = document.createElement('tbody');
- this.list.insertBefore(tbody, this.tbody);
- this.list.removeChild(this.list.tBodies[1]);
- this.tbody = tbody;
- }
- else {
- $(this.row_tagname() + ':not(.thead)', this.tbody).remove();
- }
-
- this.rows = {};
- this.rowcount = 0;
-
- if (sel)
- this.clear_selection();
-
- // reset scroll position (in Opera)
- if (this.frame)
- this.frame.scrollTop = 0;
-},
-
-
-/**
- * 'remove' message row from list (just hide it)
- */
-remove_row: function(uid, sel_next)
-{
- var node = this.rows[uid] ? this.rows[uid].obj : null;
-
- if (!node)
- return;
-
- node.style.display = 'none';
-
- if (sel_next)
- this.select_next();
-
- delete this.rows[uid];
- this.rowcount--;
-},
-
-
-/**
- * Add row to the list and initialize it
- */
-insert_row: function(row, before)
-{
- var tbody = this.tbody;
-
- // create a real dom node first
- if (row.nodeName === undefined) {
- // for performance reasons use DOM instead of jQuery here
- var domrow = document.createElement(this.row_tagname());
- if (row.id) domrow.id = row.id;
- if (row.className) domrow.className = row.className;
- if (row.style) $.extend(domrow.style, row.style);
-
- for (var domcell, col, i=0; row.cols && i < row.cols.length; i++) {
- col = row.cols[i];
- domcell = document.createElement(this.col_tagname());
- if (col.className) domcell.className = col.className;
- if (col.innerHTML) domcell.innerHTML = col.innerHTML;
- domrow.appendChild(domcell);
- }
-
- row = domrow;
- }
-
- if (before && tbody.childNodes.length)
- tbody.insertBefore(row, (typeof before == 'object' && before.parentNode == tbody) ? before : tbody.firstChild);
- else
- tbody.appendChild(row);
-
- this.init_row(row);
- this.rowcount++;
-},
-
-/**
- *
- */
-update_row: function(id, cols, newid, select)
-{
- var row = this.rows[id];
- if (!row) return false;
-
- var domrow = row.obj;
- for (var domcell, col, i=0; cols && i < cols.length; i++) {
- this.get_cell(domrow, i).html(cols[i]);
- }
-
- if (newid) {
- delete this.rows[id];
- domrow.id = 'rcmrow' + newid;
- this.init_row(domrow);
-
- if (select)
- this.selection[0] = newid;
- }
-},
-
-
-/**
- * Set focus to the list
- */
-focus: function(e)
-{
- var n, id;
- this.focused = true;
-
- for (n in this.selection) {
- id = this.selection[n];
- if (this.rows[id] && this.rows[id].obj) {
- $(this.rows[id].obj).addClass('selected').removeClass('unfocused');
- }
- }
-
- // Un-focus already focused elements (#1487123, #1487316, #1488600, #1488620)
- // It looks that window.focus() does the job for all browsers, but not Firefox (#1489058)
- $(':focus:not(body)').blur();
- window.focus();
-
- if (e || (e = window.event))
- rcube_event.cancel(e);
-},
-
-
-/**
- * remove focus from the list
- */
-blur: function()
-{
- var n, id;
- this.focused = false;
- for (n in this.selection) {
- id = this.selection[n];
- if (this.rows[id] && this.rows[id].obj) {
- $(this.rows[id].obj).removeClass('selected focused').addClass('unfocused');
- }
- }
-},
-
-
-/**
- * onmousedown-handler of message list column
- */
-drag_column: function(e, col)
-{
- if (this.colcount > 1) {
- this.drag_start = true;
- this.drag_mouse_start = rcube_event.get_mouse_pos(e);
-
- rcube_event.add_listener({event:'mousemove', object:this, method:'column_drag_mouse_move'});
- rcube_event.add_listener({event:'mouseup', object:this, method:'column_drag_mouse_up'});
-
- // enable dragging over iframes
- this.add_dragfix();
-
- // find selected column number
- for (var i=0; i<this.thead.rows[0].cells.length; i++) {
- if (col == this.thead.rows[0].cells[i]) {
- this.selected_column = i;
- break;
- }
- }
- }
-
- return false;
-},
-
-
-/**
- * onmousedown-handler of message list row
- */
-drag_row: function(e, id)
-{
- // don't do anything (another action processed before)
- if (!this.is_event_target(e))
- return true;
-
- // accept right-clicks
- if (rcube_event.get_button(e) == 2)
- return true;
-
- this.in_selection_before = e && e.istouch || this.in_selection(id) ? id : false;
-
- // selects currently unselected row
- if (!this.in_selection_before) {
- var mod_key = rcube_event.get_modifier(e);
- this.select_row(id, mod_key, true);
- }
-
- if (this.draggable && this.selection.length && this.in_selection(id)) {
- this.drag_start = true;
- this.drag_mouse_start = rcube_event.get_mouse_pos(e);
-
- rcube_event.add_listener({event:'mousemove', object:this, method:'drag_mouse_move'});
- rcube_event.add_listener({event:'mouseup', object:this, method:'drag_mouse_up'});
- if (bw.touch) {
- rcube_event.add_listener({event:'touchmove', object:this, method:'drag_mouse_move'});
- rcube_event.add_listener({event:'touchend', object:this, method:'drag_mouse_up'});
- }
-
- // enable dragging over iframes
- this.add_dragfix();
- }
-
- return false;
-},
-
-
-/**
- * onmouseup-handler of message list row
- */
-click_row: function(e, id)
-{
- // don't do anything (another action processed before)
- if (!this.is_event_target(e))
- return true;
-
- var now = new Date().getTime(),
- dblclicked = now - this.rows[id].clicked < this.dblclick_time;
-
- // unselects currently selected row
- if (!this.drag_active && !dblclicked && this.in_selection_before == id)
- this.select_row(id, rcube_event.get_modifier(e), true);
-
- this.drag_start = false;
- this.in_selection_before = false;
-
- // row was double clicked
- if (this.rowcount && dblclicked && this.in_selection(id)) {
- this.triggerEvent('dblclick');
- now = 0;
- }
- else
- this.triggerEvent('click');
-
- if (!this.drag_active) {
- // remove temp divs
- this.del_dragfix();
- rcube_event.cancel(e);
- }
-
- this.rows[id].clicked = now;
- return false;
-},
-
-
-/**
- * Check target of the current event
- */
-is_event_target: function(e)
-{
- var target = rcube_event.get_target(e),
- tagname = target.tagName.toLowerCase();
-
- return !(target && (tagname == 'input' || tagname == 'img' || (tagname != 'a' && target.onclick)));
-},
-
-
-/*
- * Returns thread root ID for specified row ID
- */
-find_root: function(uid)
-{
- var r = this.rows[uid];
-
- if (r && r.parent_uid)
- return this.find_root(r.parent_uid);
- else
- return uid;
-},
-
-
-expand_row: function(e, id)
-{
- var row = this.rows[id],
- evtarget = rcube_event.get_target(e),
- mod_key = rcube_event.get_modifier(e);
-
- // Don't treat double click on the expando as double click on the message.
- row.clicked = 0;
-
- if (row.expanded) {
- evtarget.className = 'collapsed';
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.collapse_all(row);
- else
- this.collapse(row);
- }
- else {
- evtarget.className = 'expanded';
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.expand_all(row);
- else
- this.expand(row);
- }
-},
-
-collapse: function(row)
-{
- row.expanded = false;
- this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj });
- var depth = row.depth;
- var new_row = row ? row.obj.nextSibling : null;
- var r;
-
- while (new_row) {
- if (new_row.nodeType == 1) {
- var r = this.rows[new_row.uid];
- if (r && r.depth <= depth)
- break;
- $(new_row).css('display', 'none');
- if (r.expanded) {
- r.expanded = false;
- this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row });
- }
- }
- new_row = new_row.nextSibling;
- }
-
- this.resize();
- this.triggerEvent('listupdate');
- return false;
-},
-
-expand: function(row)
-{
- var r, p, depth, new_row, last_expanded_parent_depth;
-
- if (row) {
- row.expanded = true;
- depth = row.depth;
- new_row = row.obj.nextSibling;
- this.update_expando(row.uid, true);
- this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj });
- }
- else {
- var tbody = this.tbody;
- new_row = tbody.firstChild;
- depth = 0;
- last_expanded_parent_depth = 0;
- }
-
- while (new_row) {
- if (new_row.nodeType == 1) {
- r = this.rows[new_row.uid];
- if (r) {
- if (row && (!r.depth || r.depth <= depth))
- break;
-
- if (r.parent_uid) {
- p = this.rows[r.parent_uid];
- if (p && p.expanded) {
- if ((row && p == row) || last_expanded_parent_depth >= p.depth - 1) {
- last_expanded_parent_depth = p.depth;
- $(new_row).css('display', '');
- r.expanded = true;
- this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row });
- }
- }
- else
- if (row && (! p || p.depth <= depth))
- break;
- }
- }
- }
- new_row = new_row.nextSibling;
- }
-
- this.resize();
- this.triggerEvent('listupdate');
- return false;
-},
-
-
-collapse_all: function(row)
-{
- var depth, new_row, r;
-
- if (row) {
- row.expanded = false;
- depth = row.depth;
- new_row = row.obj.nextSibling;
- this.update_expando(row.uid);
- this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj });
-
- // don't collapse sub-root tree in multiexpand mode
- if (depth && this.multiexpand)
- return false;
- }
- else {
- new_row = this.tbody.firstChild;
- depth = 0;
- }
-
- while (new_row) {
- if (new_row.nodeType == 1) {
- if (r = this.rows[new_row.uid]) {
- if (row && (!r.depth || r.depth <= depth))
- break;
-
- if (row || r.depth)
- $(new_row).css('display', 'none');
- if (r.has_children && r.expanded) {
- r.expanded = false;
- this.update_expando(r.uid, false);
- this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row });
- }
- }
- }
- new_row = new_row.nextSibling;
- }
-
- this.resize();
- this.triggerEvent('listupdate');
- return false;
-},
-
-
-expand_all: function(row)
-{
- var depth, new_row, r;
-
- if (row) {
- row.expanded = true;
- depth = row.depth;
- new_row = row.obj.nextSibling;
- this.update_expando(row.uid, true);
- this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj });
- }
- else {
- new_row = this.tbody.firstChild;
- depth = 0;
- }
-
- while (new_row) {
- if (new_row.nodeType == 1) {
- if (r = this.rows[new_row.uid]) {
- if (row && r.depth <= depth)
- break;
-
- $(new_row).css('display', '');
- if (r.has_children && !r.expanded) {
- r.expanded = true;
- this.update_expando(r.uid, true);
- this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row });
- }
- }
- }
- new_row = new_row.nextSibling;
- }
-
- this.resize();
- this.triggerEvent('listupdate');
- return false;
-},
-
-
-update_expando: function(uid, expanded)
-{
- var expando = document.getElementById('rcmexpando' + uid);
- if (expando)
- expando.className = expanded ? 'expanded' : 'collapsed';
-},
-
-
-/**
- * get first/next/previous/last rows that are not hidden
- */
-get_next_row: function()
-{
- if (!this.rowcount)
- return false;
-
- var last_selected_row = this.rows[this.last_selected],
- new_row = last_selected_row ? last_selected_row.obj.nextSibling : null;
-
- while (new_row && (new_row.nodeType != 1 || new_row.style.display == 'none'))
- new_row = new_row.nextSibling;
-
- return new_row;
-},
-
-get_prev_row: function()
-{
- if (!this.rowcount)
- return false;
-
- var last_selected_row = this.rows[this.last_selected],
- new_row = last_selected_row ? last_selected_row.obj.previousSibling : null;
-
- while (new_row && (new_row.nodeType != 1 || new_row.style.display == 'none'))
- new_row = new_row.previousSibling;
-
- return new_row;
-},
-
-get_first_row: function()
-{
- if (this.rowcount) {
- var i, len, rows = this.tbody.childNodes;
-
- for (i=0, len=rows.length-1; i<len; i++)
- if (rows[i].id && String(rows[i].id).match(this.id_regexp) && this.rows[RegExp.$1] != null)
- return RegExp.$1;
- }
-
- return null;
-},
-
-get_last_row: function()
-{
- if (this.rowcount) {
- var i, rows = this.tbody.childNodes;
-
- for (i=rows.length-1; i>=0; i--)
- if (rows[i].id && String(rows[i].id).match(this.id_regexp) && this.rows[RegExp.$1] != null)
- return RegExp.$1;
- }
-
- return null;
-},
-
-row_tagname: function()
-{
- var row_tagnames = { table:'tr', ul:'li', '*':'div' };
- return row_tagnames[this.tagname] || row_tagnames['*'];
-},
-
-col_tagname: function()
-{
- var col_tagnames = { table:'td', '*':'span' };
- return col_tagnames[this.tagname] || col_tagnames['*'];
-},
-
-get_cell: function(row, index)
-{
- return $(this.col_tagname(), row).eq(index);
-},
-
-/**
- * selects or unselects the proper row depending on the modifier key pressed
- */
-select_row: function(id, mod_key, with_mouse)
-{
- var select_before = this.selection.join(',');
-
- if (!this.multiselect)
- mod_key = 0;
-
- if (!this.shift_start)
- this.shift_start = id
-
- if (!mod_key) {
- this.shift_start = id;
- this.highlight_row(id, false);
- this.multi_selecting = false;
- }
- else {
- switch (mod_key) {
- case SHIFT_KEY:
- this.shift_select(id, false);
- break;
-
- case CONTROL_KEY:
- if (with_mouse) {
- this.shift_start = id;
- this.highlight_row(id, true);
- }
- break;
-
- case CONTROL_SHIFT_KEY:
- this.shift_select(id, true);
- break;
-
- default:
- this.highlight_row(id, false);
- break;
- }
-
- this.multi_selecting = true;
- }
-
- // trigger event if selection changed
- if (this.selection.join(',') != select_before)
- this.triggerEvent('select');
-
- if (this.last_selected != 0 && this.rows[this.last_selected])
- $(this.rows[this.last_selected].obj).removeClass('focused');
-
- // unselect if toggleselect is active and the same row was clicked again
- if (this.toggleselect && this.last_selected == id) {
- this.clear_selection();
- id = null;
- }
- else
- $(this.rows[id].obj).addClass('focused');
-
- if (!this.selection.length)
- this.shift_start = null;
-
- this.last_selected = id;
-},
-
-
-/**
- * Alias method for select_row
- */
-select: function(id)
-{
- this.select_row(id, false);
- this.scrollto(id);
-},
-
-
-/**
- * Select row next to the last selected one.
- * Either below or above.
- */
-select_next: function()
-{
- var next_row = this.get_next_row(),
- prev_row = this.get_prev_row(),
- new_row = (next_row) ? next_row : prev_row;
-
- if (new_row)
- this.select_row(new_row.uid, false, false);
-},
-
-
-/**
- * Select first row
- */
-select_first: function(mod_key)
-{
- var row = this.get_first_row();
- if (row) {
- this.select_row(row, mod_key, false);
- this.scrollto(row);
- }
-},
-
-
-/**
- * Select last row
- */
-select_last: function(mod_key)
-{
- var row = this.get_last_row();
- if (row) {
- this.select_row(row, mod_key, false);
- this.scrollto(row);
- }
-},
-
-
-/**
- * Add all childs of the given row to selection
- */
-select_children: function(uid)
-{
- var i, children = this.row_children(uid), len = children.length;
-
- for (i=0; i<len; i++)
- if (!this.in_selection(children[i]))
- this.select_row(children[i], CONTROL_KEY, true);
-},
-
-
-/**
- * Perform selection when shift key is pressed
- */
-shift_select: function(id, control)
-{
- if (!this.rows[this.shift_start] || !this.selection.length)
- this.shift_start = id;
-
- var n, i, j, to_row = this.rows[id],
- from_rowIndex = this._rowIndex(this.rows[this.shift_start].obj),
- to_rowIndex = this._rowIndex(to_row.obj);
-
- // if we're going down the list, and we hit a thread, and it's closed, select the whole thread
- if (from_rowIndex < to_rowIndex && !to_row.expanded && to_row.has_children)
- if (to_row = this.rows[(this.row_children(id)).pop()])
- to_rowIndex = this._rowIndex(to_row.obj);
-
- i = ((from_rowIndex < to_rowIndex) ? from_rowIndex : to_rowIndex),
- j = ((from_rowIndex > to_rowIndex) ? from_rowIndex : to_rowIndex);
-
- // iterate through the entire message list
- for (n in this.rows) {
- if (this._rowIndex(this.rows[n].obj) >= i && this._rowIndex(this.rows[n].obj) <= j) {
- if (!this.in_selection(n)) {
- this.highlight_row(n, true);
- }
- }
- else {
- if (this.in_selection(n) && !control) {
- this.highlight_row(n, true);
- }
- }
- }
-},
-
-
-/**
- * Helper method to emulate the rowIndex property of non-tr elements
- */
-_rowIndex: function(obj)
-{
- return (obj.rowIndex !== undefined) ? obj.rowIndex : $(obj).prevAll().length;
-},
-
-/**
- * Check if given id is part of the current selection
- */
-in_selection: function(id)
-{
- for (var n in this.selection)
- if (this.selection[n]==id)
- return true;
-
- return false;
-},
-
-
-/**
- * Select each row in list
- */
-select_all: function(filter)
-{
- if (!this.rowcount)
- return false;
-
- // reset but remember selection first
- var n, select_before = this.selection.join(',');
- this.selection = [];
-
- for (n in this.rows) {
- if (!filter || this.rows[n][filter] == true) {
- this.last_selected = n;
- this.highlight_row(n, true, true);
- }
- else {
- $(this.rows[n].obj).removeClass('selected').removeClass('unfocused');
- }
- }
-
- // trigger event if selection changed
- if (this.selection.join(',') != select_before)
- this.triggerEvent('select');
-
- this.focus();
-
- return true;
-},
-
-
-/**
- * Invert selection
- */
-invert_selection: function()
-{
- if (!this.rowcount)
- return false;
-
- // remember old selection
- var n, select_before = this.selection.join(',');
-
- for (n in this.rows)
- this.highlight_row(n, true);
-
- // trigger event if selection changed
- if (this.selection.join(',') != select_before)
- this.triggerEvent('select');
-
- this.focus();
-
- return true;
-},
-
-
-/**
- * Unselect selected row(s)
- */
-clear_selection: function(id)
-{
- var n, num_select = this.selection.length;
-
- // one row
- if (id) {
- for (n in this.selection)
- if (this.selection[n] == id) {
- this.selection.splice(n,1);
- break;
- }
- }
- // all rows
- else {
- for (n in this.selection)
- if (this.rows[this.selection[n]]) {
- $(this.rows[this.selection[n]].obj).removeClass('selected').removeClass('unfocused');
- }
-
- this.selection = [];
- }
-
- if (num_select && !this.selection.length)
- this.triggerEvent('select');
-},
-
-
-/**
- * Getter for the selection array
- */
-get_selection: function()
-{
- return this.selection;
-},
-
-
-/**
- * Return the ID if only one row is selected
- */
-get_single_selection: function()
-{
- if (this.selection.length == 1)
- return this.selection[0];
- else
- return null;
-},
-
-
-/**
- * Highlight/unhighlight a row
- */
-highlight_row: function(id, multiple, norecur)
-{
- if (!this.rows[id])
- return;
-
- if (!multiple) {
- if (this.selection.length > 1 || !this.in_selection(id)) {
- this.clear_selection();
- this.selection[0] = id;
- $(this.rows[id].obj).addClass('selected');
- }
- }
- else {
- if (!this.in_selection(id)) { // select row
- this.selection.push(id);
- $(this.rows[id].obj).addClass('selected');
- if (!norecur && !this.rows[id].expanded)
- this.highlight_children(id, true);
- }
- else { // unselect row
- var p = $.inArray(id, this.selection),
- a_pre = this.selection.slice(0, p),
- a_post = this.selection.slice(p+1, this.selection.length);
-
- this.selection = a_pre.concat(a_post);
- $(this.rows[id].obj).removeClass('selected').removeClass('unfocused');
- if (!norecur && !this.rows[id].expanded)
- this.highlight_children(id, false);
- }
- }
-},
-
-
-/**
- * Highlight/unhighlight all childs of the given row
- */
-highlight_children: function(id, status)
-{
- var i, selected,
- children = this.row_children(id), len = children.length;
-
- for (i=0; i<len; i++) {
- selected = this.in_selection(children[i]);
- if ((status && !selected) || (!status && selected))
- this.highlight_row(children[i], true, true);
- }
-},
-
-
-/**
- * Handler for keyboard events
- */
-key_press: function(e)
-{
- var target = e.target || {};
- if (this.focused != true || target.nodeName == 'INPUT' || target.nodeName == 'TEXTAREA' || target.nodeName == 'SELECT')
- return true;
-
- var keyCode = rcube_event.get_keycode(e),
- mod_key = rcube_event.get_modifier(e);
-
- switch (keyCode) {
- case 40:
- case 38:
- case 63233: // "down", in safari keypress
- case 63232: // "up", in safari keypress
- // Stop propagation so that the browser doesn't scroll
- rcube_event.cancel(e);
- return this.use_arrow_key(keyCode, mod_key);
-
- case 32:
- rcube_event.cancel(e);
- return this.select_row(this.last_selected, mod_key, true);
-
- case 37: // Left arrow key
- case 39: // Right arrow key
- case 107: // Plus sign on a numeric keypad
- case 109: // Minus sign on a numeric keypad
- // Stop propagation
- rcube_event.cancel(e);
- var ret = this.use_plusminus_key(keyCode, mod_key);
- this.key_pressed = keyCode;
- this.modkey = mod_key;
- this.triggerEvent('keypress');
- this.modkey = 0;
- return ret;
-
- case 36: // Home
- this.select_first(mod_key);
- return rcube_event.cancel(e);
-
- case 35: // End
- this.select_last(mod_key);
- return rcube_event.cancel(e);
-
- case 27:
- if (this.drag_active)
- return this.drag_mouse_up(e);
-
- if (this.col_drag_active) {
- this.selected_column = null;
- return this.column_drag_mouse_up(e);
- }
-
- return rcube_event.cancel(e);
-
- default:
- this.key_pressed = keyCode;
- this.modkey = mod_key;
- this.triggerEvent('keypress');
- this.modkey = 0;
-
- if (this.key_pressed == this.BACKSPACE_KEY)
- return rcube_event.cancel(e);
- }
-
- return true;
-},
-
-
-/**
- * Special handling method for arrow keys
- */
-use_arrow_key: function(keyCode, mod_key)
-{
- var new_row;
- // Safari uses the nonstandard keycodes 63232/63233 for up/down, if we're
- // using the keypress event (but not the keydown or keyup event).
- if (keyCode == 40 || keyCode == 63233) // down arrow key pressed
- new_row = this.get_next_row();
- else if (keyCode == 38 || keyCode == 63232) // up arrow key pressed
- new_row = this.get_prev_row();
-
- if (new_row) {
- this.select_row(new_row.uid, mod_key, false);
- this.scrollto(new_row.uid);
- }
-
- return false;
-},
-
-
-/**
- * Special handling method for +/- keys
- */
-use_plusminus_key: function(keyCode, mod_key)
-{
- var selected_row = this.rows[this.last_selected];
-
- if (!selected_row || !selected_row.has_children)
- return;
-
- // expand
- if (keyCode == 39 || keyCode == 107) {
- if (selected_row.expanded)
- return;
-
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.expand_all(selected_row);
- else
- this.expand(selected_row);
- }
- // collapse
- else {
- if (!selected_row.expanded)
- return;
-
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.collapse_all(selected_row);
- else
- this.collapse(selected_row);
- }
-
- this.update_expando(selected_row.uid, selected_row.expanded);
-
- return false;
-},
-
-
-/**
- * Try to scroll the list to make the specified row visible
- */
-scrollto: function(id)
-{
- var row = this.rows[id].obj;
- if (row && this.frame) {
- var scroll_to = Number(row.offsetTop),
- head_offset = 0;
-
- // expand thread if target row is hidden (collapsed)
- if (!scroll_to && this.rows[id].parent_uid) {
- var parent = this.find_root(this.rows[id].uid);
- this.expand_all(this.rows[parent]);
- scroll_to = Number(row.offsetTop);
- }
-
- if (this.fixed_header)
- head_offset = Number(this.thead.offsetHeight);
-
- // if row is above the frame (or behind header)
- if (scroll_to < Number(this.frame.scrollTop) + head_offset) {
- // scroll window so that row isn't behind header
- this.frame.scrollTop = scroll_to - head_offset;
- }
- else if (scroll_to + Number(row.offsetHeight) > Number(this.frame.scrollTop) + Number(this.frame.offsetHeight))
- this.frame.scrollTop = (scroll_to + Number(row.offsetHeight)) - Number(this.frame.offsetHeight);
- }
-},
-
-
-/**
- * Handler for mouse move events
- */
-drag_mouse_move: function(e)
-{
- // convert touch event
- if (e.type == 'touchmove') {
- if (e.touches.length == 1 && e.changedTouches.length == 1)
- e = rcube_event.touchevent(e.changedTouches[0]);
- else
- return rcube_event.cancel(e);
- }
-
- if (this.drag_start) {
- // check mouse movement, of less than 3 pixels, don't start dragging
- var m = rcube_event.get_mouse_pos(e);
-
- if (!this.drag_mouse_start || (Math.abs(m.x - this.drag_mouse_start.x) < 3 && Math.abs(m.y - this.drag_mouse_start.y) < 3))
- return false;
-
- if (!this.draglayer)
- this.draglayer = $('<div>').attr('id', 'rcmdraglayer')
- .css({ position:'absolute', display:'none', 'z-index':2000 })
- .appendTo(document.body);
-
- // also select childs of (collapsed) threads for dragging
- var n, uid, selection = $.merge([], this.selection);
- for (n in selection) {
- uid = selection[n];
- if (!this.rows[uid].expanded)
- this.select_children(uid);
- }
-
- // reset content
- this.draglayer.html('');
-
- // get subjects of selected messages
- var i, n, obj, me;
- for (n=0; n<this.selection.length; n++) {
- // only show 12 lines
- if (n>12) {
- this.draglayer.append('...');
- break;
- }
-
- me = this;
- if (obj = this.rows[this.selection[n]].obj) {
- $('> '+this.col_tagname(), obj).each(function(i,elem){
- if (n == 0)
- me.drag_start_pos = $(elem).offset();
-
- if (me.subject_col < 0 || (me.subject_col >= 0 && me.subject_col == i)) {
- var subject = $(elem).text();
-
- if (subject) {
- // remove leading spaces
- subject = $.trim(subject);
- // truncate line to 50 characters
- subject = (subject.length > 50 ? subject.substring(0, 50) + '...' : subject);
-
- var entry = $('<div>').text(subject);
- me.draglayer.append(entry);
- }
-
- return false; // break
- }
- });
- }
- }
-
- this.draglayer.show();
- this.drag_active = true;
- this.triggerEvent('dragstart');
- }
-
- if (this.drag_active && this.draglayer) {
- var pos = rcube_event.get_mouse_pos(e);
- this.draglayer.css({ left:(pos.x+20)+'px', top:(pos.y-5 + (bw.ie ? document.documentElement.scrollTop : 0))+'px' });
- this.triggerEvent('dragmove', e?e:window.event);
- }
-
- this.drag_start = false;
-
- return false;
-},
-
-
-/**
- * Handler for mouse up events
- */
-drag_mouse_up: function(e)
-{
- document.onmousemove = null;
-
- if (e.type == 'touchend') {
- if (e.changedTouches.length != 1)
- return rcube_event.cancel(e);
- }
-
- if (this.draglayer && this.draglayer.is(':visible')) {
- if (this.drag_start_pos)
- this.draglayer.animate(this.drag_start_pos, 300, 'swing').hide(20);
- else
- this.draglayer.hide();
- }
-
- if (this.drag_active)
- this.focus();
- this.drag_active = false;
-
- rcube_event.remove_listener({event:'mousemove', object:this, method:'drag_mouse_move'});
- rcube_event.remove_listener({event:'mouseup', object:this, method:'drag_mouse_up'});
-
- if (bw.touch) {
- rcube_event.remove_listener({event:'touchmove', object:this, method:'drag_mouse_move'});
- rcube_event.remove_listener({event:'touchend', object:this, method:'drag_mouse_up'});
- }
-
- // remove temp divs
- this.del_dragfix();
-
- this.triggerEvent('dragend', e);
-
- return rcube_event.cancel(e);
-},
-
-
-/**
- * Handler for mouse move events for dragging list column
- */
-column_drag_mouse_move: function(e)
-{
- if (this.drag_start) {
- // check mouse movement, of less than 3 pixels, don't start dragging
- var i, m = rcube_event.get_mouse_pos(e);
-
- if (!this.drag_mouse_start || (Math.abs(m.x - this.drag_mouse_start.x) < 3 && Math.abs(m.y - this.drag_mouse_start.y) < 3))
- return false;
-
- if (!this.col_draglayer) {
- var lpos = $(this.list).offset(),
- cells = this.thead.rows[0].cells;
-
- // create dragging layer
- this.col_draglayer = $('<div>').attr('id', 'rcmcoldraglayer')
- .css(lpos).css({ position:'absolute', 'z-index':2001,
- 'background-color':'white', opacity:0.75,
- height: (this.frame.offsetHeight-2)+'px', width: (this.frame.offsetWidth-2)+'px' })
- .appendTo(document.body)
- // ... and column position indicator
- .append($('<div>').attr('id', 'rcmcolumnindicator')
- .css({ position:'absolute', 'border-right':'2px dotted #555',
- 'z-index':2002, height: (this.frame.offsetHeight-2)+'px' }));
-
- this.cols = [];
- this.list_pos = this.list_min_pos = lpos.left;
- // save columns positions
- for (i=0; i<cells.length; i++) {
- this.cols[i] = cells[i].offsetWidth;
- if (this.column_fixed !== null && i <= this.column_fixed) {
- this.list_min_pos += this.cols[i];
- }
- }
- }
-
- this.col_draglayer.show();
- this.col_drag_active = true;
- this.triggerEvent('column_dragstart');
- }
-
- // set column indicator position
- if (this.col_drag_active && this.col_draglayer) {
- var i, cpos = 0, pos = rcube_event.get_mouse_pos(e);
-
- for (i=0; i<this.cols.length; i++) {
- if (pos.x >= this.cols[i]/2 + this.list_pos + cpos)
- cpos += this.cols[i];
- else
- break;
- }
-
- // handle fixed columns on left
- if (i == 0 && this.list_min_pos > pos.x)
- cpos = this.list_min_pos - this.list_pos;
- // empty list needs some assignment
- else if (!this.list.rowcount && i == this.cols.length)
- cpos -= 2;
- $('#rcmcolumnindicator').css({ width: cpos+'px'});
- this.triggerEvent('column_dragmove', e?e:window.event);
- }
-
- this.drag_start = false;
-
- return false;
-},
-
-
-/**
- * Handler for mouse up events for dragging list columns
- */
-column_drag_mouse_up: function(e)
-{
- document.onmousemove = null;
-
- if (this.col_draglayer) {
- (this.col_draglayer).remove();
- this.col_draglayer = null;
- }
-
- if (this.col_drag_active)
- this.focus();
- this.col_drag_active = false;
-
- rcube_event.remove_listener({event:'mousemove', object:this, method:'column_drag_mouse_move'});
- rcube_event.remove_listener({event:'mouseup', object:this, method:'column_drag_mouse_up'});
- // remove temp divs
- this.del_dragfix();
-
- if (this.selected_column !== null && this.cols && this.cols.length) {
- var i, cpos = 0, pos = rcube_event.get_mouse_pos(e);
-
- // find destination position
- for (i=0; i<this.cols.length; i++) {
- if (pos.x >= this.cols[i]/2 + this.list_pos + cpos)
- cpos += this.cols[i];
- else
- break;
- }
-
- if (i != this.selected_column && i != this.selected_column+1) {
- this.column_replace(this.selected_column, i);
- }
- }
-
- this.triggerEvent('column_dragend', e);
-
- return rcube_event.cancel(e);
-},
-
-
-/**
- * Returns IDs of all rows in a thread (except root) for specified root
- */
-row_children: function(uid)
-{
- if (!this.rows[uid] || !this.rows[uid].has_children)
- return [];
-
- var res = [], depth = this.rows[uid].depth,
- row = this.rows[uid].obj.nextSibling;
-
- while (row) {
- if (row.nodeType == 1) {
- if ((r = this.rows[row.uid])) {
- if (!r.depth || r.depth <= depth)
- break;
- res.push(r.uid);
- }
- }
- row = row.nextSibling;
- }
-
- return res;
-},
-
-
-/**
- * Creates a layer for drag&drop over iframes
- */
-add_dragfix: function()
-{
- $('iframe').each(function() {
- $('<div class="iframe-dragdrop-fix"></div>')
- .css({background: '#fff',
- width: this.offsetWidth+'px', height: this.offsetHeight+'px',
- position: 'absolute', opacity: '0.001', zIndex: 1000
- })
- .css($(this).offset())
- .appendTo(document.body);
- });
-},
-
-
-/**
- * Removes the layer for drag&drop over iframes
- */
-del_dragfix: function()
-{
- $('div.iframe-dragdrop-fix').each(function() { this.parentNode.removeChild(this); });
-},
-
-
-/**
- * Replaces two columns
- */
-column_replace: function(from, to)
-{
- // only supported for <table> lists
- if (!this.thead || !this.thead.rows)
- return;
-
- var len, cells = this.thead.rows[0].cells,
- elem = cells[from],
- before = cells[to],
- td = document.createElement('td');
-
- // replace header cells
- if (before)
- cells[0].parentNode.insertBefore(td, before);
- else
- cells[0].parentNode.appendChild(td);
- cells[0].parentNode.replaceChild(elem, td);
-
- // replace list cells
- for (r=0, len=this.tbody.rows.length; r<len; r++) {
- row = this.tbody.rows[r];
-
- elem = row.cells[from];
- before = row.cells[to];
- td = document.createElement('td');
-
- if (before)
- row.insertBefore(td, before);
- else
- row.appendChild(td);
- row.replaceChild(elem, td);
- }
-
- // update subject column position
- if (this.subject_col == from)
- this.subject_col = to > from ? to - 1 : to;
- else if (this.subject_col < from && to <= this.subject_col)
- this.subject_col++;
- else if (this.subject_col > from && to >= this.subject_col)
- this.subject_col--;
-
- if (this.fixed_header)
- this.init_header();
-
- this.triggerEvent('column_replace');
-}
-
-};
-
-rcube_list_widget.prototype.addEventListener = rcube_event_engine.prototype.addEventListener;
-rcube_list_widget.prototype.removeEventListener = rcube_event_engine.prototype.removeEventListener;
-rcube_list_widget.prototype.triggerEvent = rcube_event_engine.prototype.triggerEvent;
+function rcube_list_widget(a,b){this.ENTER_KEY=13;this.DELETE_KEY=46;this.BACKSPACE_KEY=8;this.list=a?a:null;this.frame=null;this.rows=[];this.selection=[];this.rowcount=0;this.colcount=0;this.subject_col=-1;this.modkey=0;this.multiselect=false;this.multiexpand=false;this.multi_selecting=false;this.draggable=false;this.column_movable=false;this.keyboard=false;this.toggleselect=false;this.dont_select=false;this.drag_active=false;this.col_drag_active=false;this.column_fixed=null;this.last_selected=0;this.shift_start=0;this.in_selection_before=false;this.focused=false;this.drag_mouse_start=null;this.dblclick_time=600;this.row_init=function(){};if(b&&typeof b==="object"){for(var c in b){this[c]=b[c]}}}rcube_list_widget.prototype={init:function(){if(this.list&&this.list.tBodies[0]){this.rows=[];this.rowcount=0;var b,a,c=this.list.tBodies[0].rows;for(b=0,a=c.length;b<a;b++){this.init_row(c[b]);this.rowcount++}this.init_header();this.frame=this.list.parentNode;if(this.keyboard){rcube_event.add_listener({event:"keydown",object:this,method:"key_press"})}}},init_row:function(c){if(c&&String(c.id).match(/^rcmrow([a-z0-9\-_=\+\/]+)/i)){var a=this,b=RegExp.$1;c.uid=b;this.rows[b]={uid:b,id:c.id,obj:c};c.onmousedown=function(d){return a.drag_row(d,this.uid)};c.onmouseup=function(d){return a.click_row(d,this.uid)};if(bw.touch){c.addEventListener("touchstart",function(d){if(d.touches.length==1){a.touchmoved=false;a.drag_row(rcube_event.touchevent(d.touches[0]),this.uid)}},false);c.addEventListener("touchend",function(d){if(d.changedTouches.length==1){if(!a.touchmoved&&!a.click_row(rcube_event.touchevent(d.changedTouches[0]),this.uid)){d.preventDefault()}}},false);c.addEventListener("touchmove",function(d){if(d.changedTouches.length==1){a.touchmoved=true;if(a.drag_active){d.preventDefault()}}},false)}if(document.all){c.onselectstart=function(){return false}}this.row_init(this.rows[b])}},init_header:function(){if(this.list&&this.list.tHead){this.colcount=0;var a,b,c=this;if(this.column_movable&&this.list.tHead&&this.list.tHead.rows){for(b=0;b<this.list.tHead.rows[0].cells.length;b++){if(this.column_fixed==b){continue}a=this.list.tHead.rows[0].cells[b];a.onmousedown=function(d){return c.drag_column(d,this)};this.colcount++}}}},clear:function(b){var a=document.createElement("tbody");this.list.insertBefore(a,this.list.tBodies[0]);this.list.removeChild(this.list.tBodies[1]);this.rows=[];this.rowcount=0;if(b){this.clear_selection()}if(this.frame){this.frame.scrollTop=0}},remove_row:function(a,b){var c=this.rows[a]?this.rows[a].obj:null;if(!c){return}c.style.display="none";if(b){this.select_next()}delete this.rows[a];this.rowcount--},insert_row:function(c,a){var b=this.list.tBodies[0];if(a&&b.rows.length){b.insertBefore(c,b.firstChild)}else{b.appendChild(c)}this.init_row(c);this.rowcount++},focus:function(a){var c,b;this.focused=true;for(c in this.selection){b=this.selection[c];if(this.rows[b]&&this.rows[b].obj){$(this.rows[b].obj).addClass("selected").removeClass("unfocused")}}$(":focus:not(body)").blur();window.focus();if(a||(a=window.event)){rcube_event.cancel(a)}},blur:function(){var b,a;this.focused=false;for(b in this.selection){a=this.selection[b];if(this.rows[a]&&this.rows[a].obj){$(this.rows[a].obj).removeClass("selected focused").addClass("unfocused")}}},drag_column:function(c,a){if(this.colcount>1){this.drag_start=true;this.drag_mouse_start=rcube_event.get_mouse_pos(c);rcube_event.add_listener({event:"mousemove",object:this,method:"column_drag_mouse_move"});rcube_event.add_listener({event:"mouseup",object:this,method:"column_drag_mouse_up"});this.add_dragfix();for(var b=0;b<this.list.tHead.rows[0].cells.length;b++){if(a==this.list.tHead.rows[0].cells[b]){this.selected_column=b;break}}}return false},drag_row:function(d,f){var c=rcube_event.get_target(d),b=c.tagName.toLowerCase();if(this.dont_select||(c&&(b=="input"||b=="img"))){return true}if(rcube_event.get_button(d)==2){return true}this.in_selection_before=d&&d.istouch||this.in_selection(f)?f:false;if(!this.in_selection_before){var a=rcube_event.get_modifier(d);this.select_row(f,a,false)}if(this.draggable&&this.selection.length&&this.in_selection(f)){this.drag_start=true;this.drag_mouse_start=rcube_event.get_mouse_pos(d);rcube_event.add_listener({event:"mousemove",object:this,method:"drag_mouse_move"});rcube_event.add_listener({event:"mouseup",object:this,method:"drag_mouse_up"});if(bw.touch){rcube_event.add_listener({event:"touchmove",object:this,method:"drag_mouse_move"});rcube_event.add_listener({event:"touchend",object:this,method:"drag_mouse_up"})}this.add_dragfix()}return false},click_row:function(g,h){var c=new Date().getTime(),b=rcube_event.get_modifier(g),f=rcube_event.get_target(g),d=f.tagName.toLowerCase();if((f&&(d=="input"||d=="img"))){return true}if(this.dont_select){this.dont_select=false;return false}var a=c-this.rows[h].clicked<this.dblclick_time;if(!this.drag_active&&this.in_selection_before==h&&!a){this.select_row(h,b,false)}this.drag_start=false;this.in_selection_before=false;if(this.rows&&a&&this.in_selection(h)){this.triggerEvent("dblclick");c=0}else{this.triggerEvent("click")}if(!this.drag_active){this.del_dragfix();rcube_event.cancel(g)}this.rows[h].clicked=c;return false},find_root:function(a){var b=this.rows[a];if(b&&b.parent_uid){return this.find_root(b.parent_uid)}else{return a}},expand_row:function(c,f){var d=this.rows[f],b=rcube_event.get_target(c),a=rcube_event.get_modifier(c);this.dont_select=true;d.clicked=0;if(d.expanded){b.className="collapsed";if(a==CONTROL_KEY||this.multiexpand){this.collapse_all(d)}else{this.collapse(d)}}else{b.className="expanded";if(a==CONTROL_KEY||this.multiexpand){this.expand_all(d)}else{this.expand(d)}}},collapse:function(d){d.expanded=false;this.triggerEvent("expandcollapse",{uid:d.uid,expanded:d.expanded,obj:d.obj});var c=d.depth;var a=d?d.obj.nextSibling:null;var b;while(a){if(a.nodeType==1){var b=this.rows[a.uid];if(b&&b.depth<=c){break}$(a).css("display","none");if(b.expanded){b.expanded=false;this.triggerEvent("expandcollapse",{uid:b.uid,expanded:b.expanded,obj:a})}}a=a.nextSibling}return false},expand:function(g){var d,e,f,b,a;if(g){g.expanded=true;f=g.depth;b=g.obj.nextSibling;this.update_expando(g.uid,true);this.triggerEvent("expandcollapse",{uid:g.uid,expanded:g.expanded,obj:g.obj})}else{var c=this.list.tBodies[0];b=c.firstChild;f=0;a=0}while(b){if(b.nodeType==1){d=this.rows[b.uid];if(d){if(g&&(!d.depth||d.depth<=f)){break}if(d.parent_uid){e=this.rows[d.parent_uid];if(e&&e.expanded){if((g&&e==g)||a>=e.depth-1){a=e.depth;$(b).css("display","");d.expanded=true;this.triggerEvent("expandcollapse",{uid:d.uid,expanded:d.expanded,obj:b})}}else{if(g&&(!e||e.depth<=f)){break}}}}}b=b.nextSibling}return false},collapse_all:function(d){var c,a,b;if(d){d.expanded=false;c=d.depth;a=d.obj.nextSibling;this.update_expando(d.uid);this.triggerEvent("expandcollapse",{uid:d.uid,expanded:d.expanded,obj:d.obj});if(c&&this.multiexpand){return false}}else{a=this.list.tBodies[0].firstChild;c=0}while(a){if(a.nodeType==1){if(b=this.rows[a.uid]){if(d&&(!b.depth||b.depth<=c)){break}if(d||b.depth){$(a).css("display","none")}if(b.has_children&&b.expanded){b.expanded=false;this.update_expando(b.uid,false);this.triggerEvent("expandcollapse",{uid:b.uid,expanded:b.expanded,obj:a})}}}a=a.nextSibling}return false},expand_all:function(d){var c,a,b;if(d){d.expanded=true;c=d.depth;a=d.obj.nextSibling;this.update_expando(d.uid,true);this.triggerEvent("expandcollapse",{uid:d.uid,expanded:d.expanded,obj:d.obj})}else{a=this.list.tBodies[0].firstChild;c=0}while(a){if(a.nodeType==1){if(b=this.rows[a.uid]){if(d&&b.depth<=c){break}$(a).css("display","");if(b.has_children&&!b.expanded){b.expanded=true;this.update_expando(b.uid,true);this.triggerEvent("expandcollapse",{uid:b.uid,expanded:b.expanded,obj:a})}}}a=a.nextSibling}return false},update_expando:function(b,a){var c=document.getElementById("rcmexpando"+b);if(c){c.className=a?"expanded":"collapsed"}},get_next_row:function(){if(!this.rows){return false}var b=this.rows[this.last_selected],a=b?b.obj.nextSibling:null;while(a&&(a.nodeType!=1||a.style.display=="none")){a=a.nextSibling}return a},get_prev_row:function(){if(!this.rows){return false}var b=this.rows[this.last_selected],a=b?b.obj.previousSibling:null;while(a&&(a.nodeType!=1||a.style.display=="none")){a=a.previousSibling}return a},get_first_row:function(){if(this.rowcount){var b,a,c=this.list.tBodies[0].rows;for(b=0,a=c.length-1;b<a;b++){if(c[b].id&&String(c[b].id).match(/^rcmrow([a-z0-9\-_=\+\/]+)/i)&&this.rows[RegExp.$1]!=null){return RegExp.$1}}}return null},get_last_row:function(){if(this.rowcount){var a,b=this.list.tBodies[0].rows;for(a=b.length-1;a>=0;a--){if(b[a].id&&String(b[a].id).match(/^rcmrow([a-z0-9\-_=\+\/]+)/i)&&this.rows[RegExp.$1]!=null){return RegExp.$1}}}return null},select_row:function(d,a,c){var b=this.selection.join(",");if(!this.multiselect){a=0}if(!this.shift_start){this.shift_start=d}if(!a){this.shift_start=d;this.highlight_row(d,false);this.multi_selecting=false}else{switch(a){case SHIFT_KEY:this.shift_select(d,false);break;case CONTROL_KEY:if(!c){this.highlight_row(d,true)}break;case CONTROL_SHIFT_KEY:this.shift_select(d,true);break;default:this.highlight_row(d,false);break}this.multi_selecting=true}if(this.selection.join(",")!=b){this.triggerEvent("select")}if(this.last_selected!=0&&this.rows[this.last_selected]){$(this.rows[this.last_selected].obj).removeClass("focused")}if(this.toggleselect&&this.last_selected==d){this.clear_selection();d=null}else{$(this.rows[d].obj).addClass("focused")}if(!this.selection.length){this.shift_start=null}this.last_selected=d},select:function(a){this.select_row(a,false);this.scrollto(a)},select_next:function(){var b=this.get_next_row(),c=this.get_prev_row(),a=(b)?b:c;if(a){this.select_row(a.uid,false,false)}},select_first:function(a){var b=this.get_first_row();if(b){if(a){this.shift_select(b,a);this.triggerEvent("select");this.scrollto(b)}else{this.select(b)}}},select_last:function(a){var b=this.get_last_row();if(b){if(a){this.shift_select(b,a);this.triggerEvent("select");this.scrollto(b)}else{this.select(b)}}},select_children:function(d){var c,b=this.row_children(d),a=b.length;for(c=0;c<a;c++){if(!this.in_selection(b[c])){this.select_row(b[c],CONTROL_KEY)}}},shift_select:function(h,f){if(!this.rows[this.shift_start]||!this.selection.length){this.shift_start=h}var g,d,c,a=this.rows[h],e=this.rows[this.shift_start].obj.rowIndex,b=a.obj.rowIndex;if(!a.expanded&&a.has_children){if(a=this.rows[(this.row_children(h)).pop()]){b=a.obj.rowIndex}}d=((e<b)?e:b),c=((e>b)?e:b);for(g in this.rows){if(this.rows[g].obj.rowIndex>=d&&this.rows[g].obj.rowIndex<=c){if(!this.in_selection(g)){this.highlight_row(g,true)}}else{if(this.in_selection(g)&&!f){this.highlight_row(g,true)}}}},in_selection:function(b){for(var a in this.selection){if(this.selection[a]==b){return true}}return false},select_all:function(b){if(!this.rows||!this.rows.length){return false}var c,a=this.selection.join(",");this.selection=[];for(c in this.rows){if(!b||this.rows[c][b]==true){this.last_selected=c;this.highlight_row(c,true,true)}else{$(this.rows[c].obj).removeClass("selected").removeClass("unfocused")}}if(this.selection.join(",")!=a){this.triggerEvent("select")}this.focus();return true},invert_selection:function(){if(!this.rows||!this.rows.length){return false}var b,a=this.selection.join(",");for(b in this.rows){this.highlight_row(b,true)}if(this.selection.join(",")!=a){this.triggerEvent("select")}this.focus();return true},clear_selection:function(c){var b,a=this.selection.length;if(c){for(b in this.selection){if(this.selection[b]==c){this.selection.splice(b,1);break}}}else{for(b in this.selection){if(this.rows[this.selection[b]]){$(this.rows[this.selection[b]].obj).removeClass("selected").removeClass("unfocused")}}this.selection=[]}if(a&&!this.selection.length){this.triggerEvent("select")}},get_selection:function(){return this.selection},get_single_selection:function(){if(this.selection.length==1){return this.selection[0]}else{return null}},highlight_row:function(f,a,e){if(!this.rows[f]){return}if(!a){if(this.selection.length>1||!this.in_selection(f)){this.clear_selection();this.selection[0]=f;$(this.rows[f].obj).addClass("selected")}}else{if(!this.in_selection(f)){this.selection.push(f);$(this.rows[f].obj).addClass("selected");if(!e&&!this.rows[f].expanded){this.highlight_children(f,true)}}else{var d=$.inArray(f,this.selection),c=this.selection.slice(0,d),b=this.selection.slice(d+1,this.selection.length);this.selection=c.concat(b);$(this.rows[f].obj).removeClass("selected").removeClass("unfocused");if(!e&&!this.rows[f].expanded){this.highlight_children(f,false)}}}},highlight_children:function(f,b){var d,e,c=this.row_children(f),a=c.length;for(d=0;d<a;d++){e=this.in_selection(c[d]);if((b&&!e)||(!b&&e)){this.highlight_row(c[d],true,true)}}},key_press:function(f){var d=f.target||{};if(this.focused!=true||d.nodeName=="INPUT"||d.nodeName=="TEXTAREA"||d.nodeName=="SELECT"){return true}var c=rcube_event.get_keycode(f),a=rcube_event.get_modifier(f);switch(c){case 40:case 38:case 63233:case 63232:rcube_event.cancel(f);return this.use_arrow_key(c,a);case 61:case 107:case 109:case 32:rcube_event.cancel(f);var b=this.use_plusminus_key(c,a);this.key_pressed=c;this.modkey=a;this.triggerEvent("keypress");this.modkey=0;return b;case 36:this.select_first(a);return rcube_event.cancel(f);case 35:this.select_last(a);return rcube_event.cancel(f);case 27:if(this.drag_active){return this.drag_mouse_up(f)}if(this.col_drag_active){this.selected_column=null;return this.column_drag_mouse_up(f)}return rcube_event.cancel(f);default:this.key_pressed=c;this.modkey=a;this.triggerEvent("keypress");this.modkey=0;if(this.key_pressed==this.BACKSPACE_KEY){return rcube_event.cancel(f)}}return true},use_arrow_key:function(c,b){var a;if(c==40||c==63233){a=this.get_next_row()}else{if(c==38||c==63232){a=this.get_prev_row()}}if(a){this.select_row(a.uid,b,false);this.scrollto(a.uid)}return false},use_plusminus_key:function(c,a){var b=this.rows[this.last_selected];if(!b){return}if(c==32){c=b.expanded?109:61}if(c==61||c==107){if(a==CONTROL_KEY||this.multiexpand){this.expand_all(b)}else{this.expand(b)}}else{if(a==CONTROL_KEY||this.multiexpand){this.collapse_all(b)}else{this.collapse(b)}}this.update_expando(b.uid,b.expanded);return false},scrollto:function(d){var c=this.rows[d].obj;if(c&&this.frame){var b=Number(c.offsetTop);if(!b&&this.rows[d].parent_uid){var a=this.find_root(this.rows[d].uid);this.expand_all(this.rows[a]);b=Number(c.offsetTop)}if(b<Number(this.frame.scrollTop)){this.frame.scrollTop=b}else{if(b+Number(c.offsetHeight)>Number(this.frame.scrollTop)+Number(this.frame.offsetHeight)){this.frame.scrollTop=(b+Number(c.offsetHeight))-Number(this.frame.offsetHeight)}}}},drag_mouse_move:function(l){if(l.type=="touchmove"){if(l.touches.length==1&&l.changedTouches.length==1){l=rcube_event.touchevent(l.changedTouches[0])}else{return rcube_event.cancel(l)}}if(this.drag_start){var f=rcube_event.get_mouse_pos(l);if(!this.drag_mouse_start||(Math.abs(f.x-this.drag_mouse_start.x)<3&&Math.abs(f.y-this.drag_mouse_start.y)<3)){return false}if(!this.draglayer){this.draglayer=$("<div>").attr("id","rcmdraglayer").css({position:"absolute",display:"none","z-index":2000}).appendTo(document.body)}var b,j,t=$.merge([],this.selection);for(b in t){j=t[b];if(!this.rows[j].expanded){this.select_children(j)}}this.draglayer.html("");var o,h,b,p,g;for(b=0;b<this.selection.length;b++){if(b>12){this.draglayer.append("...");break}if(g=this.rows[this.selection[b]].obj){p="";for(o=0,h=0;h<g.childNodes.length;h++){if(g.childNodes[h].nodeName=="TD"){if(b==0){this.drag_start_pos=$(g.childNodes[h]).offset()}if(this.subject_col<0||(this.subject_col>=0&&this.subject_col==o)){var s,d,k,a=g.childNodes[h].childNodes;for(f=0;f<a.length;f++){if((k=g.childNodes[h].childNodes[f])&&(k.nodeType==3||k.nodeName=="A")){d=k}}if(!d){break}p=$(d).text();p=$.trim(p);p=(p.length>50?p.substring(0,50)+"...":p);s=$("<div>").text(p);this.draglayer.append(s);break}o++}}}}this.draglayer.show();this.drag_active=true;this.triggerEvent("dragstart")}if(this.drag_active&&this.draglayer){var q=rcube_event.get_mouse_pos(l);this.draglayer.css({left:(q.x+20)+"px",top:(q.y-5+(bw.ie?document.documentElement.scrollTop:0))+"px"});this.triggerEvent("dragmove",l?l:window.event)}this.drag_start=false;return false},drag_mouse_up:function(a){document.onmousemove=null;if(a.type=="touchend"){if(a.changedTouches.length!=1){return rcube_event.cancel(a)}}if(this.draglayer&&this.draglayer.is(":visible")){if(this.drag_start_pos){this.draglayer.animate(this.drag_start_pos,300,"swing").hide(20)}else{this.draglayer.hide()}}if(this.drag_active){this.focus()}this.drag_active=false;rcube_event.remove_listener({event:"mousemove",object:this,method:"drag_mouse_move"});rcube_event.remove_listener({event:"mouseup",object:this,method:"drag_mouse_up"});if(bw.touch){rcube_event.remove_listener({event:"touchmove",object:this,method:"drag_mouse_move"});rcube_event.remove_listener({event:"touchend",object:this,method:"drag_mouse_up"})}this.del_dragfix();this.triggerEvent("dragend");return rcube_event.cancel(a)},column_drag_mouse_move:function(f){if(this.drag_start){var c,a=rcube_event.get_mouse_pos(f);if(!this.drag_mouse_start||(Math.abs(a.x-this.drag_mouse_start.x)<3&&Math.abs(a.y-this.drag_mouse_start.y)<3)){return false}if(!this.col_draglayer){var d=$(this.list).offset(),b=this.list.tHead.rows[0].cells;this.col_draglayer=$("<div>").attr("id","rcmcoldraglayer").css(d).css({position:"absolute","z-index":2001,"background-color":"white",opacity:0.75,height:(this.frame.offsetHeight-2)+"px",width:(this.frame.offsetWidth-2)+"px"}).appendTo(document.body).append($("<div>").attr("id","rcmcolumnindicator").css({position:"absolute","border-right":"2px dotted #555","z-index":2002,height:(this.frame.offsetHeight-2)+"px"}));this.cols=[];this.list_pos=this.list_min_pos=d.left;for(c=0;c<b.length;c++){this.cols[c]=b[c].offsetWidth;if(this.column_fixed!==null&&c<=this.column_fixed){this.list_min_pos+=this.cols[c]}}}this.col_draglayer.show();this.col_drag_active=true;this.triggerEvent("column_dragstart")}if(this.col_drag_active&&this.col_draglayer){var c,h=0,g=rcube_event.get_mouse_pos(f);for(c=0;c<this.cols.length;c++){if(g.x>=this.cols[c]/2+this.list_pos+h){h+=this.cols[c]}else{break}}if(c==0&&this.list_min_pos>g.x){h=this.list_min_pos-this.list_pos}else{if(!this.list.rowcount&&c==this.cols.length){h-=2}}$("#rcmcolumnindicator").css({width:h+"px"});this.triggerEvent("column_dragmove",f?f:window.event)}this.drag_start=false;return false},column_drag_mouse_up:function(b){document.onmousemove=null;if(this.col_draglayer){(this.col_draglayer).remove();this.col_draglayer=null}if(this.col_drag_active){this.focus()}this.col_drag_active=false;rcube_event.remove_listener({event:"mousemove",object:this,method:"column_drag_mouse_move"});rcube_event.remove_listener({event:"mouseup",object:this,method:"column_drag_mouse_up"});this.del_dragfix();if(this.selected_column!==null&&this.cols&&this.cols.length){var a,d=0,c=rcube_event.get_mouse_pos(b);for(a=0;a<this.cols.length;a++){if(c.x>=this.cols[a]/2+this.list_pos+d){d+=this.cols[a]}else{break}}if(a!=this.selected_column&&a!=this.selected_column+1){this.column_replace(this.selected_column,a)}}this.triggerEvent("column_dragend");return rcube_event.cancel(b)},row_children:function(b){if(!this.rows[b]||!this.rows[b].has_children){return[]}var a=[],d=this.rows[b].depth,c=this.rows[b].obj.nextSibling;while(c){if(c.nodeType==1){if((r=this.rows[c.uid])){if(!r.depth||r.depth<=d){break}a.push(r.uid)}}c=c.nextSibling}return a},add_dragfix:function(){$("iframe").each(function(){$('<div class="iframe-dragdrop-fix"></div>').css({background:"#fff",width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css($(this).offset()).appendTo(document.body)})},del_dragfix:function(){$("div.iframe-dragdrop-fix").each(function(){this.parentNode.removeChild(this)})},column_replace:function(g,f){var a,b=this.list.tHead.rows[0].cells,c=b[g],d=b[f],e=document.createElement("td");if(d){b[0].parentNode.insertBefore(e,d)}else{b[0].parentNode.appendChild(e)}b[0].parentNode.replaceChild(c,e);for(r=0,a=this.list.tBodies[0].rows.length;r<a;r++){row=this.list.tBodies[0].rows[r];c=row.cells[g];d=row.cells[f];e=document.createElement("td");if(d){row.insertBefore(e,d)}else{row.appendChild(e)}row.replaceChild(c,e)}if(this.subject_col==g){this.subject_col=f>g?f-1:f}else{if(this.subject_col<g&&f<=this.subject_col){this.subject_col++}else{if(this.subject_col>g&&f>=this.subject_col){this.subject_col--}}}this.triggerEvent("column_replace")}};rcube_list_widget.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;rcube_list_widget.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;rcube_list_widget.prototype.triggerEvent=rcube_event_engine.prototype.triggerEvent; \ No newline at end of file
diff --git a/program/lib/Roundcube/bootstrap.php b/program/lib/Roundcube/bootstrap.php
index 6e5143382..c3fac1f4d 100644
--- a/program/lib/Roundcube/bootstrap.php
+++ b/program/lib/Roundcube/bootstrap.php
@@ -54,11 +54,11 @@ foreach ($config as $optname => $optval) {
}
// framework constants
-define('RCUBE_VERSION', '1.0-git');
+define('RCUBE_VERSION', '0.9.5');
define('RCUBE_CHARSET', 'UTF-8');
if (!defined('RCUBE_LIB_DIR')) {
- define('RCUBE_LIB_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR);
+ define('RCUBE_LIB_DIR', dirname(__FILE__).'/');
}
if (!defined('RCUBE_INSTALL_PATH')) {
@@ -303,6 +303,32 @@ function is_ascii($str, $control_chars = true)
/**
+ * Remove single and double quotes from a given string
+ *
+ * @param string Input value
+ *
+ * @return string Dequoted string
+ */
+function strip_quotes($str)
+{
+ return str_replace(array("'", '"'), '', $str);
+}
+
+
+/**
+ * Remove new lines characters from given string
+ *
+ * @param string $str Input value
+ *
+ * @return string Stripped string
+ */
+function strip_newlines($str)
+{
+ return preg_replace('/[\r\n]/', '', $str);
+}
+
+
+/**
* Compose a valid representation of name and e-mail address
*
* @param string $email E-mail address
diff --git a/program/lib/Roundcube/html.php b/program/lib/Roundcube/html.php
index f6f744cb2..1a4c3beba 100644
--- a/program/lib/Roundcube/html.php
+++ b/program/lib/Roundcube/html.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2011, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -21,7 +21,7 @@
* Class for HTML code creation
*
* @package Framework
- * @subpackage View
+ * @subpackage HTML
*/
class html
{
@@ -32,8 +32,8 @@ class html
public static $doctype = 'xhtml';
public static $lc_tags = true;
- public static $common_attrib = array('id','class','style','title','align','unselectable');
- public static $containers = array('iframe','div','span','p','h1','h2','h3','ul','form','textarea','table','thead','tbody','tr','th','td','style','script');
+ public static $common_attrib = array('id','class','style','title','align');
+ public static $containers = array('iframe','div','span','p','h1','h2','h3','form','textarea','table','thead','tbody','tr','th','td','style','script');
/**
@@ -218,7 +218,7 @@ class html
$attr = array('src' => $attr);
}
return self::tag('iframe', $attr, $cont, array_merge(self::$common_attrib,
- array('src','name','width','height','border','frameborder','onload')));
+ array('src','name','width','height','border','frameborder')));
}
/**
@@ -288,7 +288,7 @@ class html
}
// attributes with no value
- if (in_array($key, array('checked', 'multiple', 'disabled', 'selected', 'autofocus'))) {
+ if (in_array($key, array('checked', 'multiple', 'disabled', 'selected'))) {
if ($value) {
$attrib_arr[] = $key . '="' . $key . '"';
}
@@ -350,18 +350,16 @@ class html
/**
* Class to create an HTML input field
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_inputfield extends html
{
protected $tagname = 'input';
protected $type = 'text';
protected $allowed = array(
- 'type','name','value','size','tabindex','autocapitalize','required',
+ 'type','name','value','size','tabindex','autocapitalize',
'autocomplete','checked','onchange','onclick','disabled','readonly',
- 'spellcheck','results','maxlength','src','multiple','accept',
- 'placeholder','autofocus',
+ 'spellcheck','results','maxlength','src','multiple','placeholder',
);
/**
@@ -407,8 +405,7 @@ class html_inputfield extends html
/**
* Class to create an HTML password field
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_passwordfield extends html_inputfield
{
@@ -418,9 +415,9 @@ class html_passwordfield extends html_inputfield
/**
* Class to create an hidden HTML input field
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
+
class html_hiddenfield extends html
{
protected $tagname = 'input';
@@ -468,8 +465,7 @@ class html_hiddenfield extends html
/**
* Class to create HTML radio buttons
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_radiobutton extends html_inputfield
{
@@ -499,8 +495,7 @@ class html_radiobutton extends html_inputfield
/**
* Class to create HTML checkboxes
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_checkbox extends html_inputfield
{
@@ -530,8 +525,7 @@ class html_checkbox extends html_inputfield
/**
* Class to create an HTML textarea
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_textarea extends html
{
@@ -589,8 +583,7 @@ class html_textarea extends html
* print $select->show('CH');
* </pre>
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_select extends html
{
@@ -604,17 +597,16 @@ class html_select extends html
*
* @param mixed $names Option name or array with option names
* @param mixed $values Option value or array with option values
- * @param array $attrib Additional attributes for the option entry
*/
- public function add($names, $values = null, $attrib = array())
+ public function add($names, $values = null)
{
if (is_array($names)) {
foreach ($names as $i => $text) {
- $this->options[] = array('text' => $text, 'value' => $values[$i]) + $attrib;
+ $this->options[] = array('text' => $text, 'value' => $values[$i]);
}
}
else {
- $this->options[] = array('text' => $names, 'value' => $values) + $attrib;
+ $this->options[] = array('text' => $names, 'value' => $values);
}
}
@@ -645,7 +637,7 @@ class html_select extends html
$option_content = self::quote($option_content);
}
- $this->content .= self::tag('option', $attr + $option, $option_content, array('value','label','class','style','title','disabled','selected'));
+ $this->content .= self::tag('option', $attr, $option_content);
}
return parent::show();
@@ -656,8 +648,7 @@ class html_select extends html
/**
* Class to build an HTML table
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_table extends html
{
@@ -679,11 +670,6 @@ class html_table extends html
{
$default_attrib = self::$doctype == 'xhtml' ? array('summary' => '', 'border' => 0) : array();
$this->attrib = array_merge($attrib, $default_attrib);
-
- if (!empty($attrib['tagname']) && $attrib['tagname'] != 'table') {
- $this->tagname = $attrib['tagname'];
- $this->allowed = self::$common_attrib;
- }
}
/**
@@ -827,20 +813,19 @@ class html_table extends html
if (!empty($this->header)) {
$rowcontent = '';
foreach ($this->header as $c => $col) {
- $rowcontent .= self::tag($this->_col_tagname(), $col->attrib, $col->content);
+ $rowcontent .= self::tag('td', $col->attrib, $col->content);
}
- $thead = $this->tagname == 'table' ? self::tag('thead', null, self::tag('tr', null, $rowcontent, parent::$common_attrib)) :
- self::tag($this->_row_tagname(), array('class' => 'thead'), $rowcontent, parent::$common_attrib);
+ $thead = self::tag('thead', null, self::tag('tr', null, $rowcontent, parent::$common_attrib));
}
foreach ($this->rows as $r => $row) {
$rowcontent = '';
foreach ($row->cells as $c => $col) {
- $rowcontent .= self::tag($this->_col_tagname(), $col->attrib, $col->content);
+ $rowcontent .= self::tag('td', $col->attrib, $col->content);
}
if ($r < $this->rowindex || count($row->cells)) {
- $tbody .= self::tag($this->_row_tagname(), $row->attrib, $rowcontent, parent::$common_attrib);
+ $tbody .= self::tag('tr', $row->attrib, $rowcontent, parent::$common_attrib);
}
}
@@ -849,7 +834,7 @@ class html_table extends html
}
// add <tbody>
- $this->content = $thead . ($this->tagname == 'table' ? self::tag('tbody', null, $tbody) : $tbody);
+ $this->content = $thead . self::tag('tbody', null, $tbody);
unset($this->attrib['cols'], $this->attrib['rowsonly']);
return parent::show();
@@ -874,22 +859,4 @@ class html_table extends html
$this->rowindex = 0;
}
- /**
- * Getter for the corresponding tag name for table row elements
- */
- private function _row_tagname()
- {
- static $row_tagnames = array('table' => 'tr', 'ul' => 'li', '*' => 'div');
- return $row_tagnames[$this->tagname] ?: $row_tagnames['*'];
- }
-
- /**
- * Getter for the corresponding tag name for table cell elements
- */
- private function _col_tagname()
- {
- static $col_tagnames = array('table' => 'td', '*' => 'span');
- return $col_tagnames[$this->tagname] ?: $col_tagnames['*'];
- }
-
}
diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php
index 399f84fd8..7329b09fb 100644
--- a/program/lib/Roundcube/rcube.php
+++ b/program/lib/Roundcube/rcube.php
@@ -99,20 +99,20 @@ class rcube
protected $texts;
protected $caches = array();
protected $shutdown_functions = array();
+ protected $expunge_cache = false;
/**
* This implements the 'singleton' design pattern
*
* @param integer Options to initialize with this instance. See rcube::INIT_WITH_* constants
- * @param string Environment name to run (e.g. live, dev, test)
*
* @return rcube The one and only instance
*/
- static function get_instance($mode = 0, $env = '')
+ static function get_instance($mode = 0)
{
if (!self::$instance) {
- self::$instance = new rcube($env);
+ self::$instance = new rcube();
self::$instance->init($mode);
}
@@ -123,10 +123,10 @@ class rcube
/**
* Private constructor
*/
- protected function __construct($env = '')
+ protected function __construct()
{
// load configuration
- $this->config = new rcube_config($env);
+ $this->config = new rcube_config;
$this->plugins = new rcube_dummy_plugin_api;
register_shutdown_function(array($this, 'shutdown'));
@@ -258,39 +258,6 @@ class rcube
/**
- * Initialize and get shared cache object
- *
- * @param string $name Cache identifier
- * @param bool $packed Enables/disables data serialization
- *
- * @return rcube_cache_shared Cache object
- */
- public function get_cache_shared($name, $packed=true)
- {
- $shared_name = "shared_$name";
-
- if (!array_key_exists($shared_name, $this->caches)) {
- $opt = strtolower($name) . '_cache';
- $type = $this->config->get($opt);
- $ttl = $this->config->get($opt . '_ttl');
-
- if (!$type) {
- // cache is disabled
- return $this->caches[$shared_name] = null;
- }
-
- if ($ttl === null) {
- $ttl = $this->config->get('shared_cache_ttl', '10d');
- }
-
- $this->caches[$shared_name] = new rcube_cache_shared($type, $name, $ttl, $packed);
- }
-
- return $this->caches[$shared_name];
- }
-
-
- /**
* Create SMTP object and connect to server
*
* @param boolean True if connection should be established
@@ -378,7 +345,6 @@ class rcube
'auth_pw' => $this->config->get("{$driver}_auth_pw"),
'debug' => (bool) $this->config->get("{$driver}_debug"),
'force_caps' => (bool) $this->config->get("{$driver}_force_caps"),
- 'disabled_caps' => $this->config->get("{$driver}_disabled_caps"),
'timeout' => (int) $this->config->get("{$driver}_timeout"),
'skip_deleted' => (bool) $this->config->get('skip_deleted'),
'driver' => $driver,
@@ -458,12 +424,15 @@ class rcube
ini_set('session.name', $sess_name ? $sess_name : 'roundcube_sessid');
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
+ ini_set('session.serialize_handler', 'php');
ini_set('session.cookie_httponly', 1);
// use database for storing session data
$this->session = new rcube_session($this->get_dbh(), $this->config);
- $this->session->register_gc_handler(array($this, 'gc'));
+ $this->session->register_gc_handler(array($this, 'temp_gc'));
+ $this->session->register_gc_handler(array($this, 'cache_gc'));
+
$this->session->set_secret($this->config->get('des_key') . dirname($_SERVER['SCRIPT_NAME']));
$this->session->set_ip_check($this->config->get('ip_check'));
@@ -473,47 +442,27 @@ class rcube
// start PHP session (if not in CLI mode)
if ($_SERVER['REMOTE_ADDR']) {
- $this->session->start();
+ session_start();
}
}
/**
- * Garbage collector - cache/temp cleaner
- */
- public function gc()
- {
- rcube_cache::gc();
- rcube_cache_shared::gc();
- $this->get_storage()->cache_gc();
-
- $this->gc_temp();
- }
-
-
- /**
* Garbage collector function for temp files.
* Remove temp files older than two days
*/
- public function gc_temp()
+ public function temp_gc()
{
$tmp = unslashify($this->config->get('temp_dir'));
-
- // expire in 48 hours by default
- $temp_dir_ttl = $this->config->get('temp_dir_ttl', '48h');
- $temp_dir_ttl = get_offset_sec($temp_dir_ttl);
- if ($temp_dir_ttl < 6*3600)
- $temp_dir_ttl = 6*3600; // 6 hours sensible lower bound.
-
- $expire = time() - $temp_dir_ttl;
+ $expire = time() - 172800; // expire in 48 hours
if ($tmp && ($dir = opendir($tmp))) {
while (($fname = readdir($dir)) !== false) {
- if ($fname[0] == '.') {
+ if ($fname{0} == '.') {
continue;
}
- if (@filemtime($tmp.'/'.$fname) < $expire) {
+ if (filemtime($tmp.'/'.$fname) < $expire) {
@unlink($tmp.'/'.$fname);
}
}
@@ -524,21 +473,14 @@ class rcube
/**
- * Runs garbage collector with probability based on
- * session settings. This is intended for environments
- * without a session.
+ * Garbage collector for cache entries.
+ * Set flag to expunge caches on shutdown
*/
- public function gc_run()
+ public function cache_gc()
{
- $probability = (int) ini_get('session.gc_probability');
- $divisor = (int) ini_get('session.gc_divisor');
-
- if ($divisor > 0 && $probability > 0) {
- $random = mt_rand(1, $divisor);
- if ($random <= $probability) {
- $this->gc();
- }
- }
+ // because this gc function is called before storage is initialized,
+ // we just set a flag to expunge storage cache on shutdown.
+ $this->expunge_cache = true;
}
@@ -702,11 +644,7 @@ class rcube
// user HTTP_ACCEPT_LANGUAGE if no language is specified
if (empty($lang) || $lang == 'auto') {
$accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
- $lang = $accept_langs[0];
-
- if (preg_match('/^([a-z]+)[_-]([a-z]+)$/i', $lang, $m)) {
- $lang = $m[1] . '_' . strtoupper($m[2]);
- }
+ $lang = str_replace('-', '_', $accept_langs[0]);
}
if (empty($rcube_languages)) {
@@ -801,7 +739,7 @@ class rcube
mcrypt_module_close($td);
}
else {
- @include_once 'des.inc';
+ // @include_once 'des.inc'; (not shipped with this distribution)
if (function_exists('des')) {
$des_iv_size = 8;
@@ -856,7 +794,7 @@ class rcube
mcrypt_module_close($td);
}
else {
- @include_once 'des.inc';
+ // @include_once 'des.inc'; (not shipped with this distribution)
if (function_exists('des')) {
$des_iv_size = 8;
@@ -926,14 +864,6 @@ class rcube
call_user_func($function);
}
- // write session data as soon as possible and before
- // closing database connection, don't do this before
- // registered shutdown functions, they may need the session
- // Note: this will run registered gc handlers (ie. cache gc)
- if ($_SERVER['REMOTE_ADDR'] && is_object($this->session)) {
- $this->session->write_close();
- }
-
if (is_object($this->smtp)) {
$this->smtp->disconnect();
}
@@ -945,6 +875,9 @@ class rcube
}
if (is_object($this->storage)) {
+ if ($this->expunge_cache) {
+ $this->storage->expunge_cache();
+ }
$this->storage->close();
}
}
@@ -1363,191 +1296,6 @@ class rcube
}
}
- /**
- * Unique Message-ID generator.
- *
- * @return string Message-ID
- */
- public function gen_message_id()
- {
- $local_part = md5(uniqid('rcube'.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);
- }
-
- /**
- * 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;
- }
-
}
diff --git a/program/lib/Roundcube/rcube_addressbook.php b/program/lib/Roundcube/rcube_addressbook.php
index 886f65cb9..13016ecc7 100644
--- a/program/lib/Roundcube/rcube_addressbook.php
+++ b/program/lib/Roundcube/rcube_addressbook.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-2013, The Roundcube Dev Team |
+ | Copyright (C) 2006-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -35,7 +35,6 @@ abstract class rcube_addressbook
/** public properties (mandatory) */
public $primary_key;
public $groups = false;
- public $export_groups = true;
public $readonly = true;
public $searchonly = false;
public $undelete = false;
@@ -209,7 +208,6 @@ abstract class rcube_addressbook
public function validate(&$save_data, $autofix = false)
{
$rcube = rcube::get_instance();
- $valid = true;
// check validity of email addresses
foreach ($this->get_col_values('email', $save_data, true) as $email) {
@@ -217,28 +215,12 @@ abstract class rcube_addressbook
if (!rcube_utils::check_email(rcube_utils::idn_to_ascii($email))) {
$error = $rcube->gettext(array('name' => 'emailformaterror', 'vars' => array('email' => $email)));
$this->set_error(self::ERROR_VALIDATE, $error);
- $valid = false;
- break;
+ return false;
}
}
}
- // allow plugins to do contact validation and auto-fixing
- $plugin = $rcube->plugins->exec_hook('contact_validate', array(
- 'record' => $save_data,
- 'autofix' => $autofix,
- 'valid' => $valid,
- ));
-
- if ($valid && !$plugin['valid']) {
- $this->set_error(self::ERROR_VALIDATE, $plugin['error']);
- }
-
- if (is_array($plugin['record'])) {
- $save_data = $plugin['record'];
- }
-
- return $plugin['valid'];
+ return true;
}
/**
@@ -441,7 +423,7 @@ abstract class rcube_addressbook
* @param boolean True to return one array with all values, False for hash array with values grouped by type
* @return array List of column values
*/
- public static function get_col_values($col, $data, $flat = false)
+ function get_col_values($col, $data, $flat = false)
{
$out = array();
foreach ((array)$data as $c => $values) {
@@ -450,7 +432,7 @@ abstract class rcube_addressbook
$out = array_merge($out, (array)$values);
}
else {
- list(, $type) = explode(':', $c);
+ list($f, $type) = explode(':', $c);
$out[$type] = array_merge((array)$out[$type], (array)$values);
}
}
@@ -494,8 +476,7 @@ abstract class rcube_addressbook
$fn = trim(join(' ', array_filter(array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix']))));
// use email address part for name
- $email = self::get_col_values('email', $contact, true);
- $email = $email[0];
+ $email = is_array($contact['email']) ? $contact['email'][0] : $contact['email'];
if ($email && (empty($fn) || $fn == $email)) {
// return full email
@@ -532,12 +513,8 @@ abstract class rcube_addressbook
$fn = join(' ', array($contact['surname'], $contact['firstname'], $contact['middlename']));
else if ($compose_mode == 1)
$fn = join(' ', array($contact['firstname'], $contact['middlename'], $contact['surname']));
- else if ($compose_mode == 0)
+ else
$fn = !empty($contact['name']) ? $contact['name'] : join(' ', array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix']));
- else {
- $plugin = rcube::get_instance()->plugins->exec_hook('contact_listname', array('contact' => $contact));
- $fn = $plugin['fn'];
- }
$fn = trim($fn, ', ');
@@ -546,9 +523,9 @@ abstract class rcube_addressbook
$fn = $contact['name'];
// fallback to email address
- if (empty($fn) && ($email = self::get_col_values('email', $contact, true)) && !empty($email)) {
- return $email[0];
- }
+ $email = is_array($contact['email']) ? $contact['email'][0] : $contact['email'];
+ if (empty($fn) && $email)
+ return $email;
return $fn;
}
@@ -561,11 +538,11 @@ abstract class rcube_addressbook
$key = $contact[$sort_col] . ':' . $contact['sourceid'];
// add email to a key to not skip contacts with the same name (#1488375)
- if (($email = self::get_col_values('email', $contact, true)) && !empty($email)) {
- $key .= ':' . implode(':', (array)$email);
- }
+ if (!empty($contact['email'])) {
+ $key .= ':' . implode(':', (array)$contact['email']);
+ }
- return $key;
+ return $key;
}
/**
@@ -584,9 +561,9 @@ abstract class rcube_addressbook
// use only strict comparison (mode = 1)
// @TODO: partial search, e.g. match only day and month
if (in_array($colname, $this->date_cols)) {
- return (($value = rcube_utils::anytodatetime($value))
- && ($search = rcube_utils::anytodatetime($search))
- && $value->format('Ymd') == $search->format('Ymd'));
+ return (($value = rcube_utils::strtotime($value))
+ && ($search = rcube_utils::strtotime($search))
+ && date('Ymd', $value) == date('Ymd', $search));
}
// composite field, e.g. address
diff --git a/program/lib/Roundcube/rcube_base_replacer.php b/program/lib/Roundcube/rcube_base_replacer.php
index fa6764753..aaaa2028c 100644
--- a/program/lib/Roundcube/rcube_base_replacer.php
+++ b/program/lib/Roundcube/rcube_base_replacer.php
@@ -21,7 +21,7 @@
* using a predefined base
*
* @package Framework
- * @subpackage Utils
+ * @subpackage Core
* @author Thomas Bruederli <roundcube@gmail.com>
*/
class rcube_base_replacer
@@ -90,8 +90,8 @@ class rcube_base_replacer
if (preg_match_all('/\.\.\//', $path, $matches, PREG_SET_ORDER)) {
foreach ($matches as $a_match) {
- if ($pos = strrpos($base_url, '/')) {
- $base_url = substr($base_url, 0, $pos);
+ if (strrpos($base_url, '/')) {
+ $base_url = substr($base_url, 0, strrpos($base_url, '/'));
}
$path = substr($path, 3);
}
diff --git a/program/lib/Roundcube/rcube_browser.php b/program/lib/Roundcube/rcube_browser.php
index 34128291b..d10fe2a2c 100644
--- a/program/lib/Roundcube/rcube_browser.php
+++ b/program/lib/Roundcube/rcube_browser.php
@@ -20,7 +20,7 @@
* Provide details about the client's browser based on the User-Agent header
*
* @package Framework
- * @subpackage Utils
+ * @subpackage Core
*/
class rcube_browser
{
diff --git a/program/lib/Roundcube/rcube_cache.php b/program/lib/Roundcube/rcube_cache.php
index a708cb292..deaba68e9 100644
--- a/program/lib/Roundcube/rcube_cache.php
+++ b/program/lib/Roundcube/rcube_cache.php
@@ -38,7 +38,6 @@ class rcube_cache
private $type;
private $userid;
private $prefix;
- private $table;
private $ttl;
private $packed;
private $index;
@@ -72,9 +71,8 @@ class rcube_cache
$this->db = function_exists('apc_exists'); // APC 3.1.4 required
}
else {
- $this->type = 'db';
- $this->db = $rcube->get_dbh();
- $this->table = $this->db->table_name('cache');
+ $this->type = 'db';
+ $this->db = $rcube->get_dbh();
}
// convert ttl string to seconds
@@ -194,31 +192,20 @@ class rcube_cache
*/
function expunge()
{
- if ($this->type == 'db' && $this->db && $this->ttl) {
+ if ($this->type == 'db' && $this->db) {
$this->db->query(
- "DELETE FROM ".$this->table.
+ "DELETE FROM ".$this->db->table_name('cache').
" WHERE user_id = ?".
" AND cache_key LIKE ?".
- " AND expires < " . $this->db->now(),
+ " AND " . $this->db->unixtimestamp('created')." < ?",
$this->userid,
- $this->prefix.'.%');
+ $this->prefix.'.%',
+ time() - $this->ttl);
}
}
/**
- * Remove expired records of all caches
- */
- static function gc()
- {
- $rcube = rcube::get_instance();
- $db = $rcube->get_dbh();
-
- $db->query("DELETE FROM " . $db->table_name('cache') . " WHERE expires < " . $db->now());
- }
-
-
- /**
* Writes the cache back to the DB.
*/
function close()
@@ -284,7 +271,7 @@ class rcube_cache
else {
$sql_result = $this->db->limitquery(
"SELECT data, cache_key".
- " FROM " . $this->table.
+ " FROM ".$this->db->table_name('cache').
" WHERE user_id = ?".
" AND cache_key = ?".
// for better performance we allow more records for one key
@@ -339,7 +326,7 @@ class rcube_cache
// Remove NULL rows (here we don't need to check if the record exist)
if ($data == 'N;') {
$this->db->query(
- "DELETE FROM " . $this->table.
+ "DELETE FROM ".$this->db->table_name('cache').
" WHERE user_id = ?".
" AND cache_key = ?",
$this->userid, $key);
@@ -350,10 +337,8 @@ class rcube_cache
// update existing cache record
if ($key_exists) {
$result = $this->db->query(
- "UPDATE " . $this->table.
- " SET created = " . $this->db->now().
- ", expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL').
- ", data = ?".
+ "UPDATE ".$this->db->table_name('cache').
+ " SET created = ". $this->db->now().", data = ?".
" WHERE user_id = ?".
" AND cache_key = ?",
$data, $this->userid, $key);
@@ -363,9 +348,9 @@ class rcube_cache
// for better performance we allow more records for one key
// so, no need to check if record exist (see rcube_cache::read_record())
$result = $this->db->query(
- "INSERT INTO " . $this->table.
- " (created, expires, user_id, cache_key, data)".
- " VALUES (" . $this->db->now() . ", " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL') . ", ?, ?, ?)",
+ "INSERT INTO ".$this->db->table_name('cache').
+ " (created, user_id, cache_key, data)".
+ " VALUES (".$this->db->now().", ?, ?, ?)",
$this->userid, $key, $data);
}
@@ -426,7 +411,7 @@ class rcube_cache
}
$this->db->query(
- "DELETE FROM " . $this->table.
+ "DELETE FROM ".$this->db->table_name('cache').
" WHERE user_id = ?" . $where,
$this->userid);
}
diff --git a/program/lib/Roundcube/rcube_config.php b/program/lib/Roundcube/rcube_config.php
index 04b914c3d..3edec4242 100644
--- a/program/lib/Roundcube/rcube_config.php
+++ b/program/lib/Roundcube/rcube_config.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2008-2013, The Roundcube Dev Team |
+ | Copyright (C) 2008-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -26,8 +26,6 @@ class rcube_config
{
const DEFAULT_SKIN = 'larry';
- private $env = '';
- private $paths = array();
private $prop = array();
private $errors = array();
private $userprefs = array();
@@ -45,46 +43,14 @@ class rcube_config
'reply_mode' => 'top_posting',
'refresh_interval' => 'keep_alive',
'min_refresh_interval' => 'min_keep_alive',
- 'messages_cache_ttl' => 'message_cache_lifetime',
- 'redundant_attachments_cache_ttl' => 'redundant_attachments_memcache_ttl',
);
/**
* Object constructor
- *
- * @param string Environment suffix for config files to load
*/
- public function __construct($env = '')
+ public function __construct()
{
- $this->env = $env;
-
- if ($paths = getenv('RCUBE_CONFIG_PATH')) {
- $this->paths = explode(PATH_SEPARATOR, $paths);
- // make all paths absolute
- foreach ($this->paths as $i => $path) {
- if (!$this->_is_absolute($path)) {
- if ($realpath = realpath(RCUBE_INSTALL_PATH . $path)) {
- $this->paths[$i] = unslashify($realpath) . '/';
- }
- else {
- unset($this->paths[$i]);
- }
- }
- else {
- $this->paths[$i] = unslashify($path) . '/';
- }
- }
- }
-
- if (defined('RCUBE_CONFIG_DIR') && !in_array(RCUBE_CONFIG_DIR, $this->paths)) {
- $this->paths[] = RCUBE_CONFIG_DIR;
- }
-
- if (empty($this->paths)) {
- $this->paths[] = RCUBE_INSTALL_PATH . 'config/';
- }
-
$this->load();
// Defaults, that we do not require you to configure,
@@ -101,22 +67,13 @@ class rcube_config
*/
private function load()
{
- // Load default settings
- if (!$this->load_from_file('defaults.inc.php')) {
- $this->errors[] = 'defaults.inc.php was not found.';
- }
-
// load main config file
- if (!$this->load_from_file('config.inc.php')) {
- // Old configuration files
- if (!$this->load_from_file('main.inc.php') ||
- !$this->load_from_file('db.inc.php')) {
- $this->errors[] = 'config.inc.php was not found.';
- }
- else if (rand(1,100) == 10) { // log warning on every 100th request (average)
- trigger_error("config.inc.php was not found. Please migrate your config by running bin/update.sh", E_USER_WARNING);
- }
- }
+ if (!$this->load_from_file(RCUBE_CONFIG_DIR . 'main.inc.php'))
+ $this->errors[] = 'main.inc.php was not found.';
+
+ // load database config
+ if (!$this->load_from_file(RCUBE_CONFIG_DIR . 'db.inc.php'))
+ $this->errors[] = 'db.inc.php was not found.';
// load host-specific configuration
$this->load_host_config();
@@ -162,6 +119,17 @@ class rcube_config
// enable display_errors in 'show' level, but not for ajax requests
ini_set('display_errors', intval(empty($_REQUEST['_remote']) && ($this->prop['debug_level'] & 4)));
+ // set timezone auto settings values
+ if ($this->prop['timezone'] == 'auto') {
+ $this->prop['_timezone_value'] = $this->client_timezone();
+ }
+ else if (is_numeric($this->prop['timezone']) && ($tz = timezone_name_from_abbr("", $this->prop['timezone'] * 3600, 0))) {
+ $this->prop['timezone'] = $tz;
+ }
+ else if (empty($this->prop['timezone'])) {
+ $this->prop['timezone'] = 'UTC';
+ }
+
// remove deprecated properties
unset($this->prop['dst_active']);
@@ -175,107 +143,45 @@ class rcube_config
*/
private function load_host_config()
{
- if (empty($this->prop['include_host_config'])) {
- return;
- }
-
- foreach (array('HTTP_HOST', 'SERVER_NAME', 'SERVER_ADDR') as $key) {
- $fname = null;
- $name = $_SERVER[$key];
-
- if (!$name) {
- continue;
- }
+ $fname = null;
- if (is_array($this->prop['include_host_config'])) {
- $fname = $this->prop['include_host_config'][$name];
- }
- else {
- $fname = preg_replace('/[^a-z0-9\.\-_]/i', '', $name) . '.inc.php';
- }
+ if (is_array($this->prop['include_host_config'])) {
+ $fname = $this->prop['include_host_config'][$_SERVER['HTTP_HOST']];
+ }
+ else if (!empty($this->prop['include_host_config'])) {
+ $fname = preg_replace('/[^a-z0-9\.\-_]/i', '', $_SERVER['HTTP_HOST']) . '.inc.php';
+ }
- if ($fname && $this->load_from_file($fname)) {
- return;
- }
+ if ($fname) {
+ $this->load_from_file(RCUBE_CONFIG_DIR . $fname);
}
}
+
/**
* Read configuration from a file
* and merge with the already stored config values
*
- * @param string $file Name of the config file to be loaded
+ * @param string $fpath Full path to the config file to be loaded
* @return booelan True on success, false on failure
*/
- public function load_from_file($file)
+ public function load_from_file($fpath)
{
- $success = false;
-
- foreach ($this->resolve_paths($file) as $fpath) {
- if ($fpath && is_file($fpath) && is_readable($fpath)) {
- // use output buffering, we don't need any output here
- ob_start();
- include($fpath);
- ob_end_clean();
-
- if (is_array($config)) {
- $this->merge($config);
- $success = true;
- }
- // deprecated name of config variable
- if (is_array($rcmail_config)) {
- $this->merge($rcmail_config);
- $success = true;
- }
+ if (is_file($fpath) && is_readable($fpath)) {
+ // use output buffering, we don't need any output here
+ ob_start();
+ include($fpath);
+ ob_end_clean();
+
+ if (is_array($rcmail_config)) {
+ $this->merge($rcmail_config);
+ return true;
}
}
- return $success;
+ return false;
}
- /**
- * Helper method to resolve absolute paths to the given config file.
- * This also takes the 'env' property into account.
- *
- * @param string Filename or absolute file path
- * @param boolean Return -$env file path if exists
- * @return array List of candidates in config dir path(s)
- */
- public function resolve_paths($file, $use_env = true)
- {
- $files = array();
- $abs_path = $this->_is_absolute($file);
-
- foreach ($this->paths as $basepath) {
- $realpath = $abs_path ? $file : realpath($basepath . '/' . $file);
-
- // check if <file>-env.ini exists
- if ($realpath && $use_env && !empty($this->env)) {
- $envfile = preg_replace('/\.(inc.php)$/', '-' . $this->env . '.\\1', $realpath);
- if (is_file($envfile))
- $realpath = $envfile;
- }
-
- if ($realpath) {
- $files[] = $realpath;
-
- // no need to continue the loop if an absolute file path is given
- if ($abs_path) {
- break;
- }
- }
- }
-
- return $files;
- }
-
- /**
- * Determine whether the given file path is absolute or relative
- */
- private function _is_absolute($path)
- {
- return $path[0] == DIRECTORY_SEPARATOR || preg_match('!^[a-z]:[\\\\/]!i', $path);
- }
/**
* Getter for a specific config parameter
@@ -295,10 +201,8 @@ class rcube_config
$rcube = rcube::get_instance();
- if ($name == 'timezone') {
- if (empty($result) || $result == 'auto') {
- $result = $this->client_timezone();
- }
+ if ($name == 'timezone' && isset($this->prop['_timezone_value'])) {
+ $result = $this->prop['_timezone_value'];
}
else if ($name == 'client_mimetypes') {
if ($result == null && $def == null)
@@ -356,6 +260,11 @@ class rcube_config
}
}
+ // convert user's timezone into the new format
+ if (is_numeric($prefs['timezone']) && ($tz = timezone_name_from_abbr('', $prefs['timezone'] * 3600, 0))) {
+ $prefs['timezone'] = $tz;
+ }
+
// larry is the new default skin :-)
if ($prefs['skin'] == 'default') {
$prefs['skin'] = self::DEFAULT_SKIN;
@@ -363,6 +272,13 @@ class rcube_config
$this->userprefs = $prefs;
$this->prop = array_merge($this->prop, $prefs);
+
+ // override timezone settings with client values
+ if ($this->prop['timezone'] == 'auto') {
+ $this->prop['_timezone_value'] = isset($_SESSION['timezone']) ? $this->client_timezone() : $this->prop['_timezone_value'];
+ }
+ else if (isset($this->prop['_timezone_value']))
+ unset($this->prop['_timezone_value']);
}
@@ -503,12 +419,13 @@ class rcube_config
*/
private function client_timezone()
{
- // @TODO: remove this legacy timezone handling in the future
- $props = $this->fix_legacy_props(array('timezone' => $_SESSION['timezone']));
-
- if (!empty($props['timezone'])) {
+ if (isset($_SESSION['timezone']) && is_numeric($_SESSION['timezone'])
+ && ($ctz = timezone_name_from_abbr("", $_SESSION['timezone'] * 3600, 0))) {
+ return $ctz;
+ }
+ else if (!empty($_SESSION['timezone'])) {
try {
- $tz = new DateTimeZone($props['timezone']);
+ $tz = timezone_open($_SESSION['timezone']);
return $tz->getName();
}
catch (Exception $e) { /* gracefully ignore */ }
@@ -536,77 +453,6 @@ class rcube_config
}
}
- // convert deprecated numeric timezone value
- if (isset($props['timezone']) && is_numeric($props['timezone'])) {
- if ($tz = self::timezone_name_from_abbr($props['timezone'])) {
- $props['timezone'] = $tz;
- }
- else {
- unset($props['timezone']);
- }
- }
-
return $props;
}
-
- /**
- * timezone_name_from_abbr() replacement. Converts timezone offset
- * into timezone name abbreviation.
- *
- * @param float $offset Timezone offset (in hours)
- *
- * @return string Timezone abbreviation
- */
- static public function timezone_name_from_abbr($offset)
- {
- // List of timezones here is not complete - https://bugs.php.net/bug.php?id=44780
- if ($tz = timezone_name_from_abbr('', $offset * 3600, 0)) {
- return $tz;
- }
-
- // try with more complete list (#1489261)
- $timezones = array(
- '-660' => "Pacific/Apia",
- '-600' => "Pacific/Honolulu",
- '-570' => "Pacific/Marquesas",
- '-540' => "America/Anchorage",
- '-480' => "America/Los_Angeles",
- '-420' => "America/Denver",
- '-360' => "America/Chicago",
- '-300' => "America/New_York",
- '-270' => "America/Caracas",
- '-240' => "America/Halifax",
- '-210' => "Canada/Newfoundland",
- '-180' => "America/Sao_Paulo",
- '-60' => "Atlantic/Azores",
- '0' => "Europe/London",
- '60' => "Europe/Paris",
- '120' => "Europe/Helsinki",
- '180' => "Europe/Moscow",
- '210' => "Asia/Tehran",
- '240' => "Asia/Dubai",
- '300' => "Asia/Karachi",
- '270' => "Asia/Kabul",
- '300' => "Asia/Karachi",
- '330' => "Asia/Kolkata",
- '345' => "Asia/Katmandu",
- '360' => "Asia/Yekaterinburg",
- '390' => "Asia/Rangoon",
- '420' => "Asia/Krasnoyarsk",
- '480' => "Asia/Shanghai",
- '525' => "Australia/Eucla",
- '540' => "Asia/Tokyo",
- '570' => "Australia/Adelaide",
- '600' => "Australia/Melbourne",
- '630' => "Australia/Lord_Howe",
- '660' => "Asia/Vladivostok",
- '690' => "Pacific/Norfolk",
- '720' => "Pacific/Auckland",
- '765' => "Pacific/Chatham",
- '780' => "Pacific/Enderbury",
- '840' => "Pacific/Kiritimati",
- );
-
- return $timezones[(string) intval($offset * 60)];
- }
}
diff --git a/program/lib/Roundcube/rcube_contacts.php b/program/lib/Roundcube/rcube_contacts.php
index 5c9e5ab39..3919cdc6e 100644
--- a/program/lib/Roundcube/rcube_contacts.php
+++ b/program/lib/Roundcube/rcube_contacts.php
@@ -592,8 +592,8 @@ class rcube_contacts extends rcube_addressbook
// validate e-mail addresses
$valid = parent::validate($save_data, $autofix);
- // require at least one email address or a name
- if ($valid && !strlen($save_data['firstname'].$save_data['surname'].$save_data['name']) && !array_filter($this->get_col_values('email', $save_data, true))) {
+ // require at least one e-mail address (syntax check is already done)
+ if ($valid && !array_filter($this->get_col_values('email', $save_data, true))) {
$this->set_error(self::ERROR_VALIDATE, 'noemailwarning');
$valid = false;
}
@@ -718,10 +718,6 @@ class rcube_contacts extends rcube_addressbook
foreach ($save_data as $key => $values) {
list($field, $section) = explode(':', $key);
$fulltext = in_array($field, $this->fulltext_cols);
- // avoid casting DateTime objects to array
- if (is_object($values) && is_a($values, 'DateTime')) {
- $values = array(0 => $values);
- }
foreach ((array)$values as $value) {
if (isset($value))
$vcard->set($field, $value, $section);
diff --git a/program/lib/Roundcube/rcube_content_filter.php b/program/lib/Roundcube/rcube_content_filter.php
index ae6617d1b..b814bb71d 100644
--- a/program/lib/Roundcube/rcube_content_filter.php
+++ b/program/lib/Roundcube/rcube_content_filter.php
@@ -20,7 +20,7 @@
* PHP stream filter to detect html/javascript code in attachments
*
* @package Framework
- * @subpackage Utils
+ * @subpackage Core
*/
class rcube_content_filter extends php_user_filter
{
diff --git a/program/lib/Roundcube/rcube_csv2vcard.php b/program/lib/Roundcube/rcube_csv2vcard.php
index aa385dce4..506a4b740 100644
--- a/program/lib/Roundcube/rcube_csv2vcard.php
+++ b/program/lib/Roundcube/rcube_csv2vcard.php
@@ -47,7 +47,7 @@ class rcube_csv2vcard
//'business_street_2' => '',
//'business_street_3' => '',
'car_phone' => 'phone:car',
- 'categories' => 'groups',
+ 'categories' => 'categories',
//'children' => '',
'company' => 'organization',
//'company_main_phone' => '',
@@ -130,25 +130,6 @@ class rcube_csv2vcard
'work_state' => 'region:work',
'home_city_short' => 'locality:home',
'home_state_short' => 'region:home',
-
- // Atmail
- 'date_of_birth' => 'birthday',
- 'email' => 'email:pref',
- 'home_mobile' => 'phone:cell',
- 'home_zip' => 'zipcode:home',
- 'info' => 'notes',
- 'user_photo' => 'photo',
- 'url' => 'website:homepage',
- 'work_company' => 'organization',
- 'work_dept' => 'departament',
- 'work_fax' => 'phone:work,fax',
- 'work_mobile' => 'phone:work,cell',
- 'work_title' => 'jobtitle',
- 'work_zip' => 'zipcode:work',
- 'group' => 'groups',
-
- // GMail
- 'groups' => 'groups',
);
/**
@@ -249,30 +230,8 @@ class rcube_csv2vcard
'work_phone' => "Work Phone",
'work_address' => "Work Address",
//'work_address_2' => "Work Address 2",
- 'work_city' => "Work City",
'work_country' => "Work Country",
- 'work_state' => "Work State",
'work_zipcode' => "Work ZipCode",
-
- // Atmail
- 'date_of_birth' => "Date of Birth",
- 'email' => "Email",
- //'email_2' => "Email2",
- //'email_3' => "Email3",
- //'email_4' => "Email4",
- //'email_5' => "Email5",
- 'home_mobile' => "Home Mobile",
- 'home_zip' => "Home Zip",
- 'info' => "Info",
- 'user_photo' => "User Photo",
- 'url' => "URL",
- 'work_company' => "Work Company",
- 'work_dept' => "Work Dept",
- 'work_fax' => "Work Fax",
- 'work_mobile' => "Work Mobile",
- 'work_title' => "Work Title",
- 'work_zip' => "Work Zip",
- 'groups' => "Group",
);
protected $local_label_map = array();
@@ -309,6 +268,7 @@ class rcube_csv2vcard
{
// convert to UTF-8
$head = substr($csv, 0, 4096);
+ $fallback = rcube::get_instance()->config->get('default_charset', 'ISO-8859-1'); // fallback to Latin-1?
$charset = rcube_charset::detect($head, RCUBE_CHARSET);
$csv = rcube_charset::convert($csv, $charset);
$head = '';
@@ -316,7 +276,7 @@ class rcube_csv2vcard
$this->map = array();
// Parse file
- foreach (preg_split("/[\r\n]+/", $csv) as $line) {
+ foreach (preg_split("/[\r\n]+/", $csv) as $i => $line) {
$elements = $this->parse_line($line);
if (empty($elements)) {
continue;
@@ -430,18 +390,9 @@ class rcube_csv2vcard
$contact['birthday'] = $contact['birthday-y'] .'-' .$contact['birthday-m'] . '-' . $contact['birthday-d'];
}
- // categories/groups separator in vCard is ',' not ';'
- if (!empty($contact['groups'])) {
- $contact['groups'] = str_replace(';', ',', $contact['groups']);
- }
-
- // Empty dates, e.g. "0/0/00", "0000-00-00 00:00:00"
foreach (array('birthday', 'anniversary') as $key) {
- if (!empty($contact[$key])) {
- $date = preg_replace('/[0[:^word:]]/', '', $contact[$key]);
- if (empty($date)) {
- unset($contact[$key]);
- }
+ if (!empty($contact[$key]) && $contact[$key] == '0/0/00') { // @TODO: localization?
+ unset($contact[$key]);
}
}
diff --git a/program/lib/Roundcube/rcube_db.php b/program/lib/Roundcube/rcube_db.php
index 2828f26ee..5083a0dfe 100644
--- a/program/lib/Roundcube/rcube_db.php
+++ b/program/lib/Roundcube/rcube_db.php
@@ -31,10 +31,7 @@ class rcube_db
protected $db_dsnr; // DSN for read operations
protected $db_connected = false; // Already connected ?
protected $db_mode; // Connection mode
- protected $db_table_dsn_map = array();
protected $dbh; // Connection handle
- protected $dbhs = array();
- protected $table_connections = array();
protected $db_error = false;
protected $db_error_msg = '';
@@ -50,7 +47,6 @@ class rcube_db
'identifier_end' => '"',
);
- const DEBUG_LINE_LENGTH = 4096;
/**
* Factory, returns driver-specific instance of the class
@@ -66,6 +62,7 @@ class rcube_db
$driver = strtolower(substr($db_dsnw, 0, strpos($db_dsnw, ':')));
$driver_map = array(
'sqlite2' => 'sqlite',
+ 'sqlite3' => 'sqlite',
'sybase' => 'mssql',
'dblib' => 'mssql',
'mysqli' => 'mysql',
@@ -100,32 +97,34 @@ class rcube_db
$this->db_dsnw = $db_dsnw;
$this->db_dsnr = $db_dsnr;
$this->db_pconn = $pconn;
- $this->db_dsnw_noread = rcube::get_instance()->config->get('db_dsnw_noread', false);
$this->db_dsnw_array = self::parse_dsn($db_dsnw);
$this->db_dsnr_array = self::parse_dsn($db_dsnr);
- $this->db_table_dsn_map = array_map(array($this, 'table_name'), rcube::get_instance()->config->get('db_table_dsn', array()));
+ // Initialize driver class
+ $this->init();
+ }
+
+ /**
+ * Initialization of the object with driver specific code
+ */
+ protected function init()
+ {
+ // To be used by driver classes
}
/**
* Connect to specific database
*
- * @param array $dsn DSN for DB connections
- * @param string $mode Connection mode (r|w)
+ * @param array $dsn DSN for DB connections
+ *
+ * @return PDO database handle
*/
- protected function dsn_connect($dsn, $mode)
+ protected function dsn_connect($dsn)
{
$this->db_error = false;
$this->db_error_msg = null;
- // return existing handle
- if ($this->dbhs[$mode]) {
- $this->dbh = $this->dbhs[$mode];
- $this->db_mode = $mode;
- return $this->dbh;
- }
-
// Get database specific connection options
$dsn_string = $this->dsn_string($dsn);
$dsn_options = $this->dsn_options($dsn);
@@ -159,11 +158,9 @@ class rcube_db
return null;
}
- $this->dbh = $dbh;
- $this->dbhs[$mode] = $dbh;
- $this->db_mode = $mode;
- $this->db_connected = true;
$this->conn_configure($dsn, $dbh);
+
+ return $dbh;
}
/**
@@ -186,12 +183,21 @@ class rcube_db
}
/**
+ * Driver-specific database character set setting
+ *
+ * @param string $charset Character set name
+ */
+ protected function set_charset($charset)
+ {
+ $this->query("SET NAMES 'utf8'");
+ }
+
+ /**
* Connect to appropriate database depending on the operation
*
* @param string $mode Connection mode (r|w)
- * @param boolean $force Enforce using the given mode
*/
- public function db_connect($mode, $force = false)
+ public function db_connect($mode)
{
// previous connection failed, don't attempt to connect again
if ($this->conn_failure) {
@@ -205,61 +211,31 @@ class rcube_db
// Already connected
if ($this->db_connected) {
- // connected to db with the same or "higher" mode (if allowed)
- if ($this->db_mode == $mode || $this->db_mode == 'w' && !$force && !$this->db_dsnw_noread) {
+ // connected to db with the same or "higher" mode
+ if ($this->db_mode == 'w' || $this->db_mode == $mode) {
return;
}
}
$dsn = ($mode == 'r') ? $this->db_dsnr_array : $this->db_dsnw_array;
- $this->dsn_connect($dsn, $mode);
+
+ $this->dbh = $this->dsn_connect($dsn);
+ $this->db_connected = is_object($this->dbh);
// use write-master when read-only fails
- if (!$this->db_connected && $mode == 'r' && $this->is_replicated()) {
- $this->dsn_connect($this->db_dsnw_array, 'w');
+ if (!$this->db_connected && $mode == 'r') {
+ $mode = 'w';
+ $this->dbh = $this->dsn_connect($this->db_dsnw_array);
+ $this->db_connected = is_object($this->dbh);
}
- $this->conn_failure = !$this->db_connected;
- }
-
- /**
- * Analyze the given SQL statement and select the appropriate connection to use
- */
- protected function dsn_select($query)
- {
- // no replication
- if ($this->db_dsnw == $this->db_dsnr) {
- return 'w';
+ if ($this->db_connected) {
+ $this->db_mode = $mode;
+ $this->set_charset('utf8');
}
-
- // Read or write ?
- $mode = preg_match('/^(select|show|set)/i', $query) ? 'r' : 'w';
-
- // find tables involved in this query
- if (preg_match_all('/(?:^|\s)(from|update|into|join)\s+'.$this->options['identifier_start'].'?([a-z0-9._]+)'.$this->options['identifier_end'].'?\s+/i', $query, $matches, PREG_SET_ORDER)) {
- foreach ($matches as $m) {
- $table = $m[2];
-
- // always use direct mapping
- if ($this->db_table_dsn_map[$table]) {
- $mode = $this->db_table_dsn_map[$table];
- break; // primary table rules
- }
- else if ($mode == 'r') {
- // connected to db with the same or "higher" mode for this table
- $db_mode = $this->table_connections[$table];
- if ($db_mode == 'w' && !$this->db_dsnw_noread) {
- $mode = $db_mode;
- }
- }
- }
-
- // remember mode chosen (for primary table)
- $table = $matches[0][2];
- $this->table_connections[$table] = $mode;
+ else {
+ $this->conn_failure = true;
}
-
- return $mode;
}
/**
@@ -280,11 +256,6 @@ class rcube_db
protected function debug($query)
{
if ($this->options['debug_mode']) {
- if (($len = strlen($query)) > self::DEBUG_LINE_LENGTH) {
- $diff = $len - self::DEBUG_LINE_LENGTH;
- $query = substr($query, 0, self::DEBUG_LINE_LENGTH)
- . "... [truncated $diff bytes]";
- }
rcube::write_log('sql', '[' . (++$this->db_index) . '] ' . $query . ';');
}
}
@@ -392,9 +363,10 @@ class rcube_db
*/
protected function _query($query, $offset, $numrows, $params)
{
- $query = ltrim($query);
+ // Read or write ?
+ $mode = preg_match('/^(select|show)/i', ltrim($query)) ? 'r' : 'w';
- $this->db_connect($this->dsn_select($query), true);
+ $this->db_connect($mode);
// check connection before proceeding
if (!$this->is_connected()) {
@@ -405,28 +377,27 @@ class rcube_db
$query = $this->set_limit($query, $numrows, $offset);
}
+ $params = (array) $params;
+
// Because in Roundcube we mostly use queries that are
// executed only once, we will not use prepared queries
$pos = 0;
$idx = 0;
- if (count($params)) {
- while ($pos = strpos($query, '?', $pos)) {
- if ($query[$pos+1] == '?') { // skip escaped '?'
- $pos += 2;
- }
- else {
- $val = $this->quote($params[$idx++]);
- unset($params[$idx-1]);
- $query = substr_replace($query, $val, $pos, 1);
- $pos += strlen($val);
- }
+ while ($pos = strpos($query, '?', $pos)) {
+ if ($query[$pos+1] == '?') { // skip escaped ?
+ $pos += 2;
+ }
+ else {
+ $val = $this->quote($params[$idx++]);
+ unset($params[$idx-1]);
+ $query = substr_replace($query, $val, $pos, 1);
+ $pos += strlen($val);
}
}
- // replace escaped '?' back to normal, see self::quote()
- $query = str_replace('??', '?', $query);
- $query = rtrim($query, " \t\n\r\0\x0B;");
+ // replace escaped ? back to normal
+ $query = rtrim(strtr($query, array('??' => '?')), ';');
$this->debug($query);
@@ -438,26 +409,7 @@ class rcube_db
$result = $this->dbh->query($query);
if ($result === false) {
- $result = $this->handle_error($query);
- }
-
- $this->last_result = $result;
-
- return $result;
- }
-
- /**
- * Helper method to handle DB errors.
- * This by default logs the error but could be overriden by a driver implementation
- *
- * @param string Query that triggered the error
- * @return mixed Result to be stored and returned
- */
- protected function handle_error($query)
- {
- $error = $this->dbh->errorInfo();
-
- if (empty($this->options['ignore_key_errors']) || !in_array($error[0], array('23000', '23505'))) {
+ $error = $this->dbh->errorInfo();
$this->db_error = true;
$this->db_error_msg = sprintf('[%s] %s', $error[1], $error[2]);
@@ -467,7 +419,9 @@ class rcube_db
), true, false);
}
- return false;
+ $this->last_result = $result;
+
+ return $result;
}
/**
@@ -749,19 +703,11 @@ class rcube_db
/**
* Return SQL function for current time and date
*
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
* @return string SQL function to use in query
*/
- public function now($interval = 0)
+ public function now()
{
- if ($interval) {
- $add = ' ' . ($interval > 0 ? '+' : '-') . ' INTERVAL ';
- $add .= $interval > 0 ? intval($interval) : intval($interval) * -1;
- $add .= ' SECOND';
- }
-
- return "now()" . $add;
+ return "now()";
}
/**
@@ -920,43 +866,19 @@ class rcube_db
*/
public function table_name($table)
{
- static $rcube;
+ $rcube = rcube::get_instance();
- if (!$rcube) {
- $rcube = rcube::get_instance();
- }
+ // return table name if configured
+ $config_key = 'db_table_'.$table;
- // add prefix to the table name if configured
- if (($prefix = $rcube->config->get('db_prefix')) && strpos($table, $prefix) !== 0) {
- return $prefix . $table;
+ if ($name = $rcube->config->get($config_key)) {
+ return $name;
}
return $table;
}
/**
- * Set class option value
- *
- * @param string $name Option name
- * @param mixed $value Option value
- */
- public function set_option($name, $value)
- {
- $this->options[$name] = $value;
- }
-
- /**
- * Set DSN connection to be used for the given table
- *
- * @param string Table name
- * @param string DSN connection ('r' or 'w') to be used
- */
- public function set_table_dsn($table, $mode)
- {
- $this->db_table_dsn_map[$this->table_name($table)] = $mode;
- }
-
- /**
* MDB2 DSN string parser
*
* @param string $sequence Secuence name
diff --git a/program/lib/Roundcube/rcube_db_mssql.php b/program/lib/Roundcube/rcube_db_mssql.php
index 726e4b421..37a42678a 100644
--- a/program/lib/Roundcube/rcube_db_mssql.php
+++ b/program/lib/Roundcube/rcube_db_mssql.php
@@ -29,52 +29,38 @@ class rcube_db_mssql extends rcube_db
public $db_provider = 'mssql';
/**
- * Object constructor
- *
- * @param string $db_dsnw DSN for read/write operations
- * @param string $db_dsnr Optional DSN for read only operations
- * @param bool $pconn Enables persistent connections
+ * Driver initialization
*/
- public function __construct($db_dsnw, $db_dsnr = '', $pconn = false)
+ protected function init()
{
- parent::__construct($db_dsnw, $db_dsnr, $pconn);
-
$this->options['identifier_start'] = '[';
$this->options['identifier_end'] = ']';
}
/**
- * Driver-specific configuration of database connection
- *
- * @param array $dsn DSN for DB connections
- * @param PDO $dbh Connection handler
+ * Character setting
*/
- protected function conn_configure($dsn, $dbh)
+ protected function set_charset($charset)
{
- // Set date format in case of non-default language (#1488918)
- $dbh->query("SET DATEFORMAT ymd");
+ // UTF-8 is default
}
/**
* Return SQL function for current time and date
*
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
* @return string SQL function to use in query
*/
- public function now($interval = 0)
+ public function now()
{
- if ($interval) {
- $interval = intval($interval);
- return "dateadd(second, $interval, getdate())";
- }
-
return "getdate()";
}
/**
* Return SQL statement to convert a field value into a unix timestamp
*
+ * This method is deprecated and should not be used anymore due to limitations
+ * of timestamp functions in Mysql (year 2038 problem)
+ *
* @param string $field Field name
*
* @return string SQL statement to use in query
diff --git a/program/lib/Roundcube/rcube_db_mysql.php b/program/lib/Roundcube/rcube_db_mysql.php
index d3d0ac5c8..7f5ad2b36 100644
--- a/program/lib/Roundcube/rcube_db_mysql.php
+++ b/program/lib/Roundcube/rcube_db_mysql.php
@@ -30,13 +30,9 @@ class rcube_db_mysql extends rcube_db
public $db_provider = 'mysql';
/**
- * Object constructor
- *
- * @param string $db_dsnw DSN for read/write operations
- * @param string $db_dsnr Optional DSN for read only operations
- * @param bool $pconn Enables persistent connections
+ * Driver initialization/configuration
*/
- public function __construct($db_dsnw, $db_dsnr = '', $pconn = false)
+ protected function init()
{
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
rcube::raise_error(array('code' => 600, 'type' => 'db',
@@ -45,25 +41,12 @@ class rcube_db_mysql extends rcube_db
true, true);
}
- parent::__construct($db_dsnw, $db_dsnr, $pconn);
-
// SQL identifiers quoting
$this->options['identifier_start'] = '`';
$this->options['identifier_end'] = '`';
}
/**
- * Driver-specific configuration of database connection
- *
- * @param array $dsn DSN for DB connections
- * @param PDO $dbh Connection handler
- */
- protected function conn_configure($dsn, $dbh)
- {
- $dbh->query("SET NAMES 'utf8'");
- }
-
- /**
* Abstract SQL statement for value concatenation
*
* @return string SQL statement to be used in query
@@ -151,7 +134,7 @@ class rcube_db_mysql extends rcube_db
$result[PDO::MYSQL_ATTR_FOUND_ROWS] = true;
// Enable AUTOCOMMIT mode (#1488902)
- $result[PDO::ATTR_AUTOCOMMIT] = true;
+ $dsn_options[PDO::ATTR_AUTOCOMMIT] = true;
return $result;
}
@@ -179,29 +162,4 @@ class rcube_db_mysql extends rcube_db
return isset($this->variables[$varname]) ? $this->variables[$varname] : $default;
}
- /**
- * Handle DB errors, re-issue the query on deadlock errors from InnoDB row-level locking
- *
- * @param string Query that triggered the error
- * @return mixed Result to be stored and returned
- */
- protected function handle_error($query)
- {
- $error = $this->dbh->errorInfo();
-
- // retry after "Deadlock found when trying to get lock" errors
- $retries = 2;
- while ($error[1] == 1213 && $retries >= 0) {
- usleep(50000); // wait 50 ms
- $result = $this->dbh->query($query);
- if ($result !== false) {
- return $result;
- }
- $error = $this->dbh->errorInfo();
- $retries--;
- }
-
- return parent::handle_error($query);
- }
-
}
diff --git a/program/lib/Roundcube/rcube_db_pgsql.php b/program/lib/Roundcube/rcube_db_pgsql.php
index 68bf6d85d..a06a37c10 100644
--- a/program/lib/Roundcube/rcube_db_pgsql.php
+++ b/program/lib/Roundcube/rcube_db_pgsql.php
@@ -29,17 +29,6 @@ class rcube_db_pgsql extends rcube_db
public $db_provider = 'postgres';
/**
- * Driver-specific configuration of database connection
- *
- * @param array $dsn DSN for DB connections
- * @param PDO $dbh Connection handler
- */
- protected function conn_configure($dsn, $dbh)
- {
- $dbh->query("SET NAMES 'utf8'");
- }
-
- /**
* Get last inserted record ID
*
* @param string $table Table name (to find the incremented sequence)
@@ -64,20 +53,19 @@ class rcube_db_pgsql extends rcube_db
/**
* Return correct name for a specific database sequence
*
- * @param string $table Table name
+ * @param string $sequence Secuence name
*
* @return string Translated sequence name
*/
- protected function sequence_name($table)
+ protected function sequence_name($sequence)
{
- // Note: we support only one sequence per table
- // Note: The sequence name must be <table_name>_seq
- $sequence = $table . '_seq';
- $rcube = rcube::get_instance();
+ $rcube = rcube::get_instance();
// return sequence name if configured
- if ($prefix = $rcube->config->get('db_prefix')) {
- return $prefix . $sequence;
+ $config_key = 'db_sequence_'.$sequence;
+
+ if ($name = $rcube->config->get($config_key)) {
+ return $name;
}
return $sequence;
@@ -86,6 +74,9 @@ class rcube_db_pgsql extends rcube_db
/**
* Return SQL statement to convert a field value into a unix timestamp
*
+ * This method is deprecated and should not be used anymore due to limitations
+ * of timestamp functions in Mysql (year 2038 problem)
+ *
* @param string $field Field name
*
* @return string SQL statement to use in query
@@ -97,24 +88,6 @@ class rcube_db_pgsql extends rcube_db
}
/**
- * Return SQL function for current time and date
- *
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
- * @return string SQL function to use in query
- */
- public function now($interval = 0)
- {
- if ($interval) {
- $add = ' ' . ($interval > 0 ? '+' : '-') . " interval '";
- $add .= $interval > 0 ? intval($interval) : intval($interval) * -1;
- $add .= " seconds'";
- }
-
- return "now()" . $add;
- }
-
- /**
* Return SQL statement for case insensitive LIKE
*
* @param string $column Field name
diff --git a/program/lib/Roundcube/rcube_db_sqlite.php b/program/lib/Roundcube/rcube_db_sqlite.php
index b66c56097..145b8a371 100644
--- a/program/lib/Roundcube/rcube_db_sqlite.php
+++ b/program/lib/Roundcube/rcube_db_sqlite.php
@@ -29,6 +29,13 @@ class rcube_db_sqlite extends rcube_db
public $db_provider = 'sqlite';
/**
+ * Database character set
+ */
+ protected function set_charset($charset)
+ {
+ }
+
+ /**
* Prepare connection
*/
protected function conn_prepare($dsn)
@@ -49,6 +56,10 @@ class rcube_db_sqlite extends rcube_db
*/
protected function conn_configure($dsn, $dbh)
{
+ // we emulate via callback some missing functions
+ $dbh->sqliteCreateFunction('unix_timestamp', array('rcube_db_sqlite', 'sqlite_unix_timestamp'), 1);
+ $dbh->sqliteCreateFunction('now', array('rcube_db_sqlite', 'sqlite_now'), 0);
+
// Initialize database structure in file is empty
if (!empty($dsn['database']) && !filesize($dsn['database'])) {
$data = file_get_contents(RCUBE_INSTALL_PATH . 'SQL/sqlite.initial.sql');
@@ -72,32 +83,30 @@ class rcube_db_sqlite extends rcube_db
}
/**
- * Return SQL statement to convert a field value into a unix timestamp
- *
- * @param string $field Field name
- *
- * @return string SQL statement to use in query
- * @deprecated
+ * Callback for sqlite: unix_timestamp()
*/
- public function unixtimestamp($field)
+ public static function sqlite_unix_timestamp($timestamp = '')
{
- return "strftime('%s', $field)";
+ $timestamp = trim($timestamp);
+ if (!$timestamp) {
+ $ret = time();
+ }
+ else if (!preg_match('/^[0-9]+$/s', $timestamp)) {
+ $ret = strtotime($timestamp);
+ }
+ else {
+ $ret = $timestamp;
+ }
+
+ return $ret;
}
/**
- * Return SQL function for current time and date
- *
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
- * @return string SQL function to use in query
+ * Callback for sqlite: now()
*/
- public function now($interval = 0)
+ public static function sqlite_now()
{
- if ($interval) {
- $add = ($interval > 0 ? '+' : '') . intval($interval) . ' seconds';
- }
-
- return "datetime('now'" . ($add ? ",'$add'" : "") . ")";
+ return date("Y-m-d H:i:s");
}
/**
diff --git a/program/lib/Roundcube/rcube_db_sqlsrv.php b/program/lib/Roundcube/rcube_db_sqlsrv.php
index 4339f3dfd..e5dfb1154 100644
--- a/program/lib/Roundcube/rcube_db_sqlsrv.php
+++ b/program/lib/Roundcube/rcube_db_sqlsrv.php
@@ -29,46 +29,29 @@ class rcube_db_sqlsrv extends rcube_db
public $db_provider = 'mssql';
/**
- * Object constructor
- *
- * @param string $db_dsnw DSN for read/write operations
- * @param string $db_dsnr Optional DSN for read only operations
- * @param bool $pconn Enables persistent connections
+ * Driver initialization
*/
- public function __construct($db_dsnw, $db_dsnr = '', $pconn = false)
+ protected function init()
{
- parent::__construct($db_dsnw, $db_dsnr, $pconn);
-
$this->options['identifier_start'] = '[';
$this->options['identifier_end'] = ']';
}
/**
- * Driver-specific configuration of database connection
- *
- * @param array $dsn DSN for DB connections
- * @param PDO $dbh Connection handler
+ * Database character set setting
*/
- protected function conn_configure($dsn, $dbh)
+ protected function set_charset($charset)
{
- // Set date format in case of non-default language (#1488918)
- $dbh->query("SET DATEFORMAT ymd");
+ // UTF-8 is default
}
/**
* Return SQL function for current time and date
*
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
* @return string SQL function to use in query
*/
- public function now($interval = 0)
+ public function now()
{
- if ($interval) {
- $interval = intval($interval);
- return "dateadd(second, $interval, getdate())";
- }
-
return "getdate()";
}
diff --git a/program/lib/Roundcube/rcube_enriched.php b/program/lib/Roundcube/rcube_enriched.php
index 12deb33ce..8c628c912 100644
--- a/program/lib/Roundcube/rcube_enriched.php
+++ b/program/lib/Roundcube/rcube_enriched.php
@@ -118,7 +118,7 @@ class rcube_enriched
$quoted = '';
$lines = explode('<br>', $a[2]);
- foreach ($lines as $line)
+ foreach ($lines as $n => $line)
$quoted .= '&gt;'.$line.'<br>';
$body = $a[1].'<span class="quotes">'.$quoted.'</span>'.$a[3];
diff --git a/program/lib/Roundcube/rcube_html2text.php b/program/lib/Roundcube/rcube_html2text.php
index 01362e6fb..9b248a3a8 100644
--- a/program/lib/Roundcube/rcube_html2text.php
+++ b/program/lib/Roundcube/rcube_html2text.php
@@ -608,27 +608,24 @@ class rcube_html2text
$this->width = $p_width;
// Add citation markers and create <pre> block
- $body = preg_replace_callback('/((?:^|\n)>*)([^\n]*)/', array($this, 'blockquote_citation_callback'), trim($body));
+ $body = preg_replace_callback('/((?:^|\n)>*)([^\n]*)/', array($this, 'blockquote_citation_ballback'), trim($body));
$body = '<pre>' . htmlspecialchars($body) . '</pre>';
- $text = substr_replace($text, $body . "\n", $start, $end + 13 - $start);
+ $text = substr($text, 0, $start) . $body . "\n" . substr($text, $end + 13);
$offset = 0;
-
break;
}
- }
- while ($end || $next);
+ } while ($end || $next);
}
}
/**
* Callback function to correctly add citation markers for blockquote contents
*/
- public function blockquote_citation_callback($m)
+ public function blockquote_citation_ballback($m)
{
- $line = ltrim($m[2]);
+ $line = ltrim($m[2]);
$space = $line[0] == '>' ? '' : ' ';
-
return $m[1] . '>' . $space . $line;
}
diff --git a/program/lib/Roundcube/rcube_image.php b/program/lib/Roundcube/rcube_image.php
index 4e4caae93..ffcfd4b1d 100644
--- a/program/lib/Roundcube/rcube_image.php
+++ b/program/lib/Roundcube/rcube_image.php
@@ -93,10 +93,6 @@ class rcube_image
$convert = $rcube->config->get('im_convert_path', false);
$props = $this->props();
- if (empty($props)) {
- return false;
- }
-
if (!$filename) {
$filename = $this->image_file;
}
@@ -105,6 +101,7 @@ class rcube_image
if ($convert) {
$p['out'] = $filename;
$p['in'] = $this->image_file;
+ $p['size'] = $size.'x'.$size;
$type = $props['type'];
if (!$type && ($data = $this->identify())) {
@@ -119,37 +116,11 @@ class rcube_image
$type = 'jpg';
}
- // If only one dimension is greater than the limit convert doesn't
- // work as expected, we need to calculate new dimensions
- $scale = $size / max($props['width'], $props['height']);
+ $p += array('type' => $type, 'types' => "bmp,eps,gif,jp2,jpg,png,svg,tif", 'quality' => 75);
+ $p['-opts'] = array('-resize' => $p['size'].'>');
- // if file is smaller than the limit, we do nothing
- // but copy original file to destination file
- if ($scale >= 1 && $p['intype'] == $type) {
- $result = ($this->image_file == $filename || copy($this->image_file, $filename)) ? '' : false;
- }
- else {
- if ($scale >= 1) {
- $width = $props['width'];
- $height = $props['height'];
- }
- else {
- $width = intval($props['width'] * $scale);
- $height = intval($props['height'] * $scale);
- }
-
- $valid_types = "bmp,eps,gif,jp2,jpg,png,svg,tif";
-
- $p += array(
- 'type' => $type,
- 'quality' => 75,
- 'size' => $width . 'x' . $height,
- );
-
- if (in_array($type, explode(',', $valid_types))) { // Valid type?
- $result = rcube::exec($convert . ' 2>&1 -flatten -auto-orient -colorspace sRGB -strip'
- . ' -quality {quality} -resize {size} {intype}:{in} {type}:{out}', $p);
- }
+ if (in_array($type, explode(',', $p['types']))) { // Valid type?
+ $result = rcube::exec($convert . ' 2>&1 -flatten -auto-orient -colorspace sRGB -quality {quality} {-opts} {intype}:{in} {type}:{out}', $p);
}
if ($result === '') {
@@ -177,43 +148,39 @@ class rcube_image
return false;
}
- if ($image === false) {
- return false;
- }
-
$scale = $size / max($props['width'], $props['height']);
// Imagemagick resize is implemented in shrinking mode (see -resize argument above)
// we do the same here, if an image is smaller than specified size
// we do nothing but copy original file to destination file
- if ($scale >= 1) {
- $result = $this->image_file == $filename || copy($this->image_file, $filename);
+ if ($scale > 1) {
+ return $this->image_file == $filename || copy($this->image_file, $filename) ? $type : false;
}
- else {
- $width = intval($props['width'] * $scale);
- $height = intval($props['height'] * $scale);
- $new_image = imagecreatetruecolor($width, $height);
-
- // Fix transparency of gif/png image
- if ($props['gd_type'] != IMAGETYPE_JPEG) {
- imagealphablending($new_image, false);
- imagesavealpha($new_image, true);
- $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
- imagefilledrectangle($new_image, 0, 0, $width, $height, $transparent);
- }
-
- imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $props['width'], $props['height']);
- $image = $new_image;
-
- if ($props['gd_type'] == IMAGETYPE_JPEG) {
- $result = imagejpeg($image, $filename, 75);
- }
- elseif($props['gd_type'] == IMAGETYPE_GIF) {
- $result = imagegif($image, $filename);
- }
- elseif($props['gd_type'] == IMAGETYPE_PNG) {
- $result = imagepng($image, $filename, 6, PNG_ALL_FILTERS);
- }
+
+ $width = $props['width'] * $scale;
+ $height = $props['height'] * $scale;
+
+ $new_image = imagecreatetruecolor($width, $height);
+
+ // Fix transparency of gif/png image
+ if ($props['gd_type'] != IMAGETYPE_JPEG) {
+ imagealphablending($new_image, false);
+ imagesavealpha($new_image, true);
+ $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
+ imagefilledrectangle($new_image, 0, 0, $width, $height, $transparent);
+ }
+
+ imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $props['width'], $props['height']);
+ $image = $new_image;
+
+ if ($props['gd_type'] == IMAGETYPE_JPEG) {
+ $result = imagejpeg($image, $filename, 75);
+ }
+ elseif($props['gd_type'] == IMAGETYPE_GIF) {
+ $result = imagegif($image, $filename);
+ }
+ elseif($props['gd_type'] == IMAGETYPE_PNG) {
+ $result = imagepng($image, $filename, 6, PNG_ALL_FILTERS);
}
if ($result) {
@@ -255,7 +222,7 @@ class rcube_image
$p['out'] = $filename;
$p['type'] = self::$extensions[$type];
- $result = rcube::exec($convert . ' 2>&1 -colorspace sRGB -strip -quality 75 {in} {type}:{out}', $p);
+ $result = rcube::exec($convert . ' 2>&1 -colorspace sRGB -quality 75 {in} {type}:{out}', $p);
if ($result === '') {
@chmod($filename, 0600);
diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php
index 9faf1bbc6..ca5e35f2c 100644
--- a/program/lib/Roundcube/rcube_imap.php
+++ b/program/lib/Roundcube/rcube_imap.php
@@ -308,7 +308,14 @@ class rcube_imap extends rcube_storage
*/
public function set_folder($folder)
{
+ if ($this->folder == $folder) {
+ return;
+ }
+
$this->folder = $folder;
+
+ // clear messagecount cache for this folder
+ $this->clear_messagecount($folder);
}
@@ -606,7 +613,7 @@ class rcube_imap extends rcube_storage
}
if ($mode == 'THREADS') {
- $res = $this->threads($folder);
+ $res = $this->fetch_threads($folder, $force);
$count = $res->count();
if ($status) {
@@ -636,11 +643,11 @@ class rcube_imap extends rcube_storage
$keys[] = 'ALL';
}
if ($status) {
- $keys[] = 'MAX';
+ $keys[] = 'MAX';
}
}
- // @TODO: if $mode == 'ALL' we could try to use cache index here
+ // @TODO: if $force==false && $mode == 'ALL' we could try to use cache index here
// get message count using (E)SEARCH
// not very performant but more precise (using UNDELETED)
@@ -771,7 +778,7 @@ class rcube_imap extends rcube_storage
$threads = $mcache->get_thread($folder);
}
else {
- $threads = $this->threads($folder);
+ $threads = $this->fetch_threads($folder);
}
return $this->fetch_thread_headers($folder, $threads, $page, $slice);
@@ -780,47 +787,32 @@ class rcube_imap extends rcube_storage
/**
* Method for fetching threads data
*
- * @param string $folder Folder name
+ * @param string $folder Folder name
+ * @param bool $force Use IMAP server, no cache
*
* @return rcube_imap_thread Thread data object
*/
- function threads($folder)
+ function fetch_threads($folder, $force = false)
{
- if ($mcache = $this->get_mcache_engine()) {
+ if (!$force && ($mcache = $this->get_mcache_engine())) {
// don't store in self's internal cache, cache has it's own internal cache
return $mcache->get_thread($folder);
}
- if (!empty($this->icache['threads'])) {
- if ($this->icache['threads']->get_parameters('MAILBOX') == $folder) {
- return $this->icache['threads'];
+ if (empty($this->icache['threads'])) {
+ if (!$this->check_connection()) {
+ return new rcube_result_thread();
}
- }
- // get all threads
- $result = $this->threads_direct($folder);
+ // get all threads
+ $result = $this->conn->thread($folder, $this->threading,
+ $this->options['skip_deleted'] ? 'UNDELETED' : '', true);
- // add to internal (fast) cache
- return $this->icache['threads'] = $result;
- }
-
-
- /**
- * Method for direct fetching of threads data
- *
- * @param string $folder Folder name
- *
- * @return rcube_imap_thread Thread data object
- */
- function threads_direct($folder)
- {
- if (!$this->check_connection()) {
- return new rcube_result_thread();
+ // add to internal (fast) cache
+ $this->icache['threads'] = $result;
}
- // get all threads
- return $this->conn->thread($folder, $this->threading,
- $this->options['skip_deleted'] ? 'UNDELETED' : '', true);
+ return $this->icache['threads'];
}
@@ -1091,17 +1083,16 @@ class rcube_imap extends rcube_storage
/**
- * Returns current status of a folder (compared to the last time use)
+ * Returns current status of folder
*
* We compare the maximum UID to determine the number of
* new messages because the RECENT flag is not reliable.
*
* @param string $folder Folder name
- * @param array $diff Difference data
*
- * @return int Folder status
+ * @return int Folder status
*/
- public function folder_status($folder = null, &$diff = array())
+ public function folder_status($folder = null)
{
if (!strlen($folder)) {
$folder = $this->folder;
@@ -1122,9 +1113,6 @@ class rcube_imap extends rcube_storage
// got new messages
if ($new['maxuid'] > $old['maxuid']) {
$result += 1;
- // get new message UIDs range, that can be used for example
- // to get the data of these messages
- $diff['new'] = ($old['maxuid'] + 1 < $new['maxuid'] ? ($old['maxuid']+1).':' : '') . $new['maxuid'];
}
// some messages has been deleted
if ($new['cnt'] < $old['cnt']) {
@@ -1175,15 +1163,12 @@ class rcube_imap extends rcube_storage
* @param string $folder Folder to get index from
* @param string $sort_field Sort column
* @param string $sort_order Sort order [ASC, DESC]
- * @param bool $no_threads Get not threaded index
- * @param bool $no_search Get index not limited to search result (optionally)
*
* @return rcube_result_index|rcube_result_thread List of messages (UIDs)
*/
- public function index($folder = '', $sort_field = NULL, $sort_order = NULL,
- $no_threads = false, $no_search = false
- ) {
- if (!$no_threads && $this->threading) {
+ public function index($folder = '', $sort_field = NULL, $sort_order = NULL)
+ {
+ if ($this->threading) {
return $this->thread_index($folder, $sort_field, $sort_order);
}
@@ -1195,50 +1180,43 @@ class rcube_imap extends rcube_storage
// we have a saved search result, get index from there
if ($this->search_string) {
- if ($this->search_set->is_empty()) {
- return new rcube_result_index($folder, '* SORT');
+ if ($this->search_threads) {
+ $this->search($folder, $this->search_string, $this->search_charset, $this->sort_field);
}
- // search result is an index with the same sorting?
- if (($this->search_set instanceof rcube_result_index)
- && ((!$this->sort_field && !$this->search_sorted) ||
- ($this->search_sorted && $this->search_sort_field == $this->sort_field))
- ) {
+ // use message index sort as default sorting
+ if (!$this->sort_field || $this->search_sorted) {
+ if ($this->sort_field && $this->search_sort_field != $this->sort_field) {
+ $this->search($folder, $this->search_string, $this->search_charset, $this->sort_field);
+ }
$index = $this->search_set;
}
- // $no_search is enabled when we are not interested in
- // fetching index for search result, e.g. to sort
- // threaded search result we can use full mailbox index.
- // This makes possible to use index from cache
- else if (!$no_search) {
- if (!$this->sort_field) {
- // No sorting needed, just build index from the search result
- // @TODO: do we need to sort by UID here?
- $search = $this->search_set->get_compressed();
- $index = new rcube_result_index($folder, '* ESEARCH ALL ' . $search);
- }
- else {
- $index = $this->index_direct($folder, $this->search_charset,
- $this->sort_field, $this->search_set);
- }
+ else if (!$this->check_connection()) {
+ return new rcube_result_index();
+ }
+ else {
+ $index = $this->conn->index($folder, $this->search_set->get(),
+ $this->sort_field, $this->options['skip_deleted'], true, true);
}
- if (isset($index)) {
- if ($this->sort_order != $index->get_parameters('ORDER')) {
- $index->revert();
- }
-
- return $index;
+ if ($this->sort_order != $index->get_parameters('ORDER')) {
+ $index->revert();
}
+
+ return $index;
}
// check local cache
if ($mcache = $this->get_mcache_engine()) {
- return $mcache->get_index($folder, $this->sort_field, $this->sort_order);
+ $index = $mcache->get_index($folder, $this->sort_field, $this->sort_order);
}
-
// fetch from IMAP server
- return $this->index_direct($folder, $this->sort_field, $this->sort_order);
+ else {
+ $index = $this->index_direct(
+ $folder, $this->sort_field, $this->sort_order);
+ }
+
+ return $index;
}
@@ -1246,24 +1224,22 @@ class rcube_imap extends rcube_storage
* Return sorted list of message UIDs ignoring current search settings.
* Doesn't uses cache by default.
*
- * @param string $folder Folder to get index from
- * @param string $sort_field Sort column
- * @param string $sort_order Sort order [ASC, DESC]
- * @param rcube_result_* $search Optional messages set to limit the result
+ * @param string $folder Folder to get index from
+ * @param string $sort_field Sort column
+ * @param string $sort_order Sort order [ASC, DESC]
+ * @param bool $skip_cache Disables cache usage
*
* @return rcube_result_index Sorted list of message UIDs
*/
- public function index_direct($folder, $sort_field = null, $sort_order = null, $search = null)
+ public function index_direct($folder, $sort_field = null, $sort_order = null, $skip_cache = true)
{
- if (!empty($search)) {
- $search = $this->search_set->get_compressed();
+ if (!$skip_cache && ($mcache = $this->get_mcache_engine())) {
+ $index = $mcache->get_index($folder, $sort_field, $sort_order);
}
-
// use message index sort as default sorting
- if (!$sort_field) {
+ else if (!$sort_field) {
// use search result from count() if possible
- if (empty($search) && $this->options['skip_deleted']
- && !empty($this->icache['undeleted_idx'])
+ if ($this->options['skip_deleted'] && !empty($this->icache['undeleted_idx'])
&& $this->icache['undeleted_idx']->get_parameters('ALL') !== null
&& $this->icache['undeleted_idx']->get_parameters('MAILBOX') == $folder
) {
@@ -1273,12 +1249,8 @@ class rcube_imap extends rcube_storage
return new rcube_result_index();
}
else {
- $query = $this->options['skip_deleted'] ? 'UNDELETED' : '';
- if ($search) {
- $query = trim($query . ' UID ' . $search);
- }
-
- $index = $this->conn->search($folder, $query, true);
+ $index = $this->conn->search($folder,
+ 'ALL' .($this->options['skip_deleted'] ? ' UNDELETED' : ''), true);
}
}
else if (!$this->check_connection()) {
@@ -1287,18 +1259,13 @@ class rcube_imap extends rcube_storage
// fetch complete message index
else {
if ($this->get_capability('SORT')) {
- $query = $this->options['skip_deleted'] ? 'UNDELETED' : '';
- if ($search) {
- $query = trim($query . ' UID ' . $search);
- }
-
- $index = $this->conn->sort($folder, $sort_field, $query, true);
+ $index = $this->conn->sort($folder, $sort_field,
+ $this->options['skip_deleted'] ? 'UNDELETED' : '', true);
}
if (empty($index) || $index->is_error()) {
- $index = $this->conn->index($folder, $search ? $search : "1:*",
- $sort_field, $this->options['skip_deleted'],
- $search ? true : false, true);
+ $index = $this->conn->index($folder, "1:*", $sort_field,
+ $this->options['skip_deleted'], false, true);
}
}
@@ -1331,7 +1298,7 @@ class rcube_imap extends rcube_storage
}
else {
// get all threads (default sort order)
- $threads = $this->threads($folder);
+ $threads = $this->fetch_threads($folder);
}
$this->set_sort_order($sort_field, $sort_order);
@@ -1342,10 +1309,9 @@ class rcube_imap extends rcube_storage
/**
- * Sort threaded result, using THREAD=REFS method if available.
- * If not, use any method and re-sort the result in THREAD=REFS way.
+ * Sort threaded result, using THREAD=REFS method
*
- * @param rcube_result_thread $threads Threads result set
+ * @param rcube_result_thread $threads Threads result set
*/
protected function sort_threads($threads)
{
@@ -1359,7 +1325,7 @@ class rcube_imap extends rcube_storage
if ($this->threading != 'REFS' || ($this->sort_field && $this->sort_field != 'date')) {
$sortby = $this->sort_field ? $this->sort_field : 'date';
- $index = $this->index($this->folder, $sortby, $this->sort_order, true, true);
+ $index = $this->index_direct($this->folder, $sortby, $this->sort_order, false);
if (!$index->is_empty()) {
$threads->sort($index);
@@ -1439,6 +1405,8 @@ class rcube_imap extends rcube_storage
*/
protected function search_index($folder, $criteria='ALL', $charset=NULL, $sort_field=NULL)
{
+ $orig_criteria = $criteria;
+
if (!$this->check_connection()) {
if ($this->threading) {
return new rcube_result_thread();
@@ -2079,18 +2047,17 @@ class rcube_imap extends rcube_storage
/**
* Fetch message body of a specific message from the server
*
- * @param int Message UID
- * @param string Part number
- * @param rcube_message_part Part object created by get_structure()
- * @param mixed True to print part, resource to write part contents in
- * @param resource File pointer to save the message part
- * @param boolean Disables charset conversion
- * @param int Only read this number of bytes
- * @param boolean Enables formatting of text/* parts bodies
+ * @param int $uid Message UID
+ * @param string $part Part number
+ * @param rcube_message_part $o_part Part object created by get_structure()
+ * @param mixed $print True to print part, ressource to write part contents in
+ * @param resource $fp File pointer to save the message part
+ * @param boolean $skip_charset_conv Disables charset conversion
+ * @param int $max_bytes Only read this number of bytes
*
* @return string Message/part body if not printed
*/
- public function get_message_part($uid, $part=1, $o_part=NULL, $print=NULL, $fp=NULL, $skip_charset_conv=false, $max_bytes=0, $formatted=true)
+ public function get_message_part($uid, $part=1, $o_part=NULL, $print=NULL, $fp=NULL, $skip_charset_conv=false, $max_bytes=0)
{
if (!$this->check_connection()) {
return null;
@@ -2109,9 +2076,8 @@ class rcube_imap extends rcube_storage
}
if ($o_part && $o_part->size) {
- $formatted = $formatted && $o_part->ctype_primary == 'text';
$body = $this->conn->handlePartBody($this->folder, $uid, true,
- $part ? $part : 'TEXT', $o_part->encoding, $print, $fp, $formatted, $max_bytes);
+ $part ? $part : 'TEXT', $o_part->encoding, $print, $fp, $o_part->ctype_primary == 'text', $max_bytes);
}
if ($fp || $print) {
@@ -2256,14 +2222,13 @@ class rcube_imap extends rcube_storage
/**
* Append a mail message (source) to a specific folder
*
- * @param string $folder Target folder
- * @param string|array $message The message source string or filename
- * or array (of strings and file pointers)
- * @param string $headers Headers string if $message contains only the body
- * @param boolean $is_file True if $message is a filename
- * @param array $flags Message flags
- * @param mixed $date Message internal date
- * @param bool $binary Enables BINARY append
+ * @param string $folder Target folder
+ * @param string $message The message source string or filename
+ * @param string $headers Headers string if $message contains only the body
+ * @param boolean $is_file True if $message is a filename
+ * @param array $flags Message flags
+ * @param mixed $date Message internal date
+ * @param bool $binary Enables BINARY append
*
* @return int|bool Appended message UID or True on success, False on error
*/
@@ -2354,7 +2319,10 @@ class rcube_imap extends rcube_storage
// move messages
$moved = $this->conn->move($uids, $from_mbox, $to_mbox);
+ // send expunge command in order to have the moved message
+ // really deleted from the source folder
if ($moved) {
+ $this->expunge_message($uids, $from_mbox, false);
$this->clear_messagecount($from_mbox);
$this->clear_messagecount($to_mbox);
}
@@ -2656,6 +2624,7 @@ class rcube_imap extends rcube_storage
if ($list_extended) {
// unsubscribe non-existent folders, remove from the list
+ // we can do this only when LIST response is available
if (is_array($a_folders) && $name == '*' && !empty($this->conn->data['LIST'])) {
foreach ($a_folders as $idx => $folder) {
if (($opts = $this->conn->data['LIST'][$folder])
@@ -2668,14 +2637,19 @@ class rcube_imap extends rcube_storage
}
}
else {
- // unsubscribe non-existent folders, remove them from the list
- if (is_array($a_folders) && !empty($a_folders) && $name == '*') {
- $existing = $this->list_folders($root, $name);
- $nonexisting = array_diff($a_folders, $existing);
- $a_folders = array_diff($a_folders, $nonexisting);
-
- foreach ($nonexisting as $folder) {
- $this->conn->unsubscribe($folder);
+ // unsubscribe non-existent folders, remove them from the list,
+ // we can do this only when LIST response is available
+ if (is_array($a_folders) && $name == '*' && !empty($this->conn->data['LIST'])) {
+ foreach ($a_folders as $idx => $folder) {
+ if (!isset($this->conn->data['LIST'][$folder])
+ || in_array('\\Noselect', $this->conn->data['LIST'][$folder])
+ ) {
+ // Some servers returns \Noselect for existing folders
+ if (!$this->folder_exists($folder)) {
+ $this->conn->unsubscribe($folder);
+ unset($a_folders[$idx]);
+ }
+ }
}
}
}
@@ -2794,6 +2768,7 @@ class rcube_imap extends rcube_storage
*/
private function list_folders_update(&$result, $type = null)
{
+ $delim = $this->get_hierarchy_delimiter();
$namespace = $this->get_namespace();
$search = array();
@@ -3704,7 +3679,7 @@ class rcube_imap extends rcube_storage
{
if ($this->caching && !$this->cache) {
$rcube = rcube::get_instance();
- $ttl = $rcube->config->get('imap_cache_ttl', '10d');
+ $ttl = $rcube->config->get('message_cache_lifetime', '10d');
$this->cache = $rcube->get_cache('IMAP', $this->caching, $ttl);
}
@@ -3752,6 +3727,21 @@ class rcube_imap extends rcube_storage
}
}
+ /**
+ * Delete outdated cache entries
+ */
+ public function expunge_cache()
+ {
+ if ($this->mcache) {
+ $ttl = rcube::get_instance()->config->get('message_cache_lifetime', '10d');
+ $this->mcache->expunge($ttl);
+ }
+
+ if ($this->cache) {
+ $this->cache->expunge();
+ }
+ }
+
/* --------------------------------
* message caching methods
@@ -3760,17 +3750,12 @@ class rcube_imap extends rcube_storage
/**
* Enable or disable messages caching
*
- * @param boolean $set Flag
- * @param int $mode Cache mode
+ * @param boolean $set Flag
*/
- public function set_messages_caching($set, $mode = null)
+ public function set_messages_caching($set)
{
if ($set) {
$this->messages_caching = true;
-
- if ($mode && ($cache = $this->get_mcache_engine())) {
- $cache->set_mode($mode);
- }
}
else {
if ($this->mcache) {
@@ -3790,10 +3775,8 @@ class rcube_imap extends rcube_storage
if ($this->messages_caching && !$this->mcache) {
$rcube = rcube::get_instance();
if (($dbh = $rcube->get_dbh()) && ($userid = $rcube->get_user_id())) {
- $ttl = $rcube->config->get('messages_cache_ttl', '10d');
- $threshold = $rcube->config->get('messages_cache_threshold', 50);
$this->mcache = new rcube_imap_cache(
- $dbh, $this, $userid, $this->options['skip_deleted'], $ttl, $threshold);
+ $dbh, $this, $userid, $this->options['skip_deleted']);
}
}
@@ -3805,7 +3788,7 @@ class rcube_imap extends rcube_storage
* Clears the messages cache.
*
* @param string $folder Folder name
- * @param array $uids Optional message UIDs to remove from cache
+ * @param array $uids Optional message UIDs to remove from cache
*/
protected function clear_message_cache($folder = null, $uids = null)
{
@@ -3815,15 +3798,6 @@ class rcube_imap extends rcube_storage
}
- /**
- * Delete outdated cache entries
- */
- function cache_gc()
- {
- rcube_imap_cache::gc();
- }
-
-
/* --------------------------------
* protected methods
* --------------------------------*/
@@ -3857,7 +3831,7 @@ class rcube_imap extends rcube_storage
$delimiter = $this->get_hierarchy_delimiter();
// find default folders and skip folders starting with '.'
- foreach ($a_folders as $folder) {
+ foreach ($a_folders as $i => $folder) {
if ($folder[0] == '.') {
continue;
}
@@ -4117,9 +4091,9 @@ class rcube_imap extends rcube_storage
return $this->index($folder, $sort_field, $sort_order);
}
- public function message_index_direct($folder, $sort_field = null, $sort_order = null)
+ public function message_index_direct($folder, $sort_field = null, $sort_order = null, $skip_cache = true)
{
- return $this->index_direct($folder, $sort_field, $sort_order);
+ return $this->index_direct($folder, $sort_field, $sort_order, $skip_cache);
}
public function list_mailboxes($root='', $name='*', $filter=null, $rights=null, $skip_sort=false)
diff --git a/program/lib/Roundcube/rcube_imap_cache.php b/program/lib/Roundcube/rcube_imap_cache.php
index a8166545e..5170e9e21 100644
--- a/program/lib/Roundcube/rcube_imap_cache.php
+++ b/program/lib/Roundcube/rcube_imap_cache.php
@@ -27,9 +27,6 @@
*/
class rcube_imap_cache
{
- const MODE_INDEX = 1;
- const MODE_MESSAGE = 2;
-
/**
* Instance of rcube_imap
*
@@ -52,20 +49,6 @@ class rcube_imap_cache
private $userid;
/**
- * Expiration time in seconds
- *
- * @var int
- */
- private $ttl;
-
- /**
- * Maximum cached message size
- *
- * @var int
- */
- private $threshold;
-
- /**
* Internal (in-memory) cache
*
* @var array
@@ -73,7 +56,6 @@ class rcube_imap_cache
private $icache = array();
private $skip_deleted = false;
- private $mode;
/**
* List of known flags. Thanks to this we can handle flag changes
@@ -99,32 +81,15 @@ class rcube_imap_cache
);
-
/**
* Object constructor.
- *
- * @param rcube_db $db DB handler
- * @param rcube_imap $imap IMAP handler
- * @param int $userid User identifier
- * @param bool $skip_deleted skip_deleted flag
- * @param string $ttl Expiration time of memcache/apc items
- * @param int $threshold Maximum cached message size
*/
- function __construct($db, $imap, $userid, $skip_deleted, $ttl=0, $threshold=0)
+ function __construct($db, $imap, $userid, $skip_deleted)
{
- // convert ttl string to seconds
- $ttl = get_offset_sec($ttl);
- if ($ttl > 2592000) $ttl = 2592000;
-
$this->db = $db;
$this->imap = $imap;
$this->userid = $userid;
$this->skip_deleted = $skip_deleted;
- $this->ttl = $ttl;
- $this->threshold = $threshold;
-
- // cache all possible information by default
- $this->mode = self::MODE_INDEX | self::MODE_MESSAGE;
}
@@ -139,17 +104,6 @@ class rcube_imap_cache
/**
- * Set cache mode
- *
- * @param int $mode Cache mode
- */
- public function set_mode($mode)
- {
- $this->mode = $mode;
- }
-
-
- /**
* Return (sorted) messages index (UIDs).
* If index doesn't exist or is invalid, will be updated.
*
@@ -261,7 +215,9 @@ class rcube_imap_cache
* Return messages thread.
* If threaded index doesn't exist or is invalid, will be updated.
*
- * @param string $mailbox Folder name
+ * @param string $mailbox Folder name
+ * @param string $sort_field Sorting column
+ * @param string $sort_order Sorting order (ASC|DESC)
*
* @return array Messages threaded index
*/
@@ -300,11 +256,19 @@ class rcube_imap_cache
if ($index === null) {
// Get mailbox data (UIDVALIDITY, counters, etc.) for status check
$mbox_data = $this->imap->folder_data($mailbox);
- // Get THREADS result
- $index['object'] = $this->get_thread_data($mailbox, $mbox_data);
+
+ if ($mbox_data['EXISTS']) {
+ // get all threads (default sort order)
+ $threads = $this->imap->fetch_threads($mailbox, true);
+ }
+ else {
+ $threads = new rcube_result_thread($mailbox, '* THREAD');
+ }
+
+ $index['object'] = $threads;
// insert/update
- $this->add_thread_row($mailbox, $index['object'], $mbox_data, $exists);
+ $this->add_thread_row($mailbox, $threads, $mbox_data, $exists);
}
$this->icache[$mailbox]['thread'] = $index;
@@ -327,46 +291,38 @@ class rcube_imap_cache
return array();
}
- $result = array();
-
- if ($this->mode & self::MODE_MESSAGE) {
- // Fetch messages from cache
- $sql_result = $this->db->query(
- "SELECT uid, data, flags"
- ." FROM ".$this->db->table_name('cache_messages')
- ." WHERE user_id = ?"
- ." AND mailbox = ?"
- ." AND uid IN (".$this->db->array2list($msgs, 'integer').")",
- $this->userid, $mailbox);
+ // Fetch messages from cache
+ $sql_result = $this->db->query(
+ "SELECT uid, data, flags"
+ ." FROM ".$this->db->table_name('cache_messages')
+ ." WHERE user_id = ?"
+ ." AND mailbox = ?"
+ ." AND uid IN (".$this->db->array2list($msgs, 'integer').")",
+ $this->userid, $mailbox);
- $msgs = array_flip($msgs);
+ $msgs = array_flip($msgs);
+ $result = array();
- while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
- $uid = intval($sql_arr['uid']);
- $result[$uid] = $this->build_message($sql_arr);
+ while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
+ $uid = intval($sql_arr['uid']);
+ $result[$uid] = $this->build_message($sql_arr);
- if (!empty($result[$uid])) {
- // save memory, we don't need message body here (?)
- $result[$uid]->body = null;
+ if (!empty($result[$uid])) {
+ // save memory, we don't need message body here (?)
+ $result[$uid]->body = null;
- unset($msgs[$uid]);
- }
+ unset($msgs[$uid]);
}
-
- $msgs = array_flip($msgs);
}
// Fetch not found messages from IMAP server
if (!empty($msgs)) {
- $messages = $this->imap->fetch_headers($mailbox, $msgs, false, true);
+ $messages = $this->imap->fetch_headers($mailbox, array_keys($msgs), false, true);
// Insert to DB and add to result list
if (!empty($messages)) {
foreach ($messages as $msg) {
- if ($this->mode & self::MODE_MESSAGE) {
- $this->add_message($mailbox, $msg, !array_key_exists($msg->uid, $result));
- }
-
+ $this->add_message($mailbox, $msg, !array_key_exists($msg->uid, $result));
$result[$msg->uid] = $msg;
}
}
@@ -397,19 +353,17 @@ class rcube_imap_cache
return $this->icache['__message']['object'];
}
- if ($this->mode & self::MODE_MESSAGE) {
- $sql_result = $this->db->query(
- "SELECT flags, data"
- ." FROM ".$this->db->table_name('cache_messages')
- ." WHERE user_id = ?"
- ." AND mailbox = ?"
- ." AND uid = ?",
- $this->userid, $mailbox, (int)$uid);
+ $sql_result = $this->db->query(
+ "SELECT flags, data"
+ ." FROM ".$this->db->table_name('cache_messages')
+ ." WHERE user_id = ?"
+ ." AND mailbox = ?"
+ ." AND uid = ?",
+ $this->userid, $mailbox, (int)$uid);
- if ($sql_arr = $this->db->fetch_assoc($sql_result)) {
- $message = $this->build_message($sql_arr);
- $found = true;
- }
+ if ($sql_arr = $this->db->fetch_assoc($sql_result)) {
+ $message = $this->build_message($sql_arr);
+ $found = true;
}
// Get the message from IMAP server
@@ -418,10 +372,6 @@ class rcube_imap_cache
// cache will be updated in close(), see below
}
- if (!($this->mode & self::MODE_MESSAGE)) {
- return $message;
- }
-
// Save the message in internal cache, will be written to DB in close()
// Common scenario: user opens unseen message
// - get message (SELECT)
@@ -457,10 +407,6 @@ class rcube_imap_cache
return;
}
- if (!($this->mode & self::MODE_MESSAGE)) {
- return;
- }
-
$flags = 0;
$msg = clone $message;
@@ -480,40 +426,23 @@ class rcube_imap_cache
if (!$force) {
$res = $this->db->query(
"UPDATE ".$this->db->table_name('cache_messages')
- ." SET flags = ?, data = ?, expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
+ ." SET flags = ?, data = ?, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?"
." AND uid = ?",
$flags, $msg, $this->userid, $mailbox, (int) $message->uid);
- if ($this->db->affected_rows($res)) {
+ if ($this->db->affected_rows()) {
return;
}
}
- $this->db->set_option('ignore_key_errors', true);
-
// insert new record
- $res = $this->db->query(
+ $this->db->query(
"INSERT INTO ".$this->db->table_name('cache_messages')
- ." (user_id, mailbox, uid, flags, expires, data)"
- ." VALUES (?, ?, ?, ?, ". ($this->ttl ? $this->db->now($this->ttl) : 'NULL') . ", ?)",
+ ." (user_id, mailbox, uid, flags, changed, data)"
+ ." VALUES (?, ?, ?, ?, ".$this->db->now().", ?)",
$this->userid, $mailbox, (int) $message->uid, $flags, $msg);
-
- // race-condition, insert failed so try update (#1489146)
- // thanks to ignore_key_errors "duplicate row" errors will be ignored
- if ($force && !$res && !$this->db->is_error($res)) {
- $this->db->query(
- "UPDATE ".$this->db->table_name('cache_messages')
- ." SET expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
- .", flags = ?, data = ?"
- ." WHERE user_id = ?"
- ." AND mailbox = ?"
- ." AND uid = ?",
- $flags, $msg, $this->userid, $mailbox, (int) $message->uid);
- }
-
- $this->db->set_option('ignore_key_errors', false);
}
@@ -532,10 +461,6 @@ class rcube_imap_cache
return;
}
- if (!($this->mode & self::MODE_MESSAGE)) {
- return;
- }
-
$flag = strtoupper($flag);
$idx = (int) array_search($flag, $this->flags);
$uids = (array) $uids;
@@ -558,7 +483,7 @@ class rcube_imap_cache
$this->db->query(
"UPDATE ".$this->db->table_name('cache_messages')
- ." SET expires = ". ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
+ ." SET changed = ".$this->db->now()
.", flags = flags ".($enabled ? "+ $idx" : "- $idx")
." WHERE user_id = ?"
." AND mailbox = ?"
@@ -576,10 +501,6 @@ class rcube_imap_cache
*/
function remove_message($mailbox = null, $uids = null)
{
- if (!($this->mode & self::MODE_MESSAGE)) {
- return;
- }
-
if (!strlen($mailbox)) {
$this->db->query(
"DELETE FROM ".$this->db->table_name('cache_messages')
@@ -685,21 +606,23 @@ class rcube_imap_cache
/**
- * Delete expired cache entries
+ * Delete cache entries older than TTL
+ *
+ * @param string $ttl Lifetime of message cache entries
*/
- static function gc()
+ function expunge($ttl)
{
- $rcube = rcube::get_instance();
- $db = $rcube->get_dbh();
+ // get expiration timestamp
+ $ts = get_offset_time($ttl, -1);
- $db->query("DELETE FROM ".$db->table_name('cache_messages')
- ." WHERE expires < " . $db->now());
+ $this->db->query("DELETE FROM ".$this->db->table_name('cache_messages')
+ ." WHERE changed < " . $this->db->fromunixtime($ts));
- $db->query("DELETE FROM ".$db->table_name('cache_index')
- ." WHERE expires < " . $db->now());
+ $this->db->query("DELETE FROM ".$this->db->table_name('cache_index')
+ ." WHERE changed < " . $this->db->fromunixtime($ts));
- $db->query("DELETE FROM ".$db->table_name('cache_thread')
- ." WHERE expires < " . $db->now());
+ $this->db->query("DELETE FROM ".$this->db->table_name('cache_thread')
+ ." WHERE changed < " . $this->db->fromunixtime($ts));
}
@@ -791,38 +714,20 @@ class rcube_imap_cache
$data = implode('@', $data);
if ($exists) {
- $res = $this->db->query(
+ $sql_result = $this->db->query(
"UPDATE ".$this->db->table_name('cache_index')
- ." SET data = ?, valid = 1, expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
+ ." SET data = ?, valid = 1, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?",
$data, $this->userid, $mailbox);
-
- if ($this->db->affected_rows($res)) {
- return;
- }
}
-
- $this->db->set_option('ignore_key_errors', true);
-
- $res = $this->db->query(
- "INSERT INTO ".$this->db->table_name('cache_index')
- ." (user_id, mailbox, valid, expires, data)"
- ." VALUES (?, ?, 1, ". ($this->ttl ? $this->db->now($this->ttl) : 'NULL') .", ?)",
- $this->userid, $mailbox, $data);
-
- // race-condition, insert failed so try update (#1489146)
- // thanks to ignore_key_errors "duplicate row" errors will be ignored
- if (!$exists && !$res && !$this->db->is_error($res)) {
- $res = $this->db->query(
- "UPDATE ".$this->db->table_name('cache_index')
- ." SET data = ?, valid = 1, expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
- ." WHERE user_id = ?"
- ." AND mailbox = ?",
- $data, $this->userid, $mailbox);
+ else {
+ $sql_result = $this->db->query(
+ "INSERT INTO ".$this->db->table_name('cache_index')
+ ." (user_id, mailbox, data, valid, changed)"
+ ." VALUES (?, ?, ?, 1, ".$this->db->now().")",
+ $this->userid, $mailbox, $data);
}
-
- $this->db->set_option('ignore_key_errors', false);
}
@@ -839,41 +744,21 @@ class rcube_imap_cache
);
$data = implode('@', $data);
- $expires = ($this->ttl ? $this->db->now($this->ttl) : 'NULL');
-
if ($exists) {
- $res = $this->db->query(
+ $sql_result = $this->db->query(
"UPDATE ".$this->db->table_name('cache_thread')
- ." SET data = ?, expires = $expires"
+ ." SET data = ?, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?",
$data, $this->userid, $mailbox);
-
- if ($this->db->affected_rows($res)) {
- return;
- }
}
-
- $this->db->set_option('ignore_key_errors', true);
-
- $res = $this->db->query(
- "INSERT INTO ".$this->db->table_name('cache_thread')
- ." (user_id, mailbox, expires, data)"
- ." VALUES (?, ?, $expires, ?)",
- $this->userid, $mailbox, $data);
-
- // race-condition, insert failed so try update (#1489146)
- // thanks to ignore_key_errors "duplicate row" errors will be ignored
- if (!$exists && !$res && !$this->db->is_error($res)) {
- $this->db->query(
- "UPDATE ".$this->db->table_name('cache_thread')
- ." SET expires = $expires, data = ?"
- ." WHERE user_id = ?"
- ." AND mailbox = ?",
- $data, $this->userid, $mailbox);
+ else {
+ $sql_result = $this->db->query(
+ "INSERT INTO ".$this->db->table_name('cache_thread')
+ ." (user_id, mailbox, data, changed)"
+ ." VALUES (?, ?, ?, ".$this->db->now().")",
+ $this->userid, $mailbox, $data);
}
-
- $this->db->set_option('ignore_key_errors', false);
}
@@ -1081,17 +966,15 @@ class rcube_imap_cache
$removed = array();
// Get known UIDs
- if ($this->mode & self::MODE_MESSAGE) {
- $sql_result = $this->db->query(
- "SELECT uid"
- ." FROM ".$this->db->table_name('cache_messages')
- ." WHERE user_id = ?"
- ." AND mailbox = ?",
- $this->userid, $mailbox);
+ $sql_result = $this->db->query(
+ "SELECT uid"
+ ." FROM ".$this->db->table_name('cache_messages')
+ ." WHERE user_id = ?"
+ ." AND mailbox = ?",
+ $this->userid, $mailbox);
- while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
- $uids[] = $sql_arr['uid'];
- }
+ while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
+ $uids[] = $sql_arr['uid'];
}
// Synchronize messages data
@@ -1102,7 +985,7 @@ class rcube_imap_cache
$uids, true, array('FLAGS'), $index['modseq'], $qresync);
if (!empty($result)) {
- foreach ($result as $msg) {
+ foreach ($result as $id => $msg) {
$uid = $msg->uid;
// Remove deleted message
if ($this->skip_deleted && !empty($msg->flags['DELETED'])) {
@@ -1123,7 +1006,7 @@ class rcube_imap_cache
$this->db->query(
"UPDATE ".$this->db->table_name('cache_messages')
- ." SET flags = ?, expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
+ ." SET flags = ?, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?"
." AND uid = ?"
@@ -1151,18 +1034,17 @@ class rcube_imap_cache
}
}
+ // Invalidate thread index (?)
+ if (!$index['valid']) {
+ $this->remove_thread($mailbox);
+ }
+
$sort_field = $index['sort_field'];
$sort_order = $index['object']->get_parameters('ORDER');
$exists = true;
// Validate index
if (!$this->validate($mailbox, $index, $exists)) {
- // Invalidate (remove) thread index
- // if $exists=false it was already removed in validate()
- if ($exists) {
- $this->remove_thread($mailbox);
- }
-
// Update index
$data = $this->get_index_data($mailbox, $sort_field, $sort_order, $mbox_data);
}
@@ -1229,16 +1111,11 @@ class rcube_imap_cache
*
* @param rcube_message_header|rcube_message_part
*/
- private function message_object_prepare(&$msg, &$size = 0)
+ private function message_object_prepare(&$msg)
{
- // Remove body too big
- if ($msg->body && ($length = strlen($msg->body))) {
- $size += $length;
-
- if ($size > $this->threshold * 1024) {
- $size -= $length;
- unset($msg->body);
- }
+ // Remove body too big (>25kB)
+ if ($msg->body && strlen($msg->body) > 25 * 1024) {
+ unset($msg->body);
}
// Fix mimetype which might be broken by some code when message is displayed
@@ -1252,13 +1129,13 @@ class rcube_imap_cache
if (is_array($msg->structure->parts)) {
foreach ($msg->structure->parts as $part) {
- $this->message_object_prepare($part, $size);
+ $this->message_object_prepare($part);
}
}
if (is_array($msg->parts)) {
foreach ($msg->parts as $part) {
- $this->message_object_prepare($part, $size);
+ $this->message_object_prepare($part);
}
}
}
@@ -1283,25 +1160,6 @@ class rcube_imap_cache
return $index;
}
-
-
- /**
- * Fetches thread data from IMAP server
- */
- private function get_thread_data($mailbox, $mbox_data = array())
- {
- if (empty($mbox_data)) {
- $mbox_data = $this->imap->folder_data($mailbox);
- }
-
- if ($mbox_data['EXISTS']) {
- // get all threads (default sort order)
- return $this->imap->threads_direct($mailbox);
- }
-
- return new rcube_result_thread($mailbox, '* THREAD');
- }
-
}
// for backward compat.
diff --git a/program/lib/Roundcube/rcube_imap_generic.php b/program/lib/Roundcube/rcube_imap_generic.php
index f9a62f010..1b28c3bd7 100644
--- a/program/lib/Roundcube/rcube_imap_generic.php
+++ b/program/lib/Roundcube/rcube_imap_generic.php
@@ -48,8 +48,6 @@ class rcube_imap_generic
'*' => '\\*',
);
- public static $mupdate;
-
private $fp;
private $host;
private $logged = false;
@@ -74,8 +72,6 @@ class rcube_imap_generic
const COMMAND_CAPABILITY = 2;
const COMMAND_LASTLINE = 4;
- const DEBUG_LINE_LENGTH = 4098; // 4KB + 2B for \r\n
-
/**
* Object constructor
*/
@@ -791,21 +787,23 @@ class rcube_imap_generic
// TLS connection
if ($this->prefs['ssl_mode'] == 'tls' && $this->getCapability('STARTTLS')) {
- $res = $this->execute('STARTTLS');
+ if (version_compare(PHP_VERSION, '5.1.0', '>=')) {
+ $res = $this->execute('STARTTLS');
- if ($res[0] != self::ERROR_OK) {
- $this->closeConnection();
- return false;
- }
+ if ($res[0] != self::ERROR_OK) {
+ $this->closeConnection();
+ return false;
+ }
- if (!stream_socket_enable_crypto($this->fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
- $this->setError(self::ERROR_BAD, "Unable to negotiate TLS");
- $this->closeConnection();
- return false;
- }
+ if (!stream_socket_enable_crypto($this->fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
+ $this->setError(self::ERROR_BAD, "Unable to negotiate TLS");
+ $this->closeConnection();
+ return false;
+ }
- // Now we're secure, capabilities need to be reread
- $this->clearCapability();
+ // Now we're secure, capabilities need to be reread
+ $this->clearCapability();
+ }
}
// Send ID info
@@ -904,11 +902,6 @@ class rcube_imap_generic
$this->prefs['auth_type'] = 'CHECK';
}
- // disabled capabilities
- if (!empty($this->prefs['disabled_caps'])) {
- $this->prefs['disabled_caps'] = array_map('strtoupper', (array)$this->prefs['disabled_caps']);
- }
-
// additional message flags
if (!empty($this->prefs['message_flags'])) {
$this->flags = array_merge($this->flags, $this->prefs['message_flags']);
@@ -1090,8 +1083,8 @@ class rcube_imap_generic
/**
* Executes EXPUNGE command
*
- * @param string $mailbox Mailbox name
- * @param string|array $messages Message UIDs to expunge
+ * @param string $mailbox Mailbox name
+ * @param string $messages Message UIDs to expunge
*
* @return boolean True on success, False on error
*/
@@ -1109,13 +1102,10 @@ class rcube_imap_generic
// Clear internal status cache
unset($this->data['STATUS:'.$mailbox]);
- if (!empty($messages) && $messages != '*' && $this->hasCapability('UIDPLUS')) {
- $messages = self::compressMessageSet($messages);
- $result = $this->execute('UID EXPUNGE', array($messages), self::COMMAND_NORESPONSE);
- }
- else {
+ if ($messages)
+ $result = $this->execute('UID EXPUNGE', array($messages), self::COMMAND_NORESPONSE);
+ else
$result = $this->execute('EXPUNGE', null, self::COMMAND_NORESPONSE);
- }
if ($result == self::ERROR_OK) {
$this->selected = null; // state has changed, need to reselect
@@ -1352,8 +1342,9 @@ class rcube_imap_generic
$folders[$mailbox] = array();
}
- // store folder options
- if ($cmd == 'LIST') {
+ // store LSUB options only if not empty, this way
+ // we can detect a situation when LIST doesn't return specified folder
+ if (!empty($opts) || $cmd == 'LIST') {
// Add to options array
if (empty($this->data['LIST'][$mailbox]))
$this->data['LIST'][$mailbox] = $opts;
@@ -1585,12 +1576,11 @@ class rcube_imap_generic
}
// message IDs
- if (!empty($add)) {
+ if (!empty($add))
$add = $this->compressMessageSet($add);
- }
list($code, $response) = $this->execute($return_uid ? 'UID SORT' : 'SORT',
- array("($field)", $encoding, !empty($add) ? $add : 'ALL'));
+ array("($field)", $encoding, 'ALL' . (!empty($add) ? ' '.$add : '')));
if ($code != self::ERROR_OK) {
$response = null;
@@ -1677,6 +1667,7 @@ class rcube_imap_generic
}
if (!empty($criteria)) {
+ $modseq = stripos($criteria, 'MODSEQ') !== false;
$params .= ($params ? ' ' : '') . $criteria;
}
else {
@@ -1815,6 +1806,7 @@ class rcube_imap_generic
if ($skip_deleted && preg_match('/FLAGS \(([^)]+)\)/', $line, $matches)) {
$flags = explode(' ', strtoupper($matches[1]));
if (in_array('\\DELETED', $flags)) {
+ $deleted[$id] = $id;
continue;
}
}
@@ -2006,6 +1998,7 @@ class rcube_imap_generic
/**
* Moves message(s) from one folder to another.
+ * Original message(s) will be marked as deleted.
*
* @param string|array $messages Message UID(s)
* @param string $from Mailbox name
@@ -2024,41 +2017,15 @@ class rcube_imap_generic
return false;
}
- // use MOVE command (RFC 6851)
- if ($this->hasCapability('MOVE')) {
- // Clear last COPYUID data
- unset($this->data['COPYUID']);
+ $r = $this->copy($messages, $from, $to);
+ if ($r) {
// Clear internal status cache
- unset($this->data['STATUS:'.$to]);
unset($this->data['STATUS:'.$from]);
- $result = $this->execute('UID MOVE', array(
- $this->compressMessageSet($messages), $this->escape($to)),
- self::COMMAND_NORESPONSE);
-
- return ($result == self::ERROR_OK);
- }
-
- // use COPY + STORE +FLAGS.SILENT \Deleted + EXPUNGE
- $result = $this->copy($messages, $from, $to);
-
- if ($result) {
- // Clear internal status cache
- unset($this->data['STATUS:'.$from]);
-
- $result = $this->flag($from, $messages, 'DELETED');
-
- if ($messages == '*') {
- // CLOSE+SELECT should be faster than EXPUNGE
- $this->close();
- }
- else {
- $this->expunge($from, $messages);
- }
+ return $this->flag($from, $messages, 'DELETED');
}
-
- return $result;
+ return $r;
}
/**
@@ -2199,7 +2166,7 @@ class rcube_imap_generic
// create array with header field:data
if (!empty($headers)) {
$headers = explode("\n", trim($headers));
- foreach ($headers as $resln) {
+ foreach ($headers as $hid => $resln) {
if (ord($resln[0]) <= 32) {
$lines[$ln] .= (empty($lines[$ln]) ? '' : "\n") . trim($resln);
} else {
@@ -2207,7 +2174,7 @@ class rcube_imap_generic
}
}
- foreach ($lines as $str) {
+ while (list($lines_key, $str) = each($lines)) {
list($field, $string) = explode(':', $str, 2);
$field = strtolower($field);
@@ -2511,7 +2478,7 @@ class rcube_imap_generic
}
if ($binary) {
- // WARNING: Use $formatted argument with care, this may break binary data stream
+ // WARNING: Use $formatting argument with care, this may break binary data stream
$mode = -1;
}
@@ -2532,7 +2499,6 @@ class rcube_imap_generic
// handle one line response
if ($line[0] == '(' && substr($line, -1) == ')') {
// tokenize content inside brackets
- // the content can be e.g.: (UID 9844 BODY[2.4] NIL)
$tokens = $this->tokenizeResponse(preg_replace('/(^\(|\)$)/', '', $line));
for ($i=0; $i<count($tokens); $i+=2) {
@@ -2647,11 +2613,11 @@ class rcube_imap_generic
/**
* Handler for IMAP APPEND command
*
- * @param string $mailbox Mailbox name
- * @param string|array $message The message source string or array (of strings and file pointers)
- * @param array $flags Message flags
- * @param string $date Message internal date
- * @param bool $binary Enable BINARY append (RFC3516)
+ * @param string $mailbox Mailbox name
+ * @param string $message Message content
+ * @param array $flags Message flags
+ * @param string $date Message internal date
+ * @param bool $binary Enable BINARY append (RFC3516)
*
* @return string|bool On success APPENDUID response (if available) or True, False on failure
*/
@@ -2665,28 +2631,13 @@ class rcube_imap_generic
$binary = $binary && $this->getCapability('BINARY');
$literal_plus = !$binary && $this->prefs['literal+'];
- $len = 0;
- $msg = is_array($message) ? $message : array(&$message);
- $chunk_size = 512000;
-
- for ($i=0, $cnt=count($msg); $i<$cnt; $i++) {
- if (is_resource($msg[$i])) {
- $stat = fstat($msg[$i]);
- if ($stat === false) {
- return false;
- }
- $len += $stat['size'];
- }
- else {
- if (!$binary) {
- $msg[$i] = str_replace("\r", '', $msg[$i]);
- $msg[$i] = str_replace("\n", "\r\n", $msg[$i]);
- }
- $len += strlen($msg[$i]);
- }
+ if (!$binary) {
+ $message = str_replace("\r", '', $message);
+ $message = str_replace("\n", "\r\n", $message);
}
+ $len = strlen($message);
if (!$len) {
return false;
}
@@ -2711,32 +2662,7 @@ class rcube_imap_generic
}
}
- foreach ($msg as $msg_part) {
- // file pointer
- if (is_resource($msg_part)) {
- rewind($msg_part);
- while (!feof($msg_part) && $this->fp) {
- $buffer = fread($msg_part, $chunk_size);
- $this->putLine($buffer, false);
- }
- fclose($msg_part);
- }
- // string
- else {
- $size = strlen($msg_part);
-
- // Break up the data by sending one chunk (up to 512k) at a time.
- // This approach reduces our peak memory usage
- for ($offset = 0; $offset < $size; $offset += $chunk_size) {
- $chunk = substr($msg_part, $offset, $chunk_size);
- if (!$this->putLine($chunk, false)) {
- return false;
- }
- }
- }
- }
-
- if (!$this->putLine('')) { // \r\n
+ if (!$this->putLine($message)) {
return false;
}
@@ -2775,23 +2701,94 @@ class rcube_imap_generic
*/
function appendFromFile($mailbox, $path, $headers=null, $flags = array(), $date = null, $binary = false)
{
+ unset($this->data['APPENDUID']);
+
+ if ($mailbox === null || $mailbox === '') {
+ return false;
+ }
+
// open message file
+ $in_fp = false;
if (file_exists(realpath($path))) {
- $fp = fopen($path, 'r');
+ $in_fp = fopen($path, 'r');
}
- if (!$fp) {
+ if (!$in_fp) {
$this->setError(self::ERROR_UNKNOWN, "Couldn't open $path for reading");
return false;
}
- $message = array();
+ $body_separator = "\r\n\r\n";
+ $len = filesize($path);
+
+ if (!$len) {
+ return false;
+ }
+
if ($headers) {
- $message[] = trim($headers, "\r\n") . "\r\n\r\n";
+ $headers = preg_replace('/[\r\n]+$/', '', $headers);
+ $len += strlen($headers) + strlen($body_separator);
+ }
+
+ $binary = $binary && $this->getCapability('BINARY');
+ $literal_plus = !$binary && $this->prefs['literal+'];
+
+ // build APPEND command
+ $key = $this->nextTag();
+ $request = "$key APPEND " . $this->escape($mailbox) . ' (' . $this->flagsToStr($flags) . ')';
+ if (!empty($date)) {
+ $request .= ' ' . $this->escape($date);
+ }
+ $request .= ' ' . ($binary ? '~' : '') . '{' . $len . ($literal_plus ? '+' : '') . '}';
+
+ // send APPEND command
+ if ($this->putLine($request)) {
+ // Don't wait when LITERAL+ is supported
+ if (!$literal_plus) {
+ $line = $this->readReply();
+
+ if ($line[0] != '+') {
+ $this->parseResult($line, 'APPEND: ');
+ return false;
+ }
+ }
+
+ // send headers with body separator
+ if ($headers) {
+ $this->putLine($headers . $body_separator, false);
+ }
+
+ // send file
+ while (!feof($in_fp) && $this->fp) {
+ $buffer = fgets($in_fp, 4096);
+ $this->putLine($buffer, false);
+ }
+ fclose($in_fp);
+
+ if (!$this->putLine('')) { // \r\n
+ return false;
+ }
+
+ // read response
+ do {
+ $line = $this->readLine();
+ } while (!$this->startsWith($line, $key, true, true));
+
+ // Clear internal status cache
+ unset($this->data['STATUS:'.$mailbox]);
+
+ if ($this->parseResult($line, 'APPEND: ') != self::ERROR_OK)
+ return false;
+ else if (!empty($this->data['APPENDUID']))
+ return $this->data['APPENDUID'];
+ else
+ return true;
+ }
+ else {
+ $this->setError(self::ERROR_COMMAND, "Unable to send command: $request");
}
- $message[] = $fp;
- return $this->append($mailbox, $message, $flags, $date, $binary);
+ return false;
}
/**
@@ -3158,11 +3155,6 @@ class rcube_imap_generic
}
foreach ($data as $entry) {
- // Workaround cyrus-murder bug, the entry[2] string needs to be escaped
- if (self::$mupdate) {
- $entry[2] = addcslashes($entry[2], '\\"');
- }
-
// ANNOTATEMORE drafts before version 08 require quoted parameters
$entries[] = sprintf('%s (%s %s)', $this->escape($entry[0], true),
$this->escape($entry[1], true), $this->escape($entry[2], true));
@@ -3545,7 +3537,7 @@ class rcube_imap_generic
if (is_array($element)) {
reset($element);
- foreach ($element as $value) {
+ while (list($key, $value) = each($element)) {
$string .= ' ' . self::r_implode($value);
}
}
@@ -3573,7 +3565,7 @@ class rcube_imap_generic
// if less than 255 bytes long, let's not bother
if (!$force && strlen($messages)<255) {
return $messages;
- }
+ }
// see if it's already been compressed
if (strpos($messages, ':') !== false) {
@@ -3681,20 +3673,8 @@ class rcube_imap_generic
*/
static function strToTime($date)
{
- // Clean malformed data
- $date = preg_replace(
- array(
- '/GMT\s*([+-][0-9]+)/', // support non-standard "GMTXXXX" literal
- '/[^a-z0-9\x20\x09:+-]/i', // remove any invalid characters
- '/\s*(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*/i', // remove weekday names
- ),
- array(
- '\\1',
- '',
- '',
- ), $date);
-
- $date = trim($date);
+ // support non-standard "GMTXXXX" literal
+ $date = preg_replace('/GMT\s*([+-][0-9]+)/', '\\1', $date);
// if date parsing fails, we have a date in non-rfc format
// remove token from the end and try again
@@ -3719,18 +3699,10 @@ class rcube_imap_generic
$this->capability = explode(' ', strtoupper($str));
- if (!empty($this->prefs['disabled_caps'])) {
- $this->capability = array_diff($this->capability, $this->prefs['disabled_caps']);
- }
-
if (!isset($this->prefs['literal+']) && in_array('LITERAL+', $this->capability)) {
$this->prefs['literal+'] = true;
}
- if (preg_match('/(\[| )MUPDATE=.*/', $str)) {
- self::$mupdate = true;
- }
-
if ($trusted) {
$this->capability_readed = true;
}
@@ -3772,10 +3744,9 @@ class rcube_imap_generic
/**
* Set the value of the debugging flag.
*
- * @param boolean $debug New value for the debugging flag.
- * @param callback $handler Logging handler function
+ * @param boolean $debug New value for the debugging flag.
*
- * @since 0.5-stable
+ * @since 0.5-stable
*/
function setDebug($debug, $handler = null)
{
@@ -3786,18 +3757,12 @@ class rcube_imap_generic
/**
* Write the given debug text to the current debug output handler.
*
- * @param string $message Debug mesage text.
+ * @param string $message Debug mesage text.
*
- * @since 0.5-stable
+ * @since 0.5-stable
*/
private function debug($message)
{
- if (($len = strlen($message)) > self::DEBUG_LINE_LENGTH) {
- $diff = $len - self::DEBUG_LINE_LENGTH;
- $message = substr($message, 0, self::DEBUG_LINE_LENGTH)
- . "... [truncated $diff bytes]";
- }
-
if ($this->resourceid) {
$message = sprintf('[%s] %s', $this->resourceid, $message);
}
diff --git a/program/lib/Roundcube/rcube_ldap.php b/program/lib/Roundcube/rcube_ldap.php
index b733e2465..7c4002337 100644
--- a/program/lib/Roundcube/rcube_ldap.php
+++ b/program/lib/Roundcube/rcube_ldap.php
@@ -3,8 +3,8 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-2013, The Roundcube Dev Team |
- | Copyright (C) 2011-2013, Kolab Systems AG |
+ | Copyright (C) 2006-2012, The Roundcube Dev Team |
+ | Copyright (C) 2011-2012, Kolab Systems AG |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -27,51 +27,38 @@
*/
class rcube_ldap extends rcube_addressbook
{
- // public properties
+ /** public properties */
public $primary_key = 'ID';
- public $groups = false;
- public $readonly = true;
- public $ready = false;
- public $group_id = 0;
- public $coltypes = array();
- public $export_groups = false;
-
- // private properties
- protected $ldap;
- protected $prop = array();
+ public $groups = false;
+ public $readonly = true;
+ public $ready = false;
+ public $group_id = 0;
+ public $coltypes = array();
+
+ /** private properties */
+ protected $conn;
+ protected $prop = array();
protected $fieldmap = array();
- protected $filter = '';
protected $sub_filter;
- protected $result;
- protected $ldap_result;
+ protected $filter = '';
+ protected $result = null;
+ protected $ldap_result = null;
protected $mail_domain = '';
protected $debug = false;
- /**
- * Group objectclass (lowercase) to member attribute mapping
- *
- * @var array
- */
- private $group_types = array(
- 'group' => 'member',
- 'groupofnames' => 'member',
- 'kolabgroupofnames' => 'member',
- 'groupofuniquenames' => 'uniqueMember',
- 'kolabgroupofuniquenames' => 'uniqueMember',
- 'univentiongroup' => 'uniqueMember',
- 'groupofurls' => null,
- );
-
- private $base_dn = '';
+ private $base_dn = '';
private $groups_base_dn = '';
- private $group_url;
+ private $group_url = null;
private $cache;
+ private $vlv_active = false;
+ private $vlv_count = 0;
+
/**
* Object constructor
*
- * @param array $p LDAP connection properties
+ * @param array $p LDAP connection properties
* @param boolean $debug Enables debug mode
* @param string $mail_domain Current user mail domain name
*/
@@ -79,7 +66,8 @@ class rcube_ldap extends rcube_addressbook
{
$this->prop = $p;
- $fetch_attributes = array('objectClass');
+ if (isset($p['searchonly']))
+ $this->searchonly = $p['searchonly'];
// check if groups are configured
if (is_array($p['groups']) && count($p['groups'])) {
@@ -94,24 +82,6 @@ class rcube_ldap extends rcube_addressbook
$this->prop['groups']['name_attr'] = 'cn';
if (empty($this->prop['groups']['scope']))
$this->prop['groups']['scope'] = 'sub';
- // extend group objectclass => member attribute mapping
- if (!empty($this->prop['groups']['class_member_attr']))
- $this->group_types = array_merge($this->group_types, $this->prop['groups']['class_member_attr']);
-
- // add group name attrib to the list of attributes to be fetched
- $fetch_attributes[] = $this->prop['groups']['name_attr'];
- }
- if (is_array($p['group_filters']) && count($p['group_filters'])) {
- $this->groups = true;
-
- foreach ($p['group_filters'] as $k => $group_filter) {
- // set default name attribute to cn
- if (empty($group_filter['name_attr']) && empty($this->prop['groups']['name_attr']))
- $this->prop['group_filters'][$k]['name_attr'] = $group_filter['name_attr'] = 'cn';
-
- if ($group_filter['name_attr'])
- $fetch_attributes[] = $group_filter['name_attr'];
- }
}
// fieldmap property is given
@@ -199,7 +169,7 @@ class rcube_ldap extends rcube_addressbook
// Build sub_fields filter
if (!empty($this->prop['sub_fields']) && is_array($this->prop['sub_fields'])) {
$this->sub_filter = '';
- foreach ($this->prop['sub_fields'] as $class) {
+ foreach ($this->prop['sub_fields'] as $attr => $class) {
if (!empty($class)) {
$class = is_array($class) ? array_pop($class) : $class;
$this->sub_filter .= '(objectClass=' . $class . ')';
@@ -216,24 +186,7 @@ class rcube_ldap extends rcube_addressbook
// initialize cache
$rcube = rcube::get_instance();
- if ($cache_type = $rcube->config->get('ldap_cache', 'db')) {
- $cache_ttl = $rcube->config->get('ldap_cache_ttl', '10m');
- $cache_name = 'LDAP.' . asciiwords($this->prop['name']);
-
- $this->cache = $rcube->get_cache($cache_name, $cache_type, $cache_ttl);
- }
-
- // determine which attributes to fetch
- $this->prop['list_attributes'] = array_unique($fetch_attributes);
- $this->prop['attributes'] = array_merge(array_values($this->fieldmap), $fetch_attributes);
- foreach ($rcube->config->get('contactlist_fields') as $col) {
- $this->prop['list_attributes'] = array_merge($this->prop['list_attributes'], $this->_map_field($col));
- }
-
- // initialize ldap wrapper object
- $this->ldap = new rcube_ldap_generic($this->prop);
- $this->ldap->set_cache($this->cache);
- $this->ldap->set_debug($this->debug);
+ $this->cache = $rcube->get_cache('LDAP.' . asciiwords($this->prop['name']), 'db', 600);
$this->_connect();
}
@@ -246,18 +199,49 @@ class rcube_ldap extends rcube_addressbook
{
$rcube = rcube::get_instance();
- if ($this->ready)
+ if (!function_exists('ldap_connect'))
+ rcube::raise_error(array('code' => 100, 'type' => 'ldap',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "No ldap support in this installation of PHP"),
+ true, true);
+
+ if (is_resource($this->conn))
return true;
if (!is_array($this->prop['hosts']))
$this->prop['hosts'] = array($this->prop['hosts']);
+ if (empty($this->prop['ldap_version']))
+ $this->prop['ldap_version'] = 3;
+
// try to connect + bind for every host configured
// with OpenLDAP 2.x ldap_connect() always succeeds but ldap_bind will fail if host isn't reachable
// see http://www.php.net/manual/en/function.ldap-connect.php
foreach ($this->prop['hosts'] as $host) {
- // skip host if connection failed
- if (!$this->ldap->connect($host)) {
+ $host = rcube_utils::idn_to_ascii(rcube_utils::parse_host($host));
+ $hostname = $host.($this->prop['port'] ? ':'.$this->prop['port'] : '');
+
+ $this->_debug("C: Connect [$hostname] [{$this->prop['name']}]");
+
+ if ($lc = @ldap_connect($host, $this->prop['port'])) {
+ if ($this->prop['use_tls'] === true)
+ if (!ldap_start_tls($lc))
+ continue;
+
+ $this->_debug("S: OK");
+
+ ldap_set_option($lc, LDAP_OPT_PROTOCOL_VERSION, $this->prop['ldap_version']);
+ $this->prop['host'] = $host;
+ $this->conn = $lc;
+
+ if (!empty($this->prop['network_timeout']))
+ ldap_set_option($lc, LDAP_OPT_NETWORK_TIMEOUT, $this->prop['network_timeout']);
+
+ if (isset($this->prop['referrals']))
+ ldap_set_option($lc, LDAP_OPT_REFERRALS, $this->prop['referrals']);
+ }
+ else {
+ $this->_debug("S: NOT OK");
continue;
}
@@ -272,7 +256,7 @@ class rcube_ldap extends rcube_addressbook
$this->base_dn = $this->prop['base_dn'];
$this->groups_base_dn = ($this->prop['groups']['base_dn']) ?
- $this->prop['groups']['base_dn'] : $this->base_dn;
+ $this->prop['groups']['base_dn'] : $this->base_dn;
// User specific access, generate the proper values to use.
if ($this->prop['user_specific']) {
@@ -291,65 +275,30 @@ class rcube_ldap extends rcube_addressbook
$replaces = array('%dn' => '', '%dc' => $dc, '%d' => $d, '%fu' => $fu, '%u' => $u);
- // Search for the dn to use to authenticate
- if ($this->prop['search_base_dn'] && $this->prop['search_filter']
- && (strstr($bind_dn, '%dn') || strstr($this->base_dn, '%dn') || strstr($this->groups_base_dn, '%dn'))
- ) {
- $search_attribs = array('uid');
- if ($search_bind_attrib = (array)$this->prop['search_bind_attrib']) {
- foreach ($search_bind_attrib as $r => $attr) {
- $search_attribs[] = $attr;
- $replaces[$r] = '';
- }
- }
-
- $search_bind_dn = strtr($this->prop['search_bind_dn'], $replaces);
- $search_base_dn = strtr($this->prop['search_base_dn'], $replaces);
- $search_filter = strtr($this->prop['search_filter'], $replaces);
-
- $cache_key = 'DN.' . md5("$host:$search_bind_dn:$search_base_dn:$search_filter:"
- .$this->prop['search_bind_pw']);
-
- if ($this->cache && ($dn = $this->cache->get($cache_key))) {
- $replaces['%dn'] = $dn;
+ if ($this->prop['search_base_dn'] && $this->prop['search_filter']) {
+ if (!empty($this->prop['search_bind_dn']) && !empty($this->prop['search_bind_pw'])) {
+ $this->bind($this->prop['search_bind_dn'], $this->prop['search_bind_pw']);
}
- else {
- $ldap = $this->ldap;
- if (!empty($search_bind_dn) && !empty($this->prop['search_bind_pw'])) {
- // To protect from "Critical extension is unavailable" error
- // we need to use a separate LDAP connection
- if (!empty($this->prop['vlv'])) {
- $ldap = new rcube_ldap_generic($this->prop);
- $ldap->set_debug($this->debug);
- $ldap->set_cache($this->cache);
- if (!$ldap->connect($host)) {
- continue;
- }
- }
-
- if (!$ldap->bind($search_bind_dn, $this->prop['search_bind_pw'])) {
- continue; // bind failed, try next host
- }
- }
- $res = $ldap->search($search_base_dn, $search_filter, 'sub', $search_attribs);
- if ($res) {
- $res->rewind();
- $replaces['%dn'] = $res->get_dn();
-
- // add more replacements from 'search_bind_attrib' config
- if ($search_bind_attrib) {
- $res = $res->current();
- foreach ($search_bind_attrib as $r => $attr) {
- $replaces[$r] = $res[$attr][0];
- }
- }
- }
+ // Search for the dn to use to authenticate
+ $this->prop['search_base_dn'] = strtr($this->prop['search_base_dn'], $replaces);
+ $this->prop['search_filter'] = strtr($this->prop['search_filter'], $replaces);
+
+ $this->_debug("S: searching with base {$this->prop['search_base_dn']} for {$this->prop['search_filter']}");
- if ($ldap != $this->ldap) {
- $ldap->close();
+ $res = @ldap_search($this->conn, $this->prop['search_base_dn'], $this->prop['search_filter'], array('uid'));
+ if ($res) {
+ if (($entry = ldap_first_entry($this->conn, $res))
+ && ($bind_dn = ldap_get_dn($this->conn, $entry))
+ ) {
+ $this->_debug("S: search returned dn: $bind_dn");
+ $dn = ldap_explode_dn($bind_dn, 1);
+ $replaces['%dn'] = $dn[0];
}
}
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
+ }
// DN not found
if (empty($replaces['%dn'])) {
@@ -360,13 +309,9 @@ class rcube_ldap extends rcube_addressbook
'code' => 100, 'type' => 'ldap',
'file' => __FILE__, 'line' => __LINE__,
'message' => "DN not found using LDAP search."), true);
- continue;
+ return false;
}
}
-
- if ($this->cache && !empty($replaces['%dn'])) {
- $this->cache->set($cache_key, $replaces['%dn']);
- }
}
// Replace the bind_dn and base_dn variables.
@@ -374,23 +319,6 @@ class rcube_ldap extends rcube_addressbook
$this->base_dn = strtr($this->base_dn, $replaces);
$this->groups_base_dn = strtr($this->groups_base_dn, $replaces);
- // replace placeholders in filter settings
- if (!empty($this->prop['filter']))
- $this->prop['filter'] = strtr($this->prop['filter'], $replaces);
- if (!empty($this->prop['groups']['filter']))
- $this->prop['groups']['filter'] = strtr($this->prop['groups']['filter'], $replaces);
- if (!empty($this->prop['groups']['member_filter']))
- $this->prop['groups']['member_filter'] = strtr($this->prop['groups']['member_filter'], $replaces);
-
- if (!empty($this->prop['group_filters'])) {
- foreach ($this->prop['group_filters'] as $i => $gf) {
- if (!empty($gf['base_dn']))
- $this->prop['group_filters'][$i]['base_dn'] = strtr($gf['base_dn'], $replaces);
- if (!empty($gf['filter']))
- $this->prop['group_filters'][$i]['filter'] = strtr($gf['filter'], $replaces);
- }
- }
-
if (empty($bind_user)) {
$bind_user = $u;
}
@@ -401,13 +329,13 @@ class rcube_ldap extends rcube_addressbook
}
else {
if (!empty($bind_dn)) {
- $this->ready = $this->ldap->bind($bind_dn, $bind_pass);
+ $this->ready = $this->bind($bind_dn, $bind_pass);
}
else if (!empty($this->prop['auth_cid'])) {
- $this->ready = $this->ldap->sasl_bind($this->prop['auth_cid'], $bind_pass, $bind_user);
+ $this->ready = $this->sasl_bind($this->prop['auth_cid'], $bind_pass, $bind_user);
}
else {
- $this->ready = $this->ldap->sasl_bind($bind_user, $bind_pass);
+ $this->ready = $this->sasl_bind($bind_user, $bind_pass);
}
}
@@ -418,10 +346,10 @@ class rcube_ldap extends rcube_addressbook
} // end foreach hosts
- if (!is_resource($this->ldap->conn)) {
+ if (!is_resource($this->conn)) {
rcube::raise_error(array('code' => 100, 'type' => 'ldap',
'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Could not connect to any LDAP server, last tried $host"), true);
+ 'message' => "Could not connect to any LDAP server, last tried $hostname"), true);
return false;
}
@@ -431,47 +359,112 @@ class rcube_ldap extends rcube_addressbook
/**
- * Close connection to LDAP server
+ * Bind connection with (SASL-) user and password
+ *
+ * @param string $authc Authentication user
+ * @param string $pass Bind password
+ * @param string $authz Autorization user
+ *
+ * @return boolean True on success, False on error
*/
- function close()
+ public function sasl_bind($authc, $pass, $authz=null)
{
- if ($this->ldap) {
- $this->ldap->close();
+ if (!$this->conn) {
+ return false;
+ }
+
+ if (!function_exists('ldap_sasl_bind')) {
+ rcube::raise_error(array('code' => 100, 'type' => 'ldap',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Unable to bind: ldap_sasl_bind() not exists"),
+ true, true);
}
+
+ if (!empty($authz)) {
+ $authz = 'u:' . $authz;
+ }
+
+ if (!empty($this->prop['auth_method'])) {
+ $method = $this->prop['auth_method'];
+ }
+ else {
+ $method = 'DIGEST-MD5';
+ }
+
+ $this->_debug("C: Bind [mech: $method, authc: $authc, authz: $authz] [pass: $pass]");
+
+ if (ldap_sasl_bind($this->conn, NULL, $pass, $method, NULL, $authc, $authz)) {
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ $this->_debug("S: ".ldap_error($this->conn));
+
+ rcube::raise_error(array(
+ 'code' => ldap_errno($this->conn), 'type' => 'ldap',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Bind failed for authcid=$authc ".ldap_error($this->conn)),
+ true);
+
+ return false;
}
/**
- * Returns address book name
+ * Bind connection with DN and password
*
- * @return string Address book name
+ * @param string Bind DN
+ * @param string Bind password
+ *
+ * @return boolean True on success, False on error
*/
- function get_name()
+ public function bind($dn, $pass)
{
- return $this->prop['name'];
+ if (!$this->conn) {
+ return false;
+ }
+
+ $this->_debug("C: Bind [dn: $dn] [pass: $pass]");
+
+ if (@ldap_bind($this->conn, $dn, $pass)) {
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ $this->_debug("S: ".ldap_error($this->conn));
+
+ rcube::raise_error(array(
+ 'code' => ldap_errno($this->conn), 'type' => 'ldap',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Bind failed for dn=$dn: ".ldap_error($this->conn)),
+ true);
+
+ return false;
}
/**
- * Set internal list page
- *
- * @param number Page number to list
+ * Close connection to LDAP server
*/
- function set_page($page)
+ function close()
{
- $this->list_page = (int)$page;
- $this->ldap->set_vlv_page($this->list_page, $this->page_size);
+ if ($this->conn)
+ {
+ $this->_debug("C: Close");
+ ldap_unbind($this->conn);
+ $this->conn = null;
+ }
}
+
/**
- * Set internal page size
+ * Returns address book name
*
- * @param number Number of records to display on one page
+ * @return string Address book name
*/
- function set_pagesize($size)
+ function get_name()
{
- $this->page_size = (int)$size;
- $this->ldap->set_vlv_page($this->list_page, $this->page_size);
+ return $this->prop['name'];
}
@@ -531,14 +524,16 @@ class rcube_ldap extends rcube_addressbook
*/
function list_records($cols=null, $subset=0)
{
- if ($this->prop['searchonly'] && empty($this->filter) && !$this->group_id) {
+ if ($this->prop['searchonly'] && empty($this->filter) && !$this->group_id)
+ {
$this->result = new rcube_result_set(0);
$this->result->searchonly = true;
return $this->result;
}
// fetch group members recursively
- if ($this->group_id && $this->group_data['dn']) {
+ if ($this->group_id && $this->group_data['dn'])
+ {
$entries = $this->list_group_members($this->group_data['dn']);
// make list of entries unique and sort it
@@ -552,35 +547,34 @@ class rcube_ldap extends rcube_addressbook
$entries['count'] = count($entries);
$this->result = new rcube_result_set($entries['count'], ($this->list_page-1) * $this->page_size);
}
- else {
- $prop = $this->group_id ? $this->group_data : $this->prop;
- $base_dn = $this->group_id ? $this->group_base_dn : $this->base_dn;
-
- // use global search filter
- if (!empty($this->filter))
- $prop['filter'] = $this->filter;
+ else
+ {
+ // add general filter to query
+ if (!empty($this->prop['filter']) && empty($this->filter))
+ $this->set_search_set($this->prop['filter']);
// exec LDAP search if no result resource is stored
- if ($this->ready && !$this->ldap_result)
- $this->ldap_result = $this->ldap->search($base_dn, $prop['filter'], $prop['scope'], $this->prop['attributes'], $prop);
+ if ($this->conn && !$this->ldap_result)
+ $this->_exec_search();
// count contacts for this user
$this->result = $this->count();
// we have a search result resource
- if ($this->ldap_result && $this->result->count > 0) {
+ if ($this->ldap_result && $this->result->count > 0)
+ {
// sorting still on the ldap server
- if ($this->sort_col && $prop['scope'] !== 'base' && !$this->ldap->vlv_active)
- $this->ldap_result->sort($this->sort_col);
+ if ($this->sort_col && $this->prop['scope'] !== 'base' && !$this->vlv_active)
+ ldap_sort($this->conn, $this->ldap_result, $this->sort_col);
// get all entries from the ldap server
- $entries = $this->ldap_result->entries();
+ $entries = ldap_get_entries($this->conn, $this->ldap_result);
}
} // end else
// start and end of the page
- $start_row = $this->ldap->vlv_active ? 0 : $this->result->first;
+ $start_row = $this->vlv_active ? 0 : $this->result->first;
$start_row = $subset < 0 ? $start_row + $this->page_size + $subset : $start_row;
$last_row = $this->result->first + $this->page_size;
$last_row = $subset != 0 ? $start_row + abs($subset) : $last_row;
@@ -595,10 +589,9 @@ class rcube_ldap extends rcube_addressbook
/**
* Get all members of the given group
*
- * @param string Group DN
- * @param boolean Count only
- * @param array Group entries (if called recursively)
- * @return array Accumulated group members
+ * @param string Group DN
+ * @param array Group entries (if called recursively)
+ * @return array Accumulated group members
*/
function list_group_members($dn, $count = false, $entries = null)
{
@@ -606,34 +599,43 @@ class rcube_ldap extends rcube_addressbook
// fetch group object
if (empty($entries)) {
- $attribs = array_merge(array('dn','objectClass','memberURL'), array_values($this->group_types));
- $entries = $this->ldap->read_entries($dn, '(objectClass=*)', $attribs);
- if ($entries === false) {
+ $result = @ldap_read($this->conn, $dn, '(objectClass=*)', array('dn','objectClass','member','uniqueMember','memberURL'));
+ if ($result === false)
+ {
+ $this->_debug("S: ".ldap_error($this->conn));
return $group_members;
}
+
+ $entries = @ldap_get_entries($this->conn, $result);
}
- for ($i=0; $i < $entries['count']; $i++) {
+ for ($i=0; $i < $entries['count']; $i++)
+ {
$entry = $entries[$i];
- $attrs = array();
-
- foreach ((array)$entry['objectclass'] as $objectclass) {
- if (($member_attr = $this->get_group_member_attr(array($objectclass), ''))
- && ($member_attr = strtolower($member_attr)) && !in_array($member_attr, $attrs)
- ) {
- $members = $this->_list_group_members($dn, $entry, $member_attr, $count);
- $group_members = array_merge($group_members, $members);
- $attrs[] = $member_attr;
- }
- else if (!empty($entry['memberurl'])) {
- $members = $this->_list_group_memberurl($dn, $entry, $count);
- $group_members = array_merge($group_members, $members);
- }
- if ($this->prop['sizelimit'] && count($group_members) > $this->prop['sizelimit']) {
- break 2;
+ if (empty($entry['objectclass']))
+ continue;
+
+ foreach ((array)$entry['objectclass'] as $objectclass)
+ {
+ switch (strtolower($objectclass)) {
+ case "group":
+ case "groupofnames":
+ case "kolabgroupofnames":
+ $group_members = array_merge($group_members, $this->_list_group_members($dn, $entry, 'member', $count));
+ break;
+ case "groupofuniquenames":
+ case "kolabgroupofuniquenames":
+ $group_members = array_merge($group_members, $this->_list_group_members($dn, $entry, 'uniquemember', $count));
+ break;
+ case "groupofurls":
+ $group_members = array_merge($group_members, $this->_list_group_memberurl($dn, $entry, $count));
+ break;
}
}
+
+ if ($this->prop['sizelimit'] && count($group_members) > $this->prop['sizelimit'])
+ break;
}
return array_filter($group_members);
@@ -645,7 +647,6 @@ class rcube_ldap extends rcube_addressbook
* @param string Group DN
* @param array Group entry
* @param string Member attribute to use
- * @param boolean Count only
* @return array Accumulated group members
*/
private function _list_group_members($dn, $entry, $attr, $count)
@@ -653,23 +654,28 @@ class rcube_ldap extends rcube_addressbook
// Use the member attributes to return an array of member ldap objects
// NOTE that the member attribute is supposed to contain a DN
$group_members = array();
- if (empty($entry[$attr])) {
+ if (empty($entry[$attr]))
return $group_members;
- }
// read these attributes for all members
- $attrib = $count ? array('dn','objectClass') : $this->prop['list_attributes'];
- $attrib = array_merge($attrib, array_values($this->group_types));
+ $attrib = $count ? array('dn') : array_values($this->fieldmap);
+ $attrib[] = 'objectClass';
+ $attrib[] = 'member';
+ $attrib[] = 'uniqueMember';
$attrib[] = 'memberURL';
- $filter = $this->prop['groups']['member_filter'] ? $this->prop['groups']['member_filter'] : '(objectclass=*)';
-
- for ($i=0; $i < $entry[$attr]['count']; $i++) {
+ for ($i=0; $i < $entry[$attr]['count']; $i++)
+ {
if (empty($entry[$attr][$i]))
continue;
- $members = $this->ldap->read_entries($entry[$attr][$i], $filter, $attrib);
- if ($members == false) {
+ $result = @ldap_read($this->conn, $entry[$attr][$i], '(objectclass=*)',
+ $attrib, 0, (int)$this->prop['sizelimit'], (int)$this->prop['timelimit']);
+
+ $members = @ldap_get_entries($this->conn, $result);
+ if ($members == false)
+ {
+ $this->_debug("S: ".ldap_error($this->conn));
$members = array();
}
@@ -695,22 +701,34 @@ class rcube_ldap extends rcube_addressbook
{
$group_members = array();
- for ($i=0; $i < $entry['memberurl']['count']; $i++) {
+ for ($i=0; $i < $entry['memberurl']['count']; $i++)
+ {
// extract components from url
if (!preg_match('!ldap:///([^\?]+)\?\?(\w+)\?(.*)$!', $entry['memberurl'][$i], $m))
continue;
// add search filter if any
$filter = $this->filter ? '(&(' . $m[3] . ')(' . $this->filter . '))' : $m[3];
- $attrs = $count ? array('dn','objectClass') : $this->prop['list_attributes'];
- if ($result = $this->ldap->search($m[1], $filter, $m[2], $attrs, $this->group_data)) {
- $entries = $result->entries();
- for ($j = 0; $j < $entries['count']; $j++) {
- if ($this->is_group_entry($entries[$j]) && ($nested_group_members = $this->list_group_members($entries[$j]['dn'], $count)))
- $group_members = array_merge($group_members, $nested_group_members);
- else
- $group_members[] = $entries[$j];
- }
+ $func = $m[2] == 'sub' ? 'ldap_search' : ($m[2] == 'base' ? 'ldap_read' : 'ldap_list');
+
+ $attrib = $count ? array('dn') : array_values($this->fieldmap);
+ if ($result = @$func($this->conn, $m[1], $filter,
+ $attrib, 0, (int)$this->prop['sizelimit'], (int)$this->prop['timelimit'])
+ ) {
+ $this->_debug("S: ".ldap_count_entries($this->conn, $result)." record(s) for ".$m[1]);
+ }
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return $group_members;
+ }
+
+ $entries = @ldap_get_entries($this->conn, $result);
+ for ($j = 0; $j < $entries['count']; $j++)
+ {
+ if ($nested_group_members = $this->list_group_members($entries[$j]['dn'], $count))
+ $group_members = array_merge($group_members, $nested_group_members);
+ else
+ $group_members[] = $entries[$j];
}
}
@@ -746,11 +764,14 @@ class rcube_ldap extends rcube_addressbook
$mode = intval($mode);
// special treatment for ID-based search
- if ($fields == 'ID' || $fields == $this->primary_key) {
+ if ($fields == 'ID' || $fields == $this->primary_key)
+ {
$ids = !is_array($value) ? explode(',', $value) : $value;
$result = new rcube_result_set();
- foreach ($ids as $id) {
- if ($rec = $this->get_record($id, true)) {
+ foreach ($ids as $id)
+ {
+ if ($rec = $this->get_record($id, true))
+ {
$result->add($rec);
$result->count++;
}
@@ -762,20 +783,34 @@ class rcube_ldap extends rcube_addressbook
$rcube = rcube::get_instance();
$list_fields = $rcube->config->get('contactlist_fields');
- if ($this->prop['vlv_search'] && $this->ready && join(',', (array)$fields) == join(',', $list_fields)) {
+ if ($this->prop['vlv_search'] && $this->conn && join(',', (array)$fields) == join(',', $list_fields))
+ {
+ // add general filter to query
+ if (!empty($this->prop['filter']) && empty($this->filter))
+ $this->set_search_set($this->prop['filter']);
+
+ // set VLV controls with encoded search string
+ $this->_vlv_set_controls($this->prop, $this->list_page, $this->page_size, $value);
+
+ $function = $this->_scope2func($this->prop['scope']);
+ $this->ldap_result = @$function($this->conn, $this->base_dn, $this->filter ? $this->filter : '(objectclass=*)',
+ array_values($this->fieldmap), 0, $this->page_size, (int)$this->prop['timelimit']);
+
$this->result = new rcube_result_set(0);
- $search_suffix = $this->prop['fuzzy_search'] && $mode != 1 ? '*' : '';
- $ldap_data = $this->ldap->search($this->base_dn, $this->prop['filter'], $this->prop['scope'], $this->prop['attributes'],
- array('search' => $value . $search_suffix /*, 'sort' => $this->prop['sort'] */));
- if ($ldap_data === false) {
+ if (!$this->ldap_result) {
+ $this->_debug("S: ".ldap_error($this->conn));
return $this->result;
}
+ $this->_debug("S: ".ldap_count_entries($this->conn, $this->ldap_result)." record(s)");
+
// get all entries of this page and post-filter those that really match the query
- $search = mb_strtolower($value);
- foreach ($ldap_data as $i => $entry) {
- $rec = $this->_ldap2result($entry);
+ $search = mb_strtolower($value);
+ $entries = ldap_get_entries($this->conn, $this->ldap_result);
+
+ for ($i = 0; $i < $entries['count']; $i++) {
+ $rec = $this->_ldap2result($entries[$i]);
foreach ($fields as $f) {
foreach ((array)$rec[$f] as $val) {
if ($this->compare_search_value($f, $val, $search, $mode)) {
@@ -801,27 +836,31 @@ class rcube_ldap extends rcube_addressbook
}
}
- if ($fields == '*') {
+ if ($fields == '*')
+ {
// search_fields are required for fulltext search
- if (empty($this->prop['search_fields'])) {
+ if (empty($this->prop['search_fields']))
+ {
$this->set_error(self::ERROR_SEARCH, 'nofulltextsearch');
$this->result = new rcube_result_set();
return $this->result;
}
- if (is_array($this->prop['search_fields'])) {
+ if (is_array($this->prop['search_fields']))
+ {
foreach ($this->prop['search_fields'] as $field) {
- $filter .= "($field=$wp" . rcube_ldap_generic::quote_string($value) . "$ws)";
+ $filter .= "($field=$wp" . $this->_quote_string($value) . "$ws)";
}
}
}
- else {
+ else
+ {
foreach ((array)$fields as $idx => $field) {
$val = is_array($value) ? $value[$idx] : $value;
if ($attrs = $this->_map_field($field)) {
if (count($attrs) > 1)
$filter .= '(|';
foreach ($attrs as $f)
- $filter .= "($f=$wp" . rcube_ldap_generic::quote_string($val) . "$ws)";
+ $filter .= "($f=$wp" . $this->_quote_string($val) . "$ws)";
if (count($attrs) > 1)
$filter .= ')';
}
@@ -856,6 +895,7 @@ class rcube_ldap extends rcube_addressbook
// set filter string and execute search
$this->set_search_set($filter);
+ $this->_exec_search();
if ($select)
$this->list_records();
@@ -874,21 +914,20 @@ class rcube_ldap extends rcube_addressbook
function count()
{
$count = 0;
- if ($this->ldap_result) {
- $count = $this->ldap_result->count();
+ if ($this->conn && $this->ldap_result) {
+ $count = $this->vlv_active ? $this->vlv_count : ldap_count_entries($this->conn, $this->ldap_result);
}
else if ($this->group_id && $this->group_data['dn']) {
$count = count($this->list_group_members($this->group_data['dn'], true));
}
- // We have a connection but no result set, attempt to get one.
- else if ($this->ready) {
- $prop = $this->group_id ? $this->group_data : $this->prop;
- $base_dn = $this->group_id ? $this->group_base_dn : $this->base_dn;
-
- if (!empty($this->filter)) { // Use global search filter
- $prop['filter'] = $this->filter;
+ else if ($this->conn) {
+ // We have a connection but no result set, attempt to get one.
+ if (empty($this->filter)) {
+ // The filter is not set, set it.
+ $this->filter = $this->prop['filter'];
}
- $count = $this->ldap->search($base_dn, $prop['filter'], $prop['scope'], array('dn'), $prop, true);
+
+ $count = (int) $this->_exec_search(true);
}
return new rcube_result_set($count, ($this->list_page-1) * $this->page_size);
@@ -918,16 +957,28 @@ class rcube_ldap extends rcube_addressbook
{
$res = $this->result = null;
- if ($this->ready && $dn) {
+ if ($this->conn && $dn)
+ {
$dn = self::dn_decode($dn);
- if ($rec = $this->ldap->get_entry($dn)) {
- $rec = array_change_key_case($rec, CASE_LOWER);
+ $this->_debug("C: Read [dn: $dn] [(objectclass=*)]");
+
+ if ($ldap_result = @ldap_read($this->conn, $dn, '(objectclass=*)', array_values($this->fieldmap))) {
+ $this->_debug("S: OK");
+
+ $entry = ldap_first_entry($this->conn, $ldap_result);
+
+ if ($entry && ($rec = ldap_get_attributes($this->conn, $entry))) {
+ $rec = array_change_key_case($rec, CASE_LOWER);
+ }
+ }
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
}
// Use ldap_list to get subentries like country (c) attribute (#1488123)
if (!empty($rec) && $this->sub_filter) {
- if ($entries = $this->ldap->list_entries($dn, $this->sub_filter, array_keys($this->prop['sub_fields']))) {
+ if ($entries = $this->ldap_list($dn, $this->sub_filter, array_keys($this->prop['sub_fields']))) {
foreach ($entries as $entry) {
$lrec = array_change_key_case($entry, CASE_LOWER);
$rec = array_merge($lrec, $rec);
@@ -939,7 +990,7 @@ class rcube_ldap extends rcube_addressbook
// Add in the dn for the entry.
$rec['dn'] = $dn;
$res = $this->_ldap2result($rec);
- $this->result = new rcube_result_set(1);
+ $this->result = new rcube_result_set();
$this->result->add($res);
}
}
@@ -986,6 +1037,7 @@ class rcube_ldap extends rcube_addressbook
$mail_field = $this->fieldmap['email'];
// try to extract surname and firstname from displayname
+ $reverse_map = array_flip($this->fieldmap);
$name_parts = preg_split('/[\s,.]+/', $save_data['name']);
if ($sn_field && $missing[$sn_field]) {
@@ -1052,12 +1104,12 @@ class rcube_ldap extends rcube_addressbook
}
// Build the new entries DN.
- $dn = $this->prop['LDAP_rdn'].'='.rcube_ldap_generic::quote_string($newentry[$this->prop['LDAP_rdn']], true).','.$this->base_dn;
+ $dn = $this->prop['LDAP_rdn'].'='.$this->_quote_string($newentry[$this->prop['LDAP_rdn']], true).','.$this->base_dn;
// Remove attributes that need to be added separately (child objects)
$xfields = array();
if (!empty($this->prop['sub_fields']) && is_array($this->prop['sub_fields'])) {
- foreach (array_keys($this->prop['sub_fields']) as $xf) {
+ foreach ($this->prop['sub_fields'] as $xf => $xclass) {
if (!empty($newentry[$xf])) {
$xfields[$xf] = $newentry[$xf];
unset($newentry[$xf]);
@@ -1065,19 +1117,19 @@ class rcube_ldap extends rcube_addressbook
}
}
- if (!$this->ldap->add($dn, $newentry)) {
+ if (!$this->ldap_add($dn, $newentry)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
foreach ($xfields as $xidx => $xf) {
- $xdn = $xidx.'='.rcube_ldap_generic::quote_string($xf).','.$dn;
+ $xdn = $xidx.'='.$this->_quote_string($xf).','.$dn;
$xf = array(
$xidx => $xf,
'objectClass' => (array) $this->prop['sub_fields'][$xidx],
);
- $this->ldap->add($xdn, $xf);
+ $this->ldap_add($xdn, $xf);
}
$dn = self::dn_encode($dn);
@@ -1120,7 +1172,7 @@ class rcube_ldap extends rcube_addressbook
}
}
- foreach ($this->fieldmap as $fld) {
+ foreach ($this->fieldmap as $col => $fld) {
if ($fld) {
$val = $ldap_data[$fld];
$old = $old_data[$fld];
@@ -1183,7 +1235,7 @@ class rcube_ldap extends rcube_addressbook
// Update the entry as required.
if (!empty($deletedata)) {
// Delete the fields.
- if (!$this->ldap->mod_del($dn, $deletedata)) {
+ if (!$this->ldap_mod_del($dn, $deletedata)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1193,17 +1245,17 @@ class rcube_ldap extends rcube_addressbook
// Handle RDN change
if ($replacedata[$this->prop['LDAP_rdn']]) {
$newdn = $this->prop['LDAP_rdn'].'='
- .rcube_ldap_generic::quote_string($replacedata[$this->prop['LDAP_rdn']], true)
+ .$this->_quote_string($replacedata[$this->prop['LDAP_rdn']], true)
.','.$this->base_dn;
if ($dn != $newdn) {
$newrdn = $this->prop['LDAP_rdn'].'='
- .rcube_ldap_generic::quote_string($replacedata[$this->prop['LDAP_rdn']], true);
+ .$this->_quote_string($replacedata[$this->prop['LDAP_rdn']], true);
unset($replacedata[$this->prop['LDAP_rdn']]);
}
}
// Replace the fields.
if (!empty($replacedata)) {
- if (!$this->ldap->mod_replace($dn, $replacedata)) {
+ if (!$this->ldap_mod_replace($dn, $replacedata)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1219,8 +1271,8 @@ class rcube_ldap extends rcube_addressbook
// remove sub-entries
if (!empty($subdeldata)) {
foreach ($subdeldata as $fld => $val) {
- $subdn = $fld.'='.rcube_ldap_generic::quote_string($val).','.$dn;
- if (!$this->ldap->delete($subdn)) {
+ $subdn = $fld.'='.$this->_quote_string($val).','.$dn;
+ if (!$this->ldap_delete($subdn)) {
return false;
}
}
@@ -1228,7 +1280,7 @@ class rcube_ldap extends rcube_addressbook
if (!empty($newdata)) {
// Add the fields.
- if (!$this->ldap->mod_add($dn, $newdata)) {
+ if (!$this->ldap_mod_add($dn, $newdata)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1236,7 +1288,7 @@ class rcube_ldap extends rcube_addressbook
// Handle RDN change
if (!empty($newrdn)) {
- if (!$this->ldap->rename($dn, $newrdn, null, true)) {
+ if (!$this->ldap_rename($dn, $newrdn, null, true)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1247,7 +1299,8 @@ class rcube_ldap extends rcube_addressbook
// change the group membership of the contact
if ($this->groups) {
$group_ids = $this->get_record_groups($dn);
- foreach (array_keys($group_ids) as $group_id) {
+ foreach ($group_ids as $group_id)
+ {
$this->remove_from_group($group_id, $dn);
$this->add_to_group($group_id, $newdn);
}
@@ -1259,12 +1312,12 @@ class rcube_ldap extends rcube_addressbook
// add sub-entries
if (!empty($subnewdata)) {
foreach ($subnewdata as $fld => $val) {
- $subdn = $fld.'='.rcube_ldap_generic::quote_string($val).','.$dn;
+ $subdn = $fld.'='.$this->_quote_string($val).','.$dn;
$xf = array(
$fld => $val,
'objectClass' => (array) $this->prop['sub_fields'][$fld],
);
- $this->ldap->add($subdn, $xf);
+ $this->ldap_add($subdn, $xf);
}
}
@@ -1292,9 +1345,9 @@ class rcube_ldap extends rcube_addressbook
// Need to delete all sub-entries first
if ($this->sub_filter) {
- if ($entries = $this->ldap->list_entries($dn, $this->sub_filter)) {
+ if ($entries = $this->ldap_list($dn, $this->sub_filter)) {
foreach ($entries as $entry) {
- if (!$this->ldap->delete($entry['dn'])) {
+ if (!$this->ldap_delete($entry['dn'])) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1303,7 +1356,7 @@ class rcube_ldap extends rcube_addressbook
}
// Delete the record.
- if (!$this->ldap->delete($dn)) {
+ if (!$this->ldap_delete($dn)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1312,7 +1365,7 @@ class rcube_ldap extends rcube_addressbook
if ($this->groups) {
$dn = self::dn_encode($dn);
$group_ids = $this->get_record_groups($dn);
- foreach (array_keys($group_ids) as $group_id) {
+ foreach ($group_ids as $group_id) {
$this->remove_from_group($group_id, $dn);
}
}
@@ -1327,8 +1380,8 @@ class rcube_ldap extends rcube_addressbook
*/
function delete_all()
{
- // searching for contact entries
- $dn_list = $this->ldap->list_entries($this->base_dn, $this->prop['filter'] ? $this->prop['filter'] : '(objectclass=*)');
+ //searching for contact entries
+ $dn_list = $this->ldap_list($this->base_dn, $this->prop['filter'] ? $this->prop['filter'] : '(objectclass=*)');
if (!empty($dn_list)) {
foreach ($dn_list as $idx => $entry) {
@@ -1345,10 +1398,6 @@ class rcube_ldap extends rcube_addressbook
*/
protected function add_autovalues(&$attrs)
{
- if (empty($this->prop['autovalues'])) {
- return;
- }
-
$attrvals = array();
foreach ($attrs as $k => $v) {
$attrvals['{'.$k.'}'] = is_array($v) ? $v[0] : $v;
@@ -1359,16 +1408,7 @@ class rcube_ldap extends rcube_addressbook
if (strpos($templ, '(') !== false) {
// replace {attr} placeholders with (escaped!) attribute values to be safely eval'd
$code = preg_replace('/\{\w+\}/', '', strtr($templ, array_map('addslashes', $attrvals)));
- $fn = create_function('', "return ($code);");
- if (!$fn) {
- rcube::raise_error(array(
- 'code' => 505, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Expression parse error on: ($code)"), true, false);
- continue;
- }
-
- $attrs[$lf] = $fn();
+ $attrs[$lf] = eval("return ($code);");
}
else {
// replace {attr} placeholders with concrete attribute values
@@ -1378,26 +1418,120 @@ class rcube_ldap extends rcube_addressbook
}
}
+ /**
+ * Execute the LDAP search based on the stored credentials
+ */
+ private function _exec_search($count = false)
+ {
+ if ($this->ready)
+ {
+ $filter = $this->filter ? $this->filter : '(objectclass=*)';
+ $function = $this->_scope2func($this->prop['scope'], $ns_function);
+
+ $this->_debug("C: Search [$filter][dn: $this->base_dn]");
+
+ // when using VLV, we get the total count by...
+ if (!$count && $function != 'ldap_read' && $this->prop['vlv'] && !$this->group_id) {
+ // ...either reading numSubOrdinates attribute
+ if ($this->prop['numsub_filter'] && ($result_count = @$ns_function($this->conn, $this->base_dn, $this->prop['numsub_filter'], array('numSubOrdinates'), 0, 0, 0))) {
+ $counts = ldap_get_entries($this->conn, $result_count);
+ for ($this->vlv_count = $j = 0; $j < $counts['count']; $j++)
+ $this->vlv_count += $counts[$j]['numsubordinates'][0];
+ $this->_debug("D: total numsubordinates = " . $this->vlv_count);
+ }
+ else if (!function_exists('ldap_parse_virtuallist_control')) // ...or by fetching all records dn and count them
+ $this->vlv_count = $this->_exec_search(true);
+
+ $this->vlv_active = $this->_vlv_set_controls($this->prop, $this->list_page, $this->page_size);
+ }
+
+ // only fetch dn for count (should keep the payload low)
+ $attrs = $count ? array('dn') : array_values($this->fieldmap);
+ if ($this->ldap_result = @$function($this->conn, $this->base_dn, $filter,
+ $attrs, 0, (int)$this->prop['sizelimit'], (int)$this->prop['timelimit'])
+ ) {
+ // when running on a patched PHP we can use the extended functions to retrieve the total count from the LDAP search result
+ if ($this->vlv_active && function_exists('ldap_parse_virtuallist_control')) {
+ if (ldap_parse_result($this->conn, $this->ldap_result,
+ $errcode, $matcheddn, $errmsg, $referrals, $serverctrls)
+ && $serverctrls // can be null e.g. in case of adm. limit error
+ ) {
+ ldap_parse_virtuallist_control($this->conn, $serverctrls,
+ $last_offset, $this->vlv_count, $vresult);
+ $this->_debug("S: VLV result: last_offset=$last_offset; content_count=$this->vlv_count");
+ }
+ else {
+ $this->_debug("S: ".($errmsg ? $errmsg : ldap_error($this->conn)));
+ }
+ }
+
+ $entries_count = ldap_count_entries($this->conn, $this->ldap_result);
+ $this->_debug("S: $entries_count record(s)");
+
+ return $count ? $entries_count : true;
+ }
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Choose the right PHP function according to scope property
+ */
+ private function _scope2func($scope, &$ns_function = null)
+ {
+ switch ($scope) {
+ case 'sub':
+ $function = $ns_function = 'ldap_search';
+ break;
+ case 'base':
+ $function = $ns_function = 'ldap_read';
+ break;
+ default:
+ $function = 'ldap_list';
+ $ns_function = 'ldap_read';
+ break;
+ }
+
+ return $function;
+ }
+
+ /**
+ * Set server controls for Virtual List View (paginated listing)
+ */
+ private function _vlv_set_controls($prop, $list_page, $page_size, $search = null)
+ {
+ $sort_ctrl = array('oid' => "1.2.840.113556.1.4.473", 'value' => $this->_sort_ber_encode((array)$prop['sort']));
+ $vlv_ctrl = array('oid' => "2.16.840.1.113730.3.4.9", 'value' => $this->_vlv_ber_encode(($offset = ($list_page-1) * $page_size + 1), $page_size, $search), 'iscritical' => true);
+
+ $sort = (array)$prop['sort'];
+ $this->_debug("C: set controls sort=" . join(' ', unpack('H'.(strlen($sort_ctrl['value'])*2), $sort_ctrl['value'])) . " ($sort[0]);"
+ . " vlv=" . join(' ', (unpack('H'.(strlen($vlv_ctrl['value'])*2), $vlv_ctrl['value']))) . " ($offset/$page_size)");
+
+ if (!ldap_set_option($this->conn, LDAP_OPT_SERVER_CONTROLS, array($sort_ctrl, $vlv_ctrl))) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ $this->set_error(self::ERROR_SEARCH, 'vlvnotsupported');
+ return false;
+ }
+
+ return true;
+ }
+
/**
* Converts LDAP entry into an array
*/
private function _ldap2result($rec)
{
- $out = array('_type' => 'person');
- $fieldmap = $this->fieldmap;
+ $out = array();
if ($rec['dn'])
$out[$this->primary_key] = self::dn_encode($rec['dn']);
- // determine record type
- if ($this->is_group_entry($rec)) {
- $out['_type'] = 'group';
- $out['readonly'] = true;
- $fieldmap['name'] = $this->group_data['name_attr'] ? $this->group_data['name_attr'] : $this->prop['groups']['name_attr'];
- }
-
- foreach ($fieldmap as $rf => $lf)
+ foreach ($this->fieldmap as $rf => $lf)
{
for ($i=0; $i < $rec[$lf]['count']; $i++) {
if (!($value = $rec[$lf][$i]))
@@ -1459,10 +1593,8 @@ class rcube_ldap extends rcube_addressbook
if (is_array($colprop['serialized'])) {
foreach ($colprop['serialized'] as $subtype => $delim) {
$key = $col.':'.$subtype;
- foreach ((array)$save_cols[$key] as $i => $val) {
- $values = array($val['street'], $val['locality'], $val['zipcode'], $val['country']);
- $save_cols[$key][$i] = count(array_filter($values)) ? join($delim, $values) : null;
- }
+ foreach ((array)$save_cols[$key] as $i => $val)
+ $save_cols[$key][$i] = join($delim, array($val['street'], $val['locality'], $val['zipcode'], $val['country']));
}
}
}
@@ -1500,11 +1632,11 @@ class rcube_ldap extends rcube_addressbook
{
// list of known attribute aliases
static $aliases = array(
- 'gn' => 'givenname',
+ 'gn' => 'givenname',
'rfc822mailbox' => 'email',
- 'userid' => 'uid',
- 'emailaddress' => 'email',
- 'pkcs9email' => 'email',
+ 'userid' => 'uid',
+ 'emailaddress' => 'email',
+ 'pkcs9email' => 'email',
);
list($name, $limit) = explode(':', $namev, 2);
@@ -1513,15 +1645,6 @@ class rcube_ldap extends rcube_addressbook
return (isset($aliases[$name]) ? $aliases[$name] : $name) . $suffix;
}
- /**
- * Determines whether the given LDAP entry is a group record
- */
- private function is_group_entry($entry)
- {
- $classes = array_map('strtolower', (array)$entry['objectclass']);
-
- return count(array_intersect(array_keys($this->group_types), $classes)) > 0;
- }
/**
* Prints debug info to the log
@@ -1538,27 +1661,55 @@ class rcube_ldap extends rcube_addressbook
* Activate/deactivate debug mode
*
* @param boolean $dbg True if LDAP commands should be logged
+ * @access public
*/
function set_debug($dbg = true)
{
$this->debug = $dbg;
+ }
- if ($this->ldap) {
- $this->ldap->set_debug($dbg);
- }
+
+ /**
+ * Quotes attribute value string
+ *
+ * @param string $str Attribute value
+ * @param bool $dn True if the attribute is a DN
+ *
+ * @return string Quoted string
+ */
+ private static function _quote_string($str, $dn=false)
+ {
+ // take firt entry if array given
+ if (is_array($str))
+ $str = reset($str);
+
+ if ($dn)
+ $replace = array(','=>'\2c', '='=>'\3d', '+'=>'\2b', '<'=>'\3c',
+ '>'=>'\3e', ';'=>'\3b', '\\'=>'\5c', '"'=>'\22', '#'=>'\23');
+ else
+ $replace = array('*'=>'\2a', '('=>'\28', ')'=>'\29', '\\'=>'\5c',
+ '/'=>'\2f');
+
+ return strtr($str, $replace);
}
/**
* Setter for the current group
+ * (empty, has to be re-implemented by extending class)
*/
function set_group($group_id)
{
- if ($group_id) {
+ if ($group_id)
+ {
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
+
$this->group_id = $group_id;
- $this->group_data = $this->get_group_entry($group_id);
+ $this->group_data = $group_cache[$group_id];
}
- else {
+ else
+ {
$this->group_id = 0;
$this->group_data = null;
}
@@ -1577,13 +1728,15 @@ class rcube_ldap extends rcube_addressbook
*/
function list_groups($search = null, $mode = 0)
{
- if (!$this->groups) {
+ if (!$this->groups)
return array();
- }
- $group_cache = $this->_fetch_groups();
- $groups = array();
+ // use cached list for searching
+ $this->cache->expunge();
+ if (!$search || ($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
+ $groups = array();
if ($search) {
foreach ($group_cache as $group) {
if ($this->compare_search_value('name', $group['name'], $search, $mode)) {
@@ -1591,9 +1744,8 @@ class rcube_ldap extends rcube_addressbook
}
}
}
- else {
+ else
$groups = $group_cache;
- }
return array_values($groups);
}
@@ -1601,140 +1753,80 @@ class rcube_ldap extends rcube_addressbook
/**
* Fetch groups from server
*/
- private function _fetch_groups($vlv_page = null)
+ private function _fetch_groups($vlv_page = 0)
{
- // special case: list groups from 'group_filters' config
- if ($vlv_page === null && !empty($this->prop['group_filters'])) {
- $groups = array();
-
- // list regular groups configuration as special filter
- if (!empty($this->prop['groups']['filter'])) {
- $id = '__groups__';
- $groups[$id] = array('ID' => $id, 'name' => rcube_label('groups'), 'virtual' => true) + $this->prop['groups'];
- }
-
- foreach ($this->prop['group_filters'] as $id => $prop) {
- $groups[$id] = $prop + array('ID' => $id, 'name' => ucfirst($id), 'virtual' => true, 'base_dn' => $this->base_dn);
- }
-
- return $groups;
- }
-
- if ($this->cache && $vlv_page === null && ($groups = $this->cache->get('groups')) !== null) {
- return $groups;
- }
-
- $base_dn = $this->groups_base_dn;
- $filter = $this->prop['groups']['filter'];
- $scope = $this->prop['groups']['scope'];
- $name_attr = $this->prop['groups']['name_attr'];
+ $base_dn = $this->groups_base_dn;
+ $filter = $this->prop['groups']['filter'];
+ $name_attr = $this->prop['groups']['name_attr'];
$email_attr = $this->prop['groups']['email_attr'] ? $this->prop['groups']['email_attr'] : 'mail';
$sort_attrs = $this->prop['groups']['sort'] ? (array)$this->prop['groups']['sort'] : array($name_attr);
- $sort_attr = $sort_attrs[0];
+ $sort_attr = $sort_attrs[0];
- $ldap = $this->ldap;
+ $this->_debug("C: Search [$filter][dn: $base_dn]");
// use vlv to list groups
if ($this->prop['groups']['vlv']) {
$page_size = 200;
- if (!$this->prop['groups']['sort']) {
+ if (!$this->prop['groups']['sort'])
$this->prop['groups']['sort'] = $sort_attrs;
- }
-
- $ldap = clone $this->ldap;
- $ldap->set_config($this->prop['groups']);
- $ldap->set_vlv_page($vlv_page+1, $page_size);
+ $vlv_active = $this->_vlv_set_controls($this->prop['groups'], $vlv_page+1, $page_size);
}
- $attrs = array_unique(array('dn', 'objectClass', $name_attr, $email_attr, $sort_attr));
- $ldap_data = $ldap->search($base_dn, $filter, $scope, $attrs, $this->prop['groups']);
-
- if ($ldap_data === false) {
+ $function = $this->_scope2func($this->prop['groups']['scope'], $ns_function);
+ $res = @$function($this->conn, $base_dn, $filter, array_unique(array('dn', 'objectClass', $name_attr, $email_attr, $sort_attr)));
+ if ($res === false)
+ {
+ $this->_debug("S: ".ldap_error($this->conn));
return array();
}
- $groups = array();
- $group_sortnames = array();
- $group_count = $ldap_data->count();
+ $ldap_data = ldap_get_entries($this->conn, $res);
+ $this->_debug("S: ".ldap_count_entries($this->conn, $res)." record(s)");
- foreach ($ldap_data as $entry) {
- if (!$entry['dn']) // DN is mandatory
- $entry['dn'] = $ldap_data->get_dn();
-
- $group_name = is_array($entry[$name_attr]) ? $entry[$name_attr][0] : $entry[$name_attr];
- $group_id = self::dn_encode($entry['dn']);
+ $groups = array();
+ $group_sortnames = array();
+ $group_count = $ldap_data["count"];
+ for ($i=0; $i < $group_count; $i++)
+ {
+ $group_name = is_array($ldap_data[$i][$name_attr]) ? $ldap_data[$i][$name_attr][0] : $ldap_data[$i][$name_attr];
+ $group_id = self::dn_encode($group_name);
$groups[$group_id]['ID'] = $group_id;
- $groups[$group_id]['dn'] = $entry['dn'];
+ $groups[$group_id]['dn'] = $ldap_data[$i]['dn'];
$groups[$group_id]['name'] = $group_name;
- $groups[$group_id]['member_attr'] = $this->get_group_member_attr($entry['objectclass']);
+ $groups[$group_id]['member_attr'] = $this->get_group_member_attr($ldap_data[$i]['objectclass']);
// list email attributes of a group
- for ($j=0; $entry[$email_attr] && $j < $entry[$email_attr]['count']; $j++) {
- if (strpos($entry[$email_attr][$j], '@') > 0)
- $groups[$group_id]['email'][] = $entry[$email_attr][$j];
+ for ($j=0; $ldap_data[$i][$email_attr] && $j < $ldap_data[$i][$email_attr]['count']; $j++) {
+ if (strpos($ldap_data[$i][$email_attr][$j], '@') > 0)
+ $groups[$group_id]['email'][] = $ldap_data[$i][$email_attr][$j];
}
- $group_sortnames[] = mb_strtolower($entry[$sort_attr][0]);
+ $group_sortnames[] = mb_strtolower($ldap_data[$i][$sort_attr][0]);
}
// recursive call can exit here
- if ($vlv_page > 0) {
+ if ($vlv_page > 0)
return $groups;
- }
// call recursively until we have fetched all groups
- while ($this->prop['groups']['vlv'] && $group_count == $page_size) {
- $next_page = $this->_fetch_groups(++$vlv_page);
- $groups = array_merge($groups, $next_page);
+ while ($vlv_active && $group_count == $page_size)
+ {
+ $next_page = $this->_fetch_groups(++$vlv_page);
+ $groups = array_merge($groups, $next_page);
$group_count = count($next_page);
}
// when using VLV the list of groups is already sorted
- if (!$this->prop['groups']['vlv']) {
+ if (!$this->prop['groups']['vlv'])
array_multisort($group_sortnames, SORT_ASC, SORT_STRING, $groups);
- }
// cache this
- if ($this->cache) {
- $this->cache->set('groups', $groups);
- }
+ $this->cache->set('groups', $groups);
return $groups;
}
/**
- * Fetch a group entry from LDAP and save in local cache
- */
- private function get_group_entry($group_id)
- {
- $group_cache = $this->_fetch_groups();
-
- // add group record to cache if it isn't yet there
- if (!isset($group_cache[$group_id])) {
- $name_attr = $this->prop['groups']['name_attr'];
- $dn = self::dn_decode($group_id);
-
- if ($list = $this->ldap->read_entries($dn, '(objectClass=*)', array('dn','objectClass','member','uniqueMember','memberURL',$name_attr,$this->fieldmap['email']))) {
- $entry = $list[0];
- $group_name = is_array($entry[$name_attr]) ? $entry[$name_attr][0] : $entry[$name_attr];
- $group_cache[$group_id]['ID'] = $group_id;
- $group_cache[$group_id]['dn'] = $dn;
- $group_cache[$group_id]['name'] = $group_name;
- $group_cache[$group_id]['member_attr'] = $this->get_group_member_attr($entry['objectclass']);
- }
- else {
- $group_cache[$group_id] = false;
- }
-
- if ($this->cache) {
- $this->cache->set('groups', $group_cache);
- }
- }
-
- return $group_cache[$group_id];
- }
-
- /**
* Get group properties such as name and email address(es)
*
* @param string Group identifier
@@ -1742,7 +1834,10 @@ class rcube_ldap extends rcube_addressbook
*/
function get_group($group_id)
{
- $group_data = $this->get_group_entry($group_id);
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
+
+ $group_data = $group_cache[$group_id];
unset($group_data['dn'], $group_data['member_attr']);
return $group_data;
@@ -1756,24 +1851,24 @@ class rcube_ldap extends rcube_addressbook
*/
function create_group($group_name)
{
- $new_dn = 'cn=' . rcube_ldap_generic::quote_string($group_name, true) . ',' . $this->groups_base_dn;
- $new_gid = self::dn_encode($new_dn);
+ $base_dn = $this->groups_base_dn;
+ $new_dn = "cn=$group_name,$base_dn";
+ $new_gid = self::dn_encode($group_name);
$member_attr = $this->get_group_member_attr();
- $name_attr = $this->prop['groups']['name_attr'] ? $this->prop['groups']['name_attr'] : 'cn';
- $new_entry = array(
+ $name_attr = $this->prop['groups']['name_attr'] ? $this->prop['groups']['name_attr'] : 'cn';
+
+ $new_entry = array(
'objectClass' => $this->prop['groups']['object_classes'],
$name_attr => $group_name,
$member_attr => '',
);
- if (!$this->ldap->add($new_dn, $new_entry)) {
+ if (!$this->ldap_add($new_dn, $new_entry)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
- if ($this->cache) {
- $this->cache->remove('groups');
- }
+ $this->cache->remove('groups');
return array('id' => $new_gid, 'name' => $group_name);
}
@@ -1786,18 +1881,19 @@ class rcube_ldap extends rcube_addressbook
*/
function delete_group($group_id)
{
- $group_cache = $this->_fetch_groups();
- $del_dn = $group_cache[$group_id]['dn'];
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
+
+ $base_dn = $this->groups_base_dn;
+ $group_name = $group_cache[$group_id]['name'];
+ $del_dn = "cn=$group_name,$base_dn";
- if (!$this->ldap->delete($del_dn)) {
+ if (!$this->ldap_delete($del_dn)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
- if ($this->cache) {
- unset($group_cache[$group_id]);
- $this->cache->set('groups', $group_cache);
- }
+ $this->cache->remove('groups');
return true;
}
@@ -1812,19 +1908,21 @@ class rcube_ldap extends rcube_addressbook
*/
function rename_group($group_id, $new_name, &$new_gid)
{
- $group_cache = $this->_fetch_groups();
- $old_dn = $group_cache[$group_id]['dn'];
- $new_rdn = "cn=" . rcube_ldap_generic::quote_string($new_name, true);
- $new_gid = self::dn_encode($new_rdn . ',' . $this->groups_base_dn);
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
- if (!$this->ldap->rename($old_dn, $new_rdn, null, true)) {
+ $base_dn = $this->groups_base_dn;
+ $group_name = $group_cache[$group_id]['name'];
+ $old_dn = "cn=$group_name,$base_dn";
+ $new_rdn = "cn=$new_name";
+ $new_gid = self::dn_encode($new_name);
+
+ if (!$this->ldap_rename($old_dn, $new_rdn, null, true)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
- if ($this->cache) {
- $this->cache->remove('groups');
- }
+ $this->cache->remove('groups');
return $new_name;
}
@@ -1839,27 +1937,27 @@ class rcube_ldap extends rcube_addressbook
*/
function add_to_group($group_id, $contact_ids)
{
- $group_cache = $this->_fetch_groups();
- $member_attr = $group_cache[$group_id]['member_attr'];
- $group_dn = $group_cache[$group_id]['dn'];
- $new_attrs = array();
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
- if (!is_array($contact_ids)) {
+ if (!is_array($contact_ids))
$contact_ids = explode(',', $contact_ids);
- }
- foreach ($contact_ids as $id) {
+ $base_dn = $this->groups_base_dn;
+ $group_name = $group_cache[$group_id]['name'];
+ $member_attr = $group_cache[$group_id]['member_attr'];
+ $group_dn = "cn=$group_name,$base_dn";
+ $new_attrs = array();
+
+ foreach ($contact_ids as $id)
$new_attrs[$member_attr][] = self::dn_decode($id);
- }
- if (!$this->ldap->mod_add($group_dn, $new_attrs)) {
+ if (!$this->ldap_mod_add($group_dn, $new_attrs)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return 0;
}
- if ($this->cache) {
- $this->cache->remove('groups');
- }
+ $this->cache->remove('groups');
return count($new_attrs[$member_attr]);
}
@@ -1874,27 +1972,27 @@ class rcube_ldap extends rcube_addressbook
*/
function remove_from_group($group_id, $contact_ids)
{
- $group_cache = $this->_fetch_groups();
- $member_attr = $group_cache[$group_id]['member_attr'];
- $group_dn = $group_cache[$group_id]['dn'];
- $del_attrs = array();
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
- if (!is_array($contact_ids)) {
+ if (!is_array($contact_ids))
$contact_ids = explode(',', $contact_ids);
- }
- foreach ($contact_ids as $id) {
+ $base_dn = $this->groups_base_dn;
+ $group_name = $group_cache[$group_id]['name'];
+ $member_attr = $group_cache[$group_id]['member_attr'];
+ $group_dn = "cn=$group_name,$base_dn";
+ $del_attrs = array();
+
+ foreach ($contact_ids as $id)
$del_attrs[$member_attr][] = self::dn_decode($id);
- }
- if (!$this->ldap->mod_del($group_dn, $del_attrs)) {
+ if (!$this->ldap_mod_del($group_dn, $del_attrs)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return 0;
}
- if ($this->cache) {
- $this->cache->remove('groups');
- }
+ $this->cache->remove('groups');
return count($del_attrs[$member_attr]);
}
@@ -1909,63 +2007,206 @@ class rcube_ldap extends rcube_addressbook
*/
function get_record_groups($contact_id)
{
- if (!$this->groups) {
+ if (!$this->groups)
return array();
- }
$base_dn = $this->groups_base_dn;
$contact_dn = self::dn_decode($contact_id);
$name_attr = $this->prop['groups']['name_attr'] ? $this->prop['groups']['name_attr'] : 'cn';
$member_attr = $this->get_group_member_attr();
$add_filter = '';
-
if ($member_attr != 'member' && $member_attr != 'uniqueMember')
$add_filter = "($member_attr=$contact_dn)";
$filter = strtr("(|(member=$contact_dn)(uniqueMember=$contact_dn)$add_filter)", array('\\' => '\\\\'));
- $ldap_data = $this->ldap->search($base_dn, $filter, 'sub', array('dn', $name_attr));
- if ($res === false) {
+ $this->_debug("C: Search [$filter][dn: $base_dn]");
+
+ $res = @ldap_search($this->conn, $base_dn, $filter, array($name_attr));
+ if ($res === false)
+ {
+ $this->_debug("S: ".ldap_error($this->conn));
return array();
}
+ $ldap_data = ldap_get_entries($this->conn, $res);
+ $this->_debug("S: ".ldap_count_entries($this->conn, $res)." record(s)");
$groups = array();
- foreach ($ldap_data as $entry) {
- if (!$entry['dn'])
- $entry['dn'] = $ldap_data->get_dn();
- $group_name = $entry[$name_attr][0];
- $group_id = self::dn_encode($entry['dn']);
- $groups[$group_id] = $group_name;
+ for ($i=0; $i<$ldap_data["count"]; $i++)
+ {
+ $group_name = $ldap_data[$i][$name_attr][0];
+ $group_id = self::dn_encode($group_name);
+ $groups[$group_id] = $group_id;
}
-
return $groups;
}
/**
* Detects group member attribute name
*/
- private function get_group_member_attr($object_classes = array(), $default = 'member')
+ private function get_group_member_attr($object_classes = array())
{
if (empty($object_classes)) {
$object_classes = $this->prop['groups']['object_classes'];
}
-
if (!empty($object_classes)) {
foreach ((array)$object_classes as $oc) {
- if ($attr = $this->group_types[strtolower($oc)]) {
- return $attr;
+ switch (strtolower($oc)) {
+ case 'group':
+ case 'groupofnames':
+ case 'kolabgroupofnames':
+ $member_attr = 'member';
+ break;
+
+ case 'groupofuniquenames':
+ case 'kolabgroupofuniquenames':
+ $member_attr = 'uniqueMember';
+ break;
}
}
}
+ if (!empty($member_attr)) {
+ return $member_attr;
+ }
+
if (!empty($this->prop['groups']['member_attr'])) {
return $this->prop['groups']['member_attr'];
}
- return $default;
+ return 'member';
}
/**
+ * Generate BER encoded string for Virtual List View option
+ *
+ * @param integer List offset (first record)
+ * @param integer Records per page
+ * @return string BER encoded option value
+ */
+ private function _vlv_ber_encode($offset, $rpp, $search = '')
+ {
+ # this string is ber-encoded, php will prefix this value with:
+ # 04 (octet string) and 10 (length of 16 bytes)
+ # the code behind this string is broken down as follows:
+ # 30 = ber sequence with a length of 0e (14) bytes following
+ # 02 = type integer (in two's complement form) with 2 bytes following (beforeCount): 01 00 (ie 0)
+ # 02 = type integer (in two's complement form) with 2 bytes following (afterCount): 01 18 (ie 25-1=24)
+ # a0 = type context-specific/constructed with a length of 06 (6) bytes following
+ # 02 = type integer with 2 bytes following (offset): 01 01 (ie 1)
+ # 02 = type integer with 2 bytes following (contentCount): 01 00
+
+ # whith a search string present:
+ # 81 = type context-specific/constructed with a length of 04 (4) bytes following (the length will change here)
+ # 81 indicates a user string is present where as a a0 indicates just a offset search
+ # 81 = type context-specific/constructed with a length of 06 (6) bytes following
+
+ # the following info was taken from the ISO/IEC 8825-1:2003 x.690 standard re: the
+ # encoding of integer values (note: these values are in
+ # two-complement form so since offset will never be negative bit 8 of the
+ # leftmost octet should never by set to 1):
+ # 8.3.2: If the contents octets of an integer value encoding consist
+ # of more than one octet, then the bits of the first octet (rightmost) and bit 8
+ # of the second (to the left of first octet) octet:
+ # a) shall not all be ones; and
+ # b) shall not all be zero
+
+ if ($search)
+ {
+ $search = preg_replace('/[^-[:alpha:] ,.()0-9]+/', '', $search);
+ $ber_val = self::_string2hex($search);
+ $str = self::_ber_addseq($ber_val, '81');
+ }
+ else
+ {
+ # construct the string from right to left
+ $str = "020100"; # contentCount
+
+ $ber_val = self::_ber_encode_int($offset); // returns encoded integer value in hex format
+
+ // calculate octet length of $ber_val
+ $str = self::_ber_addseq($ber_val, '02') . $str;
+
+ // now compute length over $str
+ $str = self::_ber_addseq($str, 'a0');
+ }
+
+ // now tack on records per page
+ $str = "020100" . self::_ber_addseq(self::_ber_encode_int($rpp-1), '02') . $str;
+
+ // now tack on sequence identifier and length
+ $str = self::_ber_addseq($str, '30');
+
+ return pack('H'.strlen($str), $str);
+ }
+
+
+ /**
+ * create ber encoding for sort control
+ *
+ * @param array List of cols to sort by
+ * @return string BER encoded option value
+ */
+ private function _sort_ber_encode($sortcols)
+ {
+ $str = '';
+ foreach (array_reverse((array)$sortcols) as $col) {
+ $ber_val = self::_string2hex($col);
+
+ # 30 = ber sequence with a length of octet value
+ # 04 = octet string with a length of the ascii value
+ $oct = self::_ber_addseq($ber_val, '04');
+ $str = self::_ber_addseq($oct, '30') . $str;
+ }
+
+ // now tack on sequence identifier and length
+ $str = self::_ber_addseq($str, '30');
+
+ return pack('H'.strlen($str), $str);
+ }
+
+ /**
+ * Add BER sequence with correct length and the given identifier
+ */
+ private static function _ber_addseq($str, $identifier)
+ {
+ $len = dechex(strlen($str)/2);
+ if (strlen($len) % 2 != 0)
+ $len = '0'.$len;
+
+ return $identifier . $len . $str;
+ }
+
+ /**
+ * Returns BER encoded integer value in hex format
+ */
+ private static function _ber_encode_int($offset)
+ {
+ $val = dechex($offset);
+ $prefix = '';
+
+ // check if bit 8 of high byte is 1
+ if (preg_match('/^[89abcdef]/', $val))
+ $prefix = '00';
+
+ if (strlen($val)%2 != 0)
+ $prefix .= '0';
+
+ return $prefix . $val;
+ }
+
+ /**
+ * Returns ascii string encoded in hex
+ */
+ private static function _string2hex($str)
+ {
+ $hex = '';
+ for ($i=0; $i < strlen($str); $i++)
+ $hex .= dechex(ord($str[$i]));
+ return $hex;
+ }
+
+ /**
* HTML-safe DN string encoding
*
* @param string $str DN string
@@ -1992,4 +2233,130 @@ class rcube_ldap extends rcube_addressbook
return base64_decode($str);
}
+ /**
+ * Wrapper for ldap_add()
+ */
+ protected function ldap_add($dn, $entry)
+ {
+ $this->_debug("C: Add [dn: $dn]: ".print_r($entry, true));
+
+ $res = ldap_add($this->conn, $dn, $entry);
+ if ($res === false) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_delete()
+ */
+ protected function ldap_delete($dn)
+ {
+ $this->_debug("C: Delete [dn: $dn]");
+
+ $res = ldap_delete($this->conn, $dn);
+ if ($res === false) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_mod_replace()
+ */
+ protected function ldap_mod_replace($dn, $entry)
+ {
+ $this->_debug("C: Replace [dn: $dn]: ".print_r($entry, true));
+
+ if (!ldap_mod_replace($this->conn, $dn, $entry)) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_mod_add()
+ */
+ protected function ldap_mod_add($dn, $entry)
+ {
+ $this->_debug("C: Add [dn: $dn]: ".print_r($entry, true));
+
+ if (!ldap_mod_add($this->conn, $dn, $entry)) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_mod_del()
+ */
+ protected function ldap_mod_del($dn, $entry)
+ {
+ $this->_debug("C: Delete [dn: $dn]: ".print_r($entry, true));
+
+ if (!ldap_mod_del($this->conn, $dn, $entry)) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_rename()
+ */
+ protected function ldap_rename($dn, $newrdn, $newparent = null, $deleteoldrdn = true)
+ {
+ $this->_debug("C: Rename [dn: $dn] [dn: $newrdn]");
+
+ if (!ldap_rename($this->conn, $dn, $newrdn, $newparent, $deleteoldrdn)) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_list()
+ */
+ protected function ldap_list($dn, $filter, $attrs = array(''))
+ {
+ $list = array();
+ $this->_debug("C: List [dn: $dn] [{$filter}]");
+
+ if ($result = ldap_list($this->conn, $dn, $filter, $attrs)) {
+ $list = ldap_get_entries($this->conn, $result);
+
+ if ($list === false) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return array();
+ }
+
+ $count = $list['count'];
+ unset($list['count']);
+
+ $this->_debug("S: $count record(s)");
+ }
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
+ }
+
+ return $list;
+ }
+
}
diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php
index 9b662a286..a8bcf6afc 100644
--- a/program/lib/Roundcube/rcube_message.php
+++ b/program/lib/Roundcube/rcube_message.php
@@ -168,11 +168,10 @@ class rcube_message
* @param resource $fp File pointer to save the message part
* @param boolean $skip_charset_conv Disables charset conversion
* @param int $max_bytes Only read this number of bytes
- * @param boolean $formatted Enables formatting of text/* parts bodies
*
* @return string Part content
*/
- public function get_part_content($mime_id, $fp = null, $skip_charset_conv = false, $max_bytes = 0, $formatted = true)
+ public function get_part_content($mime_id, $fp = null, $skip_charset_conv = false, $max_bytes = 0)
{
if ($part = $this->mime_parts[$mime_id]) {
// stored in message structure (winmail/inline-uuencode)
@@ -186,88 +185,47 @@ class rcube_message
// get from IMAP
$this->storage->set_folder($this->folder);
- return $this->storage->get_message_part($this->uid, $mime_id, $part,
- NULL, $fp, $skip_charset_conv, $max_bytes, $formatted);
+ return $this->storage->get_message_part($this->uid, $mime_id, $part, NULL, $fp, $skip_charset_conv, $max_bytes);
}
}
/**
- * Determine if the message contains a HTML part. This must to be
- * a real part not an attachment (or its part)
+ * Determine if the message contains a HTML part
*
- * @param bool $enriched Enables checking for text/enriched parts too
+ * @param bool $recursive Enables checking in all levels of the structure
+ * @param bool $enriched Enables checking for text/enriched parts too
*
* @return bool True if a HTML is available, False if not
*/
- function has_html_part($enriched = false)
+ function has_html_part($recursive = true, $enriched = false)
{
// check all message parts
- foreach ($this->mime_parts as $part) {
+ foreach ($this->parts as $part) {
if ($part->mimetype == 'text/html' || ($enriched && $part->mimetype == 'text/enriched')) {
- // Skip if part is an attachment, don't use is_attachment() here
- if ($part->filename) {
- continue;
- }
-
- $level = explode('.', $part->mime_id);
+ // Level check, we'll skip e.g. HTML attachments
+ if (!$recursive) {
+ $level = explode('.', $part->mime_id);
- // Check if the part belongs to higher-level's multipart part
- // this can be alternative/related/signed/encrypted, but not mixed
- while (array_pop($level) !== null) {
- if (!count($level)) {
- return true;
- }
-
- $parent = $this->mime_parts[join('.', $level)];
- if (!preg_match('/^multipart\/(alternative|related|signed|encrypted)$/', $parent->mimetype)) {
- continue 2;
+ // Skip if part is an attachment
+ if ($this->is_attachment($part)) {
+ continue;
}
- }
-
- if ($part->size) {
- return true;
- }
- }
- }
-
- return false;
- }
-
-
- /**
- * Determine if the message contains a text/plain part. This must to be
- * a real part not an attachment (or its part)
- *
- * @return bool True if a plain text part is available, False if not
- */
- function has_text_part()
- {
- // check all message parts
- foreach ($this->mime_parts as $part) {
- if ($part->mimetype == 'text/plain') {
- // Skip if part is an attachment, don't use is_attachment() here
- if ($part->filename) {
- continue;
- }
-
- $level = explode('.', $part->mime_id);
- // Check if the part belongs to higher-level's alternative/related
- while (array_pop($level) !== null) {
- if (!count($level)) {
- return true;
- }
+ // Check if the part belongs to higher-level's alternative/related
+ while (array_pop($level) !== null) {
+ if (!count($level)) {
+ return true;
+ }
- $parent = $this->mime_parts[join('.', $level)];
- if ($parent->mimetype != 'multipart/alternative' && $parent->mimetype != 'multipart/related') {
- continue 2;
+ $parent = $this->mime_parts[join('.', $level)];
+ if ($parent->mimetype != 'multipart/alternative' && $parent->mimetype != 'multipart/related') {
+ continue 2;
+ }
}
}
- if ($part->size) {
- return true;
- }
+ return true;
}
}
@@ -362,8 +320,8 @@ class rcube_message
$mimetype = $structure->real_mimetype;
// parse headers from message/rfc822 part
- if (!isset($structure->headers['subject']) && !isset($structure->headers['from'])) {
- list($headers, ) = explode("\r\n\r\n", $this->get_part_content($structure->mime_id, null, true, 32768));
+ if (!isset($structure->headers['subject'])) {
+ list($headers, $dump) = explode("\r\n\r\n", $this->get_part_content($structure->mime_id, null, true, 32768));
$structure->headers = rcube_mime::parse_headers($headers);
}
}
@@ -372,7 +330,7 @@ class rcube_message
// show message headers
if ($recursive && is_array($structure->headers) &&
- (isset($structure->headers['subject']) || $structure->headers['from'] || $structure->headers['to'])) {
+ ($structure->headers['subject'] || $structure->headers['from'] || $structure->headers['to'])) {
$c = new stdClass;
$c->type = 'headers';
$c->headers = $structure->headers;
@@ -434,24 +392,17 @@ class rcube_message
continue;
}
- // We've encountered (malformed) messages with more than
- // one text/plain or text/html part here. There's no way to choose
- // which one is better, so we'll display first of them and add
- // others as attachments (#1489358)
-
// check if sub part is
if ($is_multipart)
$related_part = $p;
- else if ($sub_mimetype == 'text/plain' && !$plain_part)
+ else if ($sub_mimetype == 'text/plain')
$plain_part = $p;
- else if ($sub_mimetype == 'text/html' && !$html_part)
+ else if ($sub_mimetype == 'text/html')
$html_part = $p;
- else if ($sub_mimetype == 'text/enriched' && !$enriched_part)
+ else if ($sub_mimetype == 'text/enriched')
$enriched_part = $p;
- else {
- // add unsupported/unrecognized parts to attachments list
- $this->attachments[] = $sub_part;
- }
+ else
+ $attach_part = $p;
}
// parse related part (alternative part could be in here)
@@ -492,6 +443,19 @@ class rcube_message
$this->parts[] = $c;
}
+
+ // add html part as attachment
+ if ($html_part !== null && $structure->parts[$html_part] !== $print_part) {
+ $html_part = $structure->parts[$html_part];
+ $html_part->mimetype = 'text/html';
+
+ $this->attachments[] = $html_part;
+ }
+
+ // add unsupported/unrecognized parts to attachments list
+ if ($attach_part) {
+ $this->attachments[] = $structure->parts[$attach_part];
+ }
}
// this is an ecrypted message -> create a plaintext body with the according message
else if ($mimetype == 'multipart/encrypted') {
@@ -572,6 +536,10 @@ class rcube_message
if (!empty($mail_part->filename)) {
$this->attachments[] = $mail_part;
}
+ // list html part as attachment (here the part is most likely inside a multipart/related part)
+ else if ($this->parse_alternative && ($secondary_type == 'html' && !$this->opt['prefer_html'])) {
+ $this->attachments[] = $mail_part;
+ }
}
// part message/*
else if ($primary_type == 'message') {
diff --git a/program/lib/Roundcube/rcube_mime.php b/program/lib/Roundcube/rcube_mime.php
index a931c27c1..323a5e900 100644
--- a/program/lib/Roundcube/rcube_mime.php
+++ b/program/lib/Roundcube/rcube_mime.php
@@ -708,20 +708,12 @@ class rcube_mime
*/
public static function file_content_type($path, $name, $failover = 'application/octet-stream', $is_stream = false, $skip_suffix = false)
{
- static $mime_ext = array();
-
$mime_type = null;
- $config = rcube::get_instance()->config;
- $mime_magic = $config->get('mime_magic');
-
- if (!$skip_suffix && empty($mime_ext)) {
- foreach ($config->resolve_paths('mimetypes.php') as $fpath) {
- $mime_ext = array_merge($mime_ext, (array) @include($fpath));
- }
- }
+ $mime_magic = rcube::get_instance()->config->get('mime_magic');
+ $mime_ext = $skip_suffix ? null : @include(RCUBE_CONFIG_DIR . '/mimetypes.php');
// use file name suffix with hard-coded mime-type map
- if (!$skip_suffix && is_array($mime_ext) && $name) {
+ if (is_array($mime_ext) && $name) {
if ($suffix = substr($name, strrpos($name, '.')+1)) {
$mime_type = $mime_ext[strtolower($suffix)];
}
@@ -810,7 +802,7 @@ class rcube_mime
}
$mime_types = $mime_extensions = array();
- $regex = "/([\w\+\-\.\/]+)\s+([\w\s]+)/i";
+ $regex = "/([\w\+\-\.\/]+)\t+([\w\s]+)/i";
foreach((array)$lines as $line) {
// skip comments or mime types w/o any extensions
if ($line[0] == '#' || !preg_match($regex, $line, $matches))
@@ -826,9 +818,7 @@ class rcube_mime
// fallback to some well-known types most important for daily emails
if (empty($mime_types)) {
- foreach (rcube::get_instance()->config->resolve_paths('mimetypes.php') as $fpath) {
- $mime_extensions = array_merge($mime_extensions, (array) @include($fpath));
- }
+ $mime_extensions = (array) @include(RCUBE_CONFIG_DIR . '/mimetypes.php');
foreach ($mime_extensions as $ext => $mime) {
$mime_types[$mime][] = $ext;
diff --git a/program/lib/Roundcube/rcube_plugin.php b/program/lib/Roundcube/rcube_plugin.php
index 3153a8410..34720cfd7 100644
--- a/program/lib/Roundcube/rcube_plugin.php
+++ b/program/lib/Roundcube/rcube_plugin.php
@@ -92,16 +92,6 @@ abstract class rcube_plugin
abstract function init();
/**
- * Provide information about this
- *
- * @return array Meta information about a plugin or false if not implemented
- */
- public static function info()
- {
- return false;
- }
-
- /**
* Attempt to load the given plugin which is required for the current plugin
*
* @param string Plugin name
@@ -227,7 +217,7 @@ abstract class rcube_plugin
$rcube->load_language($lang, $add);
// add labels to client
- if ($add2client && method_exists($rcube->output, 'add_label')) {
+ if ($add2client) {
if (is_array($add2client)) {
$js_labels = array_map(array($this, 'label_map_callback'), $add2client);
}
@@ -240,24 +230,6 @@ abstract class rcube_plugin
}
/**
- * Wrapper for add_label() adding the plugin ID as domain
- */
- public function add_label()
- {
- $rcube = rcube::get_instance();
-
- if (method_exists($rcube->output, 'add_label')) {
- $args = func_get_args();
- if (count($args) == 1 && is_array($args[0])) {
- $args = $args[0];
- }
-
- $args = array_map(array($this, 'label_map_callback'), $args);
- $rcube->output->add_label($args);
- }
- }
-
- /**
* Wrapper for rcube::gettext() adding the plugin ID as domain
*
* @param string $p Message identifier
@@ -273,7 +245,7 @@ abstract class rcube_plugin
/**
* Register this plugin to be responsible for a specific task
*
- * @param string $task Task name (only characters [a-z0-9_-] are allowed)
+ * @param string $task Task name (only characters [a-z0-9_.-] are allowed)
*/
public function register_task($task)
{
@@ -408,10 +380,6 @@ abstract class rcube_plugin
*/
private function label_map_callback($key)
{
- if (strpos($key, $this->ID.'.') === 0) {
- return $key;
- }
-
return $this->ID.'.'.$key;
}
}
diff --git a/program/lib/Roundcube/rcube_plugin_api.php b/program/lib/Roundcube/rcube_plugin_api.php
index 2258f1486..c9602d912 100644
--- a/program/lib/Roundcube/rcube_plugin_api.php
+++ b/program/lib/Roundcube/rcube_plugin_api.php
@@ -229,119 +229,6 @@ class rcube_plugin_api
}
/**
- * Get information about a specific plugin.
- * This is either provided my a plugin's info() method or extracted from a package.xml or a composer.json file
- *
- * @param string Plugin name
- * @return array Meta information about a plugin or False if plugin was not found
- */
- public function get_info($plugin_name)
- {
- static $composer_lock, $license_uris = array(
- 'Apache' => 'http://www.apache.org/licenses/LICENSE-2.0.html',
- 'Apache-2' => 'http://www.apache.org/licenses/LICENSE-2.0.html',
- 'Apache-1' => 'http://www.apache.org/licenses/LICENSE-1.0',
- 'Apache-1.1' => 'http://www.apache.org/licenses/LICENSE-1.1',
- 'GPL' => 'http://www.gnu.org/licenses/gpl.html',
- 'GPLv2' => 'http://www.gnu.org/licenses/gpl-2.0.html',
- 'GPL-2.0' => 'http://www.gnu.org/licenses/gpl-2.0.html',
- 'GPLv3' => 'http://www.gnu.org/licenses/gpl-3.0.html',
- 'GPL-3.0' => 'http://www.gnu.org/licenses/gpl-3.0.html',
- 'GPL-3.0+' => 'http://www.gnu.org/licenses/gpl.html',
- 'GPL-2.0+' => 'http://www.gnu.org/licenses/gpl.html',
- 'LGPL' => 'http://www.gnu.org/licenses/lgpl.html',
- 'LGPLv2' => 'http://www.gnu.org/licenses/lgpl-2.0.html',
- 'LGPLv2.1' => 'http://www.gnu.org/licenses/lgpl-2.1.html',
- 'LGPLv3' => 'http://www.gnu.org/licenses/lgpl.html',
- 'LGPL-2.0' => 'http://www.gnu.org/licenses/lgpl-2.0.html',
- 'LGPL-2.1' => 'http://www.gnu.org/licenses/lgpl-2.1.html',
- 'LGPL-3.0' => 'http://www.gnu.org/licenses/lgpl.html',
- 'LGPL-3.0+' => 'http://www.gnu.org/licenses/lgpl.html',
- 'BSD' => 'http://opensource.org/licenses/bsd-license.html',
- 'BSD-2-Clause' => 'http://opensource.org/licenses/BSD-2-Clause',
- 'BSD-3-Clause' => 'http://opensource.org/licenses/BSD-3-Clause',
- 'FreeBSD' => 'http://opensource.org/licenses/BSD-2-Clause',
- 'MIT' => 'http://www.opensource.org/licenses/mit-license.php',
- 'PHP' => 'http://opensource.org/licenses/PHP-3.0',
- 'PHP-3' => 'http://www.php.net/license/3_01.txt',
- 'PHP-3.0' => 'http://www.php.net/license/3_0.txt',
- 'PHP-3.01' => 'http://www.php.net/license/3_01.txt',
- );
-
- $dir = dir($this->dir);
- $fn = unslashify($dir->path) . DIRECTORY_SEPARATOR . $plugin_name . DIRECTORY_SEPARATOR . $plugin_name . '.php';
- $info = false;
-
- if (!class_exists($plugin_name))
- include($fn);
-
- if (class_exists($plugin_name))
- $info = $plugin_name::info();
-
- // fall back to composer.json file
- if (!$info) {
- $composer = INSTALL_PATH . "/plugins/$plugin_name/composer.json";
- if (file_exists($composer) && ($json = @json_decode(file_get_contents($composer), true))) {
- list($info['vendor'], $info['name']) = explode('/', $json['name']);
- $info['license'] = $json['license'];
- if ($license_uri = $license_uris[$info['license']])
- $info['license_uri'] = $license_uri;
- }
-
- // read local composer.lock file (once)
- if (!isset($composer_lock)) {
- $composer_lock = @json_decode(@file_get_contents(INSTALL_PATH . "/composer.lock"), true);
- if ($composer_lock['packages']) {
- foreach ($composer_lock['packages'] as $i => $package) {
- $composer_lock['installed'][$package['name']] = $package;
- }
- }
- }
-
- // load additional information from local composer.lock file
- if ($lock = $composer_lock['installed'][$json['name']]) {
- $info['version'] = $lock['version'];
- $info['uri'] = $lock['homepage'] ? $lock['homepage'] : $lock['source']['uri'];
- $info['src_uri'] = $lock['dist']['uri'] ? $lock['dist']['uri'] : $lock['source']['uri'];
- }
- }
-
- // fall back to package.xml file
- if (!$info) {
- $package = INSTALL_PATH . "/plugins/$plugin_name/package.xml";
- if (file_exists($package) && ($file = file_get_contents($package))) {
- $doc = new DOMDocument();
- $doc->loadXML($file);
- $xpath = new DOMXPath($doc);
- $xpath->registerNamespace('rc', "http://pear.php.net/dtd/package-2.0");
-
- // XPaths of plugin metadata elements
- $metadata = array(
- 'name' => 'string(//rc:package/rc:name)',
- 'version' => 'string(//rc:package/rc:version/rc:release)',
- 'license' => 'string(//rc:package/rc:license)',
- 'license_uri' => 'string(//rc:package/rc:license/@uri)',
- 'src_uri' => 'string(//rc:package/rc:srcuri)',
- 'uri' => 'string(//rc:package/rc:uri)',
- );
-
- foreach ($metadata as $key => $path) {
- $info[$key] = $xpath->evaluate($path);
- }
-
- // dependent required plugins (can be used, but not included in config)
- $deps = $xpath->evaluate('//rc:package/rc:dependencies/rc:required/rc:package/rc:name');
- for ($i = 0; $i < $deps->length; $i++) {
- $dn = $deps->item($i)->nodeValue;
- $info['requires'][] = $dn;
- }
- }
- }
-
- return $info;
- }
-
- /**
* Allows a plugin object to register a callback for a certain hook
*
* @param string $hook Hook name
@@ -404,7 +291,7 @@ class rcube_plugin_api
$args = $ret + $args;
}
- if ($args['break']) {
+ if ($args['abort']) {
break;
}
}
@@ -492,7 +379,7 @@ class rcube_plugin_api
/**
* Register this plugin to be responsible for a specific task
*
- * @param string $task Task name (only characters [a-z0-9_-] are allowed)
+ * @param string $task Task name (only characters [a-z0-9_.-] are allowed)
* @param string $owner Plugin name that registers this action
*/
public function register_task($task, $owner)
@@ -502,7 +389,7 @@ class rcube_plugin_api
return true;
}
- if ($task != asciiwords($task, true)) {
+ if ($task != asciiwords($task)) {
rcube::raise_error(array('code' => 526, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Invalid task name: $task."
diff --git a/program/lib/Roundcube/rcube_result_set.php b/program/lib/Roundcube/rcube_result_set.php
index a4b070e28..1391e5e4b 100644
--- a/program/lib/Roundcube/rcube_result_set.php
+++ b/program/lib/Roundcube/rcube_result_set.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-2013, The Roundcube Dev Team |
+ | Copyright (C) 2006-2011, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -17,22 +17,20 @@
*/
/**
- * Roundcube result set class
- *
+ * Roundcube result set class.
* Representing an address directory result set.
- * Implenets Iterator and thus be used in foreach() loops.
*
* @package Framework
* @subpackage Addressbook
*/
-class rcube_result_set implements Iterator
+class rcube_result_set
{
- public $count = 0;
- public $first = 0;
- public $searchonly = false;
- public $records = array();
+ var $count = 0;
+ var $first = 0;
+ var $current = 0;
+ var $searchonly = false;
+ var $records = array();
- private $current = 0;
function __construct($c=0, $f=0)
{
@@ -53,39 +51,18 @@ class rcube_result_set implements Iterator
function first()
{
$this->current = 0;
- return $this->records[$this->current];
- }
-
- function seek($i)
- {
- $this->current = $i;
- }
-
- /*** PHP 5 Iterator interface ***/
-
- function rewind()
- {
- $this->current = 0;
- }
-
- function current()
- {
- return $this->records[$this->current];
- }
-
- function key()
- {
- return $this->current;
+ return $this->records[$this->current++];
}
+ // alias for iterate()
function next()
{
return $this->iterate();
}
- function valid()
+ function seek($i)
{
- return isset($this->records[$this->current]);
+ $this->current = $i;
}
}
diff --git a/program/lib/Roundcube/rcube_session.php b/program/lib/Roundcube/rcube_session.php
index caca262c6..ee4db6e86 100644
--- a/program/lib/Roundcube/rcube_session.php
+++ b/program/lib/Roundcube/rcube_session.php
@@ -32,9 +32,7 @@ class rcube_session
private $ip;
private $start;
private $changed;
- private $time_diff = 0;
private $reloaded = false;
- private $appends = array();
private $unsets = array();
private $gc_handlers = array();
private $cookiename = 'roundcube_sessauth';
@@ -44,7 +42,6 @@ class rcube_session
private $secret = '';
private $ip_check = false;
private $logging = false;
- private $storage;
private $memcache;
@@ -55,21 +52,18 @@ class rcube_session
{
$this->db = $db;
$this->start = microtime(true);
- $this->ip = rcube_utils::remote_addr();
+ $this->ip = $_SERVER['REMOTE_ADDR'];
$this->logging = $config->get('log_session', false);
$lifetime = $config->get('session_lifetime', 1) * 60;
$this->set_lifetime($lifetime);
// use memcache backend
- $this->storage = $config->get('session_storage', 'db');
- if ($this->storage == 'memcache') {
+ if ($config->get('session_storage', 'db') == 'memcache') {
$this->memcache = rcube::get_instance()->get_memcache();
// set custom functions for PHP session management if memcache is available
if ($this->memcache) {
- ini_set('session.serialize_handler', 'php');
-
session_set_save_handler(
array($this, 'open'),
array($this, 'close'),
@@ -85,9 +79,7 @@ class rcube_session
true, true);
}
}
- else if ($this->storage != 'php') {
- ini_set('session.serialize_handler', 'php');
-
+ else {
// set custom functions for PHP session management
session_set_save_handler(
array($this, 'open'),
@@ -95,23 +87,7 @@ class rcube_session
array($this, 'db_read'),
array($this, 'db_write'),
array($this, 'db_destroy'),
- array($this, 'gc'));
- }
- }
-
-
- /**
- * Wrapper for session_start()
- */
- public function start()
- {
- session_start();
-
- // copy some session properties to object vars
- if ($this->storage == 'php') {
- $this->key = session_id();
- $this->ip = $_SESSION['__IP'];
- $this->changed = $_SESSION['__MTIME'];
+ array($this, 'db_gc'));
}
}
@@ -140,25 +116,6 @@ class rcube_session
/**
- * Wrapper for session_write_close()
- */
- public function write_close()
- {
- if ($this->storage == 'php') {
- $_SESSION['__IP'] = $this->ip;
- $_SESSION['__MTIME'] = time();
- }
-
- session_write_close();
-
- // write_close() is called on script shutdown, see rcube::shutdown()
- // execute cleanup functionality if enabled by session gc handler
- // we do this after closing the session for better performance
- $this->gc_shutdown();
- }
-
-
- /**
* Read session data from database
*
* @param string Session ID
@@ -168,16 +125,14 @@ class rcube_session
public function db_read($key)
{
$sql_result = $this->db->query(
- "SELECT vars, ip, changed, " . $this->db->now() . " AS ts"
- . " FROM " . $this->db->table_name('session')
- . " WHERE sess_id = ?", $key);
+ "SELECT vars, ip, changed FROM ".$this->db->table_name('session')
+ ." WHERE sess_id = ?", $key);
if ($sql_result && ($sql_arr = $this->db->fetch_assoc($sql_result))) {
- $this->time_diff = time() - strtotime($sql_arr['ts']);
- $this->changed = strtotime($sql_arr['changed']);
- $this->ip = $sql_arr['ip'];
- $this->vars = base64_decode($sql_arr['vars']);
- $this->key = $key;
+ $this->changed = strtotime($sql_arr['changed']);
+ $this->ip = $sql_arr['ip'];
+ $this->vars = base64_decode($sql_arr['vars']);
+ $this->key = $key;
return !empty($this->vars) ? (string) $this->vars : '';
}
@@ -197,9 +152,8 @@ class rcube_session
*/
public function db_write($key, $vars)
{
- $now = $this->db->now();
- $table = $this->db->table_name('session');
- $ts = microtime(true);
+ $ts = microtime(true);
+ $now = $this->db->fromunixtime((int)$ts);
// no session row in DB (db_read() returns false)
if (!$this->key) {
@@ -217,19 +171,22 @@ class rcube_session
$newvars = $this->_fixvars($vars, $oldvars);
if ($newvars !== $oldvars) {
- $this->db->query("UPDATE $table "
- . "SET changed = $now, vars = ? WHERE sess_id = ?",
- base64_encode($newvars), $key);
+ $this->db->query(
+ sprintf("UPDATE %s SET vars=?, changed=%s WHERE sess_id=?",
+ $this->db->table_name('session'), $now),
+ base64_encode($newvars), $key);
}
- else if ($ts - $this->changed + $this->time_diff > $this->lifetime / 2) {
- $this->db->query("UPDATE $table SET changed = $now"
- . " WHERE sess_id = ?", $key);
+ else if ($ts - $this->changed > $this->lifetime / 2) {
+ $this->db->query("UPDATE ".$this->db->table_name('session')
+ ." SET changed=$now WHERE sess_id=?", $key);
}
}
else {
- $this->db->query("INSERT INTO $table (sess_id, vars, ip, created, changed)"
- . " VALUES (?, ?, ?, $now, $now)",
- $key, base64_encode($vars), (string)$this->ip);
+ $this->db->query(
+ sprintf("INSERT INTO %s (sess_id, vars, ip, created, changed) ".
+ "VALUES (?, ?, ?, %s, %s)",
+ $this->db->table_name('session'), $now, $now),
+ $key, base64_encode($vars), (string)$this->ip);
}
return true;
@@ -289,6 +246,25 @@ class rcube_session
/**
+ * Garbage collecting function
+ *
+ * @param string Session lifetime in seconds
+ * @return boolean True on success
+ */
+ public function db_gc($maxlifetime)
+ {
+ // just delete all expired sessions
+ $this->db->query(
+ sprintf("DELETE FROM %s WHERE changed < %s",
+ $this->db->table_name('session'), $this->db->fromunixtime(time() - $maxlifetime)));
+
+ $this->gc();
+
+ return true;
+ }
+
+
+ /**
* Read session data from memcache
*
* @param string Session ID
@@ -364,11 +340,11 @@ class rcube_session
/**
* Execute registered garbage collector routines
*/
- public function gc($maxlifetime)
+ public function gc()
{
- // move gc execution to the script shutdown function
- // see rcube::shutdown() and rcube_session::write_close()
- return $this->gc_enabled = $maxlifetime;
+ foreach ($this->gc_handlers as $fct) {
+ call_user_func($fct);
+ }
}
@@ -390,25 +366,6 @@ class rcube_session
/**
- * Garbage collector handler to run on script shutdown
- */
- protected function gc_shutdown()
- {
- if ($this->gc_enabled) {
- // just delete all expired sessions
- if ($this->storage == 'db') {
- $this->db->query("DELETE FROM " . $this->db->table_name('session')
- . " WHERE changed < " . $this->db->now(-$this->gc_enabled));
- }
-
- foreach ($this->gc_handlers as $fct) {
- call_user_func($fct);
- }
- }
- }
-
-
- /**
* Generate and set new session id
*
* @param boolean $destroy If enabled the current session will be destroyed
@@ -442,19 +399,8 @@ class rcube_session
$node = &$this->get_node(explode('.', $path), $_SESSION);
- if ($key !== null) {
- $node[$key] = $value;
- $path .= '.' . $key;
- }
- else {
- $node[] = $value;
- }
-
- $this->appends[] = $path;
-
- // when overwriting a previously unset variable
- if ($this->unsets[$path])
- unset($this->unsets[$path]);
+ if ($key !== null) $node[$key] = $value;
+ else $node[] = $value;
}
@@ -492,7 +438,7 @@ class rcube_session
public function kill()
{
$this->vars = null;
- $this->ip = rcube_utils::remote_addr(); // update IP (might have changed)
+ $this->ip = $_SERVER['REMOTE_ADDR']; // update IP (might have changed)
$this->destroy(session_id());
rcube_utils::setcookie($this->cookiename, '-del-', time() - 60);
}
@@ -503,40 +449,13 @@ class rcube_session
*/
public function reload()
{
- // collect updated data from previous appends
- $merge_data = array();
- foreach ((array)$this->appends as $var) {
- $path = explode('.', $var);
- $value = $this->get_node($path, $_SESSION);
- $k = array_pop($path);
- $node = &$this->get_node($path, $merge_data);
- $node[$k] = $value;
- }
-
if ($this->key && $this->memcache)
$data = $this->mc_read($this->key);
else if ($this->key)
$data = $this->db_read($this->key);
- if ($data) {
+ if ($data)
session_decode($data);
-
- // apply appends and unsets to reloaded data
- $_SESSION = array_merge_recursive($_SESSION, $merge_data);
-
- foreach ((array)$this->unsets as $var) {
- if (isset($_SESSION[$var])) {
- unset($_SESSION[$var]);
- }
- else {
- $path = explode('.', $var);
- $k = array_pop($path);
- $node = &$this->get_node($path, $_SESSION);
- unset($node[$k]);
- }
- }
- }
-
}
/**
@@ -733,10 +652,10 @@ class rcube_session
function check_auth()
{
$this->cookie = $_COOKIE[$this->cookiename];
- $result = $this->ip_check ? rcube_utils::remote_addr() == $this->ip : true;
+ $result = $this->ip_check ? $_SERVER['REMOTE_ADDR'] == $this->ip : true;
if (!$result) {
- $this->log("IP check failed for " . $this->key . "; expected " . $this->ip . "; got " . rcube_utils::remote_addr());
+ $this->log("IP check failed for " . $this->key . "; expected " . $this->ip . "; got " . $_SERVER['REMOTE_ADDR']);
}
if ($result && $this->_mkcookie($this->now) != $this->cookie) {
diff --git a/program/lib/Roundcube/rcube_smtp.php b/program/lib/Roundcube/rcube_smtp.php
index 60b1389ea..201e8269e 100644
--- a/program/lib/Roundcube/rcube_smtp.php
+++ b/program/lib/Roundcube/rcube_smtp.php
@@ -33,8 +33,6 @@ class rcube_smtp
// define headers delimiter
const SMTP_MIME_CRLF = "\r\n";
- const DEBUG_LINE_LENGTH = 4098; // 4KB + 2B for \r\n
-
/**
* SMTP Connection and authentication
@@ -329,12 +327,6 @@ class rcube_smtp
*/
public function debug_handler(&$smtp, $message)
{
- if (($len = strlen($message)) > self::DEBUG_LINE_LENGTH) {
- $diff = $len - self::DEBUG_LINE_LENGTH;
- $message = substr($message, 0, self::DEBUG_LINE_LENGTH)
- . "... [truncated $diff bytes]";
- }
-
rcube::write_log('smtp', preg_replace('/\r\n$/', '', $message));
}
@@ -441,9 +433,9 @@ class rcube_smtp
$recipients = rcube_utils::explode_quoted_string(',', $recipients);
reset($recipients);
- foreach ($recipients as $recipient) {
+ while (list($k, $recipient) = each($recipients)) {
$a = rcube_utils::explode_quoted_string(' ', $recipient);
- foreach ($a as $word) {
+ while (list($k2, $word) = each($a)) {
if (strpos($word, "@") > 0 && $word[strlen($word)-1] != '"') {
$word = preg_replace('/^<|>$/', '', trim($word));
if (in_array($word, $addresses) === false) {
diff --git a/program/lib/Roundcube/rcube_spellchecker.php b/program/lib/Roundcube/rcube_spellchecker.php
index 3182ff378..672515204 100644
--- a/program/lib/Roundcube/rcube_spellchecker.php
+++ b/program/lib/Roundcube/rcube_spellchecker.php
@@ -3,8 +3,8 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2011-2013, Kolab Systems AG |
- | Copyright (C) 2008-2013, The Roundcube Dev Team |
+ | Copyright (C) 2011, Kolab Systems AG |
+ | Copyright (C) 2008-2011, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -28,15 +28,21 @@ class rcube_spellchecker
{
private $matches = array();
private $engine;
- private $backend;
private $lang;
private $rc;
private $error;
+ private $separator = '/[\s\r\n\t\(\)\/\[\]{}<>\\"]+|[:;?!,\.](?=\W|$)/';
private $options = array();
private $dict;
private $have_dict;
+ // default settings
+ const GOOGLE_HOST = 'ssl://spell.roundcube.net';
+ const GOOGLE_PORT = 443;
+ const MAX_SUGGESTIONS = 10;
+
+
/**
* Constructor
*
@@ -54,63 +60,8 @@ class rcube_spellchecker
'ignore_caps' => $this->rc->config->get('spellcheck_ignore_caps'),
'dictionary' => $this->rc->config->get('spellcheck_dictionary'),
);
-
- $cls = 'rcube_spellcheck_' . $this->engine;
- if (class_exists($cls)) {
- $this->backend = new $cls($this, $this->lang);
- $this->backend->options = $this->options;
- }
- else {
- $this->error = "Unknown spellcheck engine '$this->engine'";
- }
}
- /**
- * Return a list of supported languages
- */
- function languages()
- {
- // trust configuration
- $configured = $this->rc->config->get('spellcheck_languages');
- if (!empty($configured) && is_array($configured) && !$configured[0]) {
- return $configured;
- }
- else if (!empty($configured)) {
- $langs = (array)$configured;
- }
- else if ($this->backend) {
- $langs = $this->backend->languages();
- }
-
- // load index
- @include(RCUBE_LOCALIZATION_DIR . 'index.inc');
-
- // add correct labels
- $languages = array();
- foreach ($langs as $lang) {
- $langc = strtolower(substr($lang, 0, 2));
- $alias = $rcube_language_aliases[$langc];
- if (!$alias) {
- $alias = $langc.'_'.strtoupper($langc);
- }
- if ($rcube_languages[$lang]) {
- $languages[$lang] = $rcube_languages[$lang];
- }
- else if ($rcube_languages[$alias]) {
- $languages[$lang] = $rcube_languages[$alias];
- }
- else {
- $languages[$lang] = ucfirst($lang);
- }
- }
-
- // remove possible duplicates (#1489395)
- $languages = array_unique($languages);
-
- asort($languages);
-
- return $languages;
- }
/**
* Set content and check spelling
@@ -130,8 +81,11 @@ class rcube_spellchecker
$this->content = $text;
}
- if ($this->backend) {
- $this->matches = $this->backend->check($this->content);
+ if ($this->engine == 'pspell') {
+ $this->matches = $this->_pspell_check($this->content);
+ }
+ else {
+ $this->matches = $this->_googie_check($this->content);
}
return $this->found() == 0;
@@ -158,11 +112,11 @@ class rcube_spellchecker
*/
function get_suggestions($word)
{
- if ($this->backend) {
- return $this->backend->get_suggestions($word);
+ if ($this->engine == 'pspell') {
+ return $this->_pspell_suggestions($word);
}
- return array();
+ return $this->_googie_suggestions($word);
}
@@ -176,15 +130,11 @@ class rcube_spellchecker
*/
function get_words($text = null, $is_html=false)
{
- if ($is_html) {
- $text = $this->html2text($text);
- }
-
- if ($this->backend) {
- return $this->backend->get_words($text);
+ if ($this->engine == 'pspell') {
+ return $this->_pspell_words($text, $is_html);
}
- return array();
+ return $this->_googie_words($text, $is_html);
}
@@ -198,7 +148,7 @@ class rcube_spellchecker
// send output
$out = '<?xml version="1.0" encoding="'.RCUBE_CHARSET.'"?><spellresult charschecked="'.mb_strlen($this->content).'">';
- foreach ((array)$this->matches as $item) {
+ foreach ($this->matches as $item) {
$out .= '<c o="'.$item[1].'" l="'.$item[2].'">';
$out .= is_array($item[4]) ? implode("\t", $item[4]) : $item[4];
$out .= '</c>';
@@ -219,7 +169,7 @@ class rcube_spellchecker
{
$result = array();
- foreach ((array)$this->matches as $item) {
+ foreach ($this->matches as $item) {
if ($this->engine == 'pspell') {
$word = $item[0];
}
@@ -240,7 +190,254 @@ class rcube_spellchecker
*/
function error()
{
- return $this->error ? $this->error : ($this->backend ? $this->backend->error() : false);
+ return $this->error;
+ }
+
+
+ /**
+ * Checks the text using pspell
+ *
+ * @param string $text Text content for spellchecking
+ */
+ private function _pspell_check($text)
+ {
+ // init spellchecker
+ $this->_pspell_init();
+
+ if (!$this->plink) {
+ return array();
+ }
+
+ // tokenize
+ $text = preg_split($this->separator, $text, NULL, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);
+
+ $diff = 0;
+ $matches = array();
+
+ foreach ($text as $w) {
+ $word = trim($w[0]);
+ $pos = $w[1] - $diff;
+ $len = mb_strlen($word);
+
+ // skip exceptions
+ if ($this->is_exception($word)) {
+ }
+ else if (!pspell_check($this->plink, $word)) {
+ $suggestions = pspell_suggest($this->plink, $word);
+
+ if (sizeof($suggestions) > self::MAX_SUGGESTIONS) {
+ $suggestions = array_slice($suggestions, 0, self::MAX_SUGGESTIONS);
+ }
+
+ $matches[] = array($word, $pos, $len, null, $suggestions);
+ }
+
+ $diff += (strlen($word) - $len);
+ }
+
+ return $matches;
+ }
+
+
+ /**
+ * Returns the misspelled words
+ */
+ private function _pspell_words($text = null, $is_html=false)
+ {
+ $result = array();
+
+ if ($text) {
+ // init spellchecker
+ $this->_pspell_init();
+
+ if (!$this->plink) {
+ return array();
+ }
+
+ // With PSpell we don't need to get suggestions to return misspelled words
+ if ($is_html) {
+ $text = $this->html2text($text);
+ }
+
+ $text = preg_split($this->separator, $text, NULL, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);
+
+ foreach ($text as $w) {
+ $word = trim($w[0]);
+
+ // skip exceptions
+ if ($this->is_exception($word)) {
+ continue;
+ }
+
+ if (!pspell_check($this->plink, $word)) {
+ $result[] = $word;
+ }
+ }
+
+ return $result;
+ }
+
+ foreach ($this->matches as $m) {
+ $result[] = $m[0];
+ }
+
+ return $result;
+ }
+
+
+ /**
+ * Returns suggestions for misspelled word
+ */
+ private function _pspell_suggestions($word)
+ {
+ // init spellchecker
+ $this->_pspell_init();
+
+ if (!$this->plink) {
+ return array();
+ }
+
+ $suggestions = pspell_suggest($this->plink, $word);
+
+ if (sizeof($suggestions) > self::MAX_SUGGESTIONS)
+ $suggestions = array_slice($suggestions, 0, self::MAX_SUGGESTIONS);
+
+ return is_array($suggestions) ? $suggestions : array();
+ }
+
+
+ /**
+ * Initializes PSpell dictionary
+ */
+ private function _pspell_init()
+ {
+ if (!$this->plink) {
+ if (!extension_loaded('pspell')) {
+ $this->error = "Pspell extension not available";
+ rcube::raise_error(array(
+ 'code' => 500, 'type' => 'php',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => $this->error), true, false);
+
+ return;
+ }
+
+ $this->plink = pspell_new($this->lang, null, null, RCUBE_CHARSET, PSPELL_FAST);
+ }
+
+ if (!$this->plink) {
+ $this->error = "Unable to load Pspell engine for selected language";
+ }
+ }
+
+
+ private function _googie_check($text)
+ {
+ // spell check uri is configured
+ $url = $this->rc->config->get('spellcheck_uri');
+
+ if ($url) {
+ $a_uri = parse_url($url);
+ $ssl = ($a_uri['scheme'] == 'https' || $a_uri['scheme'] == 'ssl');
+ $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80);
+ $host = ($ssl ? 'ssl://' : '') . $a_uri['host'];
+ $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $this->lang;
+ }
+ else {
+ $host = self::GOOGLE_HOST;
+ $port = self::GOOGLE_PORT;
+ $path = '/tbproxy/spell?lang=' . $this->lang;
+ }
+
+ // Google has some problem with spaces, use \n instead
+ $gtext = str_replace(' ', "\n", $text);
+
+ $gtext = '<?xml version="1.0" encoding="utf-8" ?>'
+ .'<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1">'
+ .'<text>' . htmlspecialchars($gtext) . '</text>'
+ .'</spellrequest>';
+
+ $store = '';
+ if ($fp = fsockopen($host, $port, $errno, $errstr, 30)) {
+ $out = "POST $path HTTP/1.0\r\n";
+ $out .= "Host: " . str_replace('ssl://', '', $host) . "\r\n";
+ $out .= "Content-Length: " . strlen($gtext) . "\r\n";
+ $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
+ $out .= "Connection: Close\r\n\r\n";
+ $out .= $gtext;
+ fwrite($fp, $out);
+
+ while (!feof($fp))
+ $store .= fgets($fp, 128);
+ fclose($fp);
+ }
+
+ if (!$store) {
+ $this->error = "Empty result from spelling engine";
+ }
+
+ preg_match_all('/<c o="([^"]*)" l="([^"]*)" s="([^"]*)">([^<]*)<\/c>/', $store, $matches, PREG_SET_ORDER);
+
+ // skip exceptions (if appropriate options are enabled)
+ if (!empty($this->options['ignore_syms']) || !empty($this->options['ignore_nums'])
+ || !empty($this->options['ignore_caps']) || !empty($this->options['dictionary'])
+ ) {
+ foreach ($matches as $idx => $m) {
+ $word = mb_substr($text, $m[1], $m[2], RCUBE_CHARSET);
+ // skip exceptions
+ if ($this->is_exception($word)) {
+ unset($matches[$idx]);
+ }
+ }
+ }
+
+ return $matches;
+ }
+
+
+ private function _googie_words($text = null, $is_html=false)
+ {
+ if ($text) {
+ if ($is_html) {
+ $text = $this->html2text($text);
+ }
+
+ $matches = $this->_googie_check($text);
+ }
+ else {
+ $matches = $this->matches;
+ $text = $this->content;
+ }
+
+ $result = array();
+
+ foreach ($matches as $m) {
+ $result[] = mb_substr($text, $m[1], $m[2], RCUBE_CHARSET);
+ }
+
+ return $result;
+ }
+
+
+ private function _googie_suggestions($word)
+ {
+ if ($word) {
+ $matches = $this->_googie_check($word);
+ }
+ else {
+ $matches = $this->matches;
+ }
+
+ if ($matches[0][4]) {
+ $suggestions = explode("\t", $matches[0][4]);
+ if (sizeof($suggestions) > self::MAX_SUGGESTIONS) {
+ $suggestions = array_slice($suggestions, 0, MAX_SUGGESTIONS);
+ }
+
+ return $suggestions;
+ }
+
+ return array();
}
diff --git a/program/lib/Roundcube/rcube_storage.php b/program/lib/Roundcube/rcube_storage.php
index e697b2c73..8193e540c 100644
--- a/program/lib/Roundcube/rcube_storage.php
+++ b/program/lib/Roundcube/rcube_storage.php
@@ -61,6 +61,8 @@ abstract class rcube_storage
'MAIL-FOLLOWUP-TO',
'MAIL-REPLY-TO',
'RETURN-PATH',
+ 'DELIVERED-TO',
+ 'ENVELOPE-TO',
);
const UNKNOWN = 0;
@@ -538,13 +540,12 @@ abstract class rcube_storage
/**
* Append a mail message (source) to a specific folder.
*
- * @param string $folder Target folder
- * @param string|array $message The message source string or filename
- * or array (of strings and file pointers)
- * @param string $headers Headers string if $message contains only the body
- * @param boolean $is_file True if $message is a filename
- * @param array $flags Message flags
- * @param mixed $date Message internal date
+ * @param string $folder Target folder
+ * @param string $message The message source string or filename
+ * @param string $headers Headers string if $message contains only the body
+ * @param boolean $is_file True if $message is a filename
+ * @param array $flags Message flags
+ * @param mixed $date Message internal date
*
* @return int|bool Appended message UID or True on success, False on error
*/
@@ -806,14 +807,13 @@ abstract class rcube_storage
/**
- * Returns current status of a folder (compared to the last time use)
+ * Returns current status of a folder
*
* @param string $folder Folder name
- * @param array $diff Difference data
*
* @return int Folder status
*/
- abstract function folder_status($folder = null, &$diff = array());
+ abstract function folder_status($folder = null);
/**
@@ -985,6 +985,6 @@ abstract class rcube_storage
/**
* Delete outdated cache entries
*/
- abstract function cache_gc();
+ abstract function expunge_cache();
} // end class rcube_storage
diff --git a/program/lib/Roundcube/rcube_string_replacer.php b/program/lib/Roundcube/rcube_string_replacer.php
index 77b91d18b..bd26f8e7d 100644
--- a/program/lib/Roundcube/rcube_string_replacer.php
+++ b/program/lib/Roundcube/rcube_string_replacer.php
@@ -24,19 +24,13 @@
*/
class rcube_string_replacer
{
- public static $pattern = '/##str_replacement_(\d+)##/';
+ public static $pattern = '/##str_replacement\[([0-9]+)\]##/';
public $mailto_pattern;
public $link_pattern;
- public $linkref_index;
- public $linkref_pattern;
-
private $values = array();
- private $options = array();
- private $linkrefs = array();
- private $urls = array();
- function __construct($options = array())
+ function __construct()
{
// Simplified domain expression for UTF8 characters handling
// Support unicode/punycode in top-level domain part
@@ -50,10 +44,6 @@ class rcube_string_replacer
."@$utf_domain" // domain-part
."(\?[$url1$url2]+)?" // e.g. ?subject=test...
.")/";
- $this->linkref_index = '/\[([^\]#]+)\](:?\s*##str_replacement_(\d+)##)/';
- $this->linkref_pattern = '/\[([^\]#]+)\]/';
-
- $this->options = $options;
}
/**
@@ -74,7 +64,7 @@ class rcube_string_replacer
*/
public function get_replacement($i)
{
- return '##str_replacement_' . $i . '##';
+ return '##str_replacement['.$i.']##';
}
/**
@@ -99,11 +89,10 @@ class rcube_string_replacer
if ($url) {
$suffix = $this->parse_url_brackets($url);
- $attrib = (array)$this->options['link_attribs'];
- $attrib['href'] = $url_prefix . $url;
-
- $i = $this->add(html::a($attrib, rcube::Q($url)) . $suffix);
- $this->urls[$i] = $attrib['href'];
+ $i = $this->add(html::a(array(
+ 'href' => $url_prefix . $url,
+ 'target' => '_blank'
+ ), rcube::Q($url)) . $suffix);
}
// Return valid link for recognized schemes, otherwise
@@ -112,32 +101,6 @@ class rcube_string_replacer
}
/**
- * Callback to add an entry to the link index
- */
- public function linkref_addindex($matches)
- {
- $key = $matches[1];
- $this->linkrefs[$key] = $this->urls[$matches[3]];
-
- return $this->get_replacement($this->add('['.$key.']')) . $matches[2];
- }
-
- /**
- * Callback to replace link references with real links
- */
- public function linkref_callback($matches)
- {
- $i = 0;
- if ($url = $this->linkrefs[$matches[1]]) {
- $attrib = (array)$this->options['link_attribs'];
- $attrib['href'] = $url;
- $i = $this->add(html::a($attrib, rcube::Q($matches[1])));
- }
-
- return $i > 0 ? '['.$this->get_replacement($i).']' : $matches[0];
- }
-
- /**
* Callback function used to build mailto: links around e-mail strings
*
* @param array Matches result from preg_replace_callback
@@ -176,9 +139,6 @@ class rcube_string_replacer
// search for patterns like links and e-mail addresses
$str = preg_replace_callback($this->link_pattern, array($this, 'link_callback'), $str);
$str = preg_replace_callback($this->mailto_pattern, array($this, 'mailto_callback'), $str);
- // resolve link references
- $str = preg_replace_callback($this->linkref_index, array($this, 'linkref_addindex'), $str);
- $str = preg_replace_callback($this->linkref_pattern, array($this, 'linkref_callback'), $str);
return $str;
}
diff --git a/program/lib/Roundcube/rcube_user.php b/program/lib/Roundcube/rcube_user.php
index 57f63361d..505b190d1 100644
--- a/program/lib/Roundcube/rcube_user.php
+++ b/program/lib/Roundcube/rcube_user.php
@@ -163,16 +163,8 @@ class rcube_user
if (!$this->ID)
return false;
- $plugin = $this->rc->plugins->exec_hook('preferences_update', array(
- 'userid' => $this->ID, 'prefs' => $a_user_prefs, 'old' => (array)$this->get_prefs()));
-
- if (!empty($plugin['abort'])) {
- return;
- }
-
- $a_user_prefs = $plugin['prefs'];
- $old_prefs = $plugin['old'];
- $config = $this->rc->config;
+ $config = $this->rc->config;
+ $old_prefs = (array)$this->get_prefs();
// merge (partial) prefs array with existing settings
$save_prefs = $a_user_prefs + $old_prefs;
@@ -503,9 +495,9 @@ class rcube_user
"INSERT INTO ".$dbh->table_name('users').
" (created, last_login, username, mail_host, language)".
" VALUES (".$dbh->now().", ".$dbh->now().", ?, ?, ?)",
- $data['user'],
- $data['host'],
- $data['language']);
+ strip_newlines($data['user']),
+ strip_newlines($data['host']),
+ strip_newlines($data['language']));
if ($user_id = $dbh->insert_id('users')) {
// create rcube_user instance to make plugin hooks work
@@ -525,7 +517,7 @@ class rcube_user
if (empty($user_email)) {
$user_email = strpos($data['user'], '@') ? $user : sprintf('%s@%s', $data['user'], $mail_domain);
}
- $email_list[] = $user_email;
+ $email_list[] = strip_newlines($user_email);
}
// identities_level check
else if (count($email_list) > 1 && $rcube->config->get('identities_level', 0) > 1) {
@@ -555,6 +547,7 @@ class rcube_user
$record['name'] = $user_name != $record['email'] ? $user_name : '';
}
+ $record['name'] = strip_newlines($record['name']);
$record['user_id'] = $user_id;
$record['standard'] = $standard;
diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php
index 27a618d83..4dadbb8bd 100644
--- a/program/lib/Roundcube/rcube_utils.php
+++ b/program/lib/Roundcube/rcube_utils.php
@@ -390,21 +390,20 @@ class rcube_utils
* Convert array of request parameters (prefixed with _)
* to a regular array with non-prefixed keys.
*
- * @param int $mode Source to get value from (GPC)
- * @param string $ignore PCRE expression to skip parameters by name
- * @param boolean $allow_html Allow HTML tags in field value
+ * @param int $mode Source to get value from (GPC)
+ * @param string $ignore PCRE expression to skip parameters by name
*
* @return array Hash array with all request parameters
*/
- public static function request2param($mode = null, $ignore = 'task|action', $allow_html = false)
+ public static function request2param($mode = null, $ignore = 'task|action')
{
$out = array();
$src = $mode == self::INPUT_GET ? $_GET : ($mode == self::INPUT_POST ? $_POST : $_REQUEST);
- foreach (array_keys($src) as $key) {
+ foreach ($src as $key => $value) {
$fname = $key[0] == '_' ? substr($key, 1) : $key;
if ($ignore && !preg_match('/^(' . $ignore . ')$/', $fname)) {
- $out[$fname] = self::get_input_value($key, $mode, $allow_html);
+ $out[$fname] = self::get_input_value($key, $mode);
}
}
@@ -445,41 +444,34 @@ class rcube_utils
$source = self::xss_entity_decode($source);
$stripped = preg_replace('/[^a-z\(:;]/i', '', $source);
$evilexpr = 'expression|behavior|javascript:|import[^a]' . (!$allow_remote ? '|url\(' : '');
-
if (preg_match("/$evilexpr/i", $stripped)) {
return '/* evil! */';
}
- $strict_url_regexp = '!url\s*\([ "\'](https?:)//[a-z0-9/._+-]+["\' ]\)!Uims';
-
// cut out all contents between { and }
while (($pos = strpos($source, '{', $last_pos)) && ($pos2 = strpos($source, '}', $pos))) {
- $nested = strpos($source, '{', $pos+1);
- if ($nested && $nested < $pos2) // when dealing with nested blocks (e.g. @media), take the inner one
- $pos = $nested;
- $length = $pos2 - $pos - 1;
- $styles = substr($source, $pos+1, $length);
+ $styles = substr($source, $pos+1, $pos2-($pos+1));
// check every line of a style block...
if ($allow_remote) {
$a_styles = preg_split('/;[\r\n]*/', $styles, -1, PREG_SPLIT_NO_EMPTY);
-
foreach ($a_styles as $line) {
$stripped = preg_replace('/[^a-z\(:;]/i', '', $line);
// ... and only allow strict url() values
- if (stripos($stripped, 'url(') && !preg_match($strict_url_regexp, $line)) {
+ $regexp = '!url\s*\([ "\'](https?:)//[a-z0-9/._+-]+["\' ]\)!Uims';
+ if (stripos($stripped, 'url(') && !preg_match($regexp, $line)) {
$a_styles = array('/* evil! */');
break;
}
}
-
$styles = join(";\n", $a_styles);
}
- $key = $replacements->add($styles);
- $repl = $replacements->get_replacement($key);
- $source = substr_replace($source, $repl, $pos+1, $length);
- $last_pos = $pos2 - ($length - strlen($repl));
+ $key = $replacements->add($styles);
+ $source = substr($source, 0, $pos+1)
+ . $replacements->get_replacement($key)
+ . substr($source, $pos2, strlen($source)-$pos2);
+ $last_pos = $pos+2;
}
// remove html comments and add #container to each tag selector.
@@ -514,24 +506,17 @@ class rcube_utils
*/
public static function file2class($mimetype, $filename)
{
- $mimetype = strtolower($mimetype);
- $filename = strtolower($filename);
-
list($primary, $secondary) = explode('/', $mimetype);
$classes = array($primary ? $primary : 'unknown');
-
if ($secondary) {
$classes[] = $secondary;
}
-
- if (preg_match('/\.([a-z0-9]+)$/', $filename, $m)) {
- if (!in_array($m[1], $classes)) {
- $classes[] = $m[1];
- }
+ if (preg_match('/\.([a-z0-9]+)$/i', $filename, $m)) {
+ $classes[] = $m[1];
}
- return join(" ", $classes);
+ return strtolower(join(" ", $classes));
}
@@ -674,21 +659,6 @@ class rcube_utils
/**
- * Returns the real remote IP address
- *
- * @return string Remote IP address
- */
- public static function remote_addr()
- {
- foreach (array('HTTP_X_FORWARDED_FOR','HTTP_X_REAL_IP','REMOTE_ADDR') as $prop) {
- if (!empty($_SERVER[$prop]))
- return $_SERVER[$prop];
- }
-
- return '';
- }
-
- /**
* Read a specific HTTP request header.
*
* @param string $name Header name
@@ -747,88 +717,31 @@ class rcube_utils
*/
public static function strtotime($date)
{
- $date = self::clean_datestr($date);
-
- // unix timestamp
- if (is_numeric($date)) {
- return (int) $date;
- }
-
- // if date parsing fails, we have a date in non-rfc format.
- // remove token from the end and try again
- while ((($ts = @strtotime($date)) === false) || ($ts < 0)) {
- $d = explode(' ', $date);
- array_pop($d);
- if (!$d) {
- break;
- }
- $date = implode(' ', $d);
- }
-
- return (int) $ts;
- }
-
- /**
- * Date parsing function that turns the given value into a DateTime object
- *
- * @param string $date Date string
- *
- * @return object DateTime instance or false on failure
- */
- public static function anytodatetime($date)
- {
- if (is_object($date) && is_a($date, 'DateTime')) {
- return $date;
- }
-
- $dt = false;
- $date = self::clean_datestr($date);
+ $date = trim($date);
- // try to parse string with DateTime first
- if (!empty($date)) {
- try {
- $dt = new DateTime($date);
- }
- catch (Exception $e) {
- // ignore
- }
+ // check for MS Outlook vCard date format YYYYMMDD
+ if (preg_match('/^([12][90]\d\d)([01]\d)([0123]\d)$/', $date, $m)) {
+ return mktime(0,0,0, intval($m[2]), intval($m[3]), intval($m[1]));
}
- // try our advanced strtotime() method
- if (!$dt && ($timestamp = self::strtotime($date))) {
- try {
- $dt = new DateTime("@".$timestamp);
- }
- catch (Exception $e) {
- // ignore
- }
+ // common little-endian formats, e.g. dd/mm/yyyy (not all are supported by strtotime)
+ if (preg_match('/^(\d{1,2})[.\/-](\d{1,2})[.\/-](\d{4})$/', $date, $m)
+ && $m[1] > 0 && $m[1] <= 31 && $m[2] > 0 && $m[2] <= 12 && $m[3] >= 1970
+ ) {
+ return mktime(0,0,0, intval($m[2]), intval($m[1]), intval($m[3]));
}
- return $dt;
- }
-
- /**
- * Clean up date string for strtotime() input
- *
- * @param string $date Date string
- *
- * @return string Date string
- */
- public static function clean_datestr($date)
- {
- $date = trim($date);
-
- // check for MS Outlook vCard date format YYYYMMDD
- if (preg_match('/^([12][90]\d\d)([01]\d)([0123]\d)$/', $date, $m)) {
- return sprintf('%04d-%02d-%02d 00:00:00', intval($m[1]), intval($m[2]), intval($m[3]));
+ // unix timestamp
+ if (is_numeric($date)) {
+ return (int) $date;
}
// Clean malformed data
$date = preg_replace(
array(
- '/GMT\s*([+-][0-9]+)/', // support non-standard "GMTXXXX" literal
- '/[^a-z0-9\x20\x09:+-\/]/i', // remove any invalid characters
- '/\s*(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*/i', // remove weekday names
+ '/GMT\s*([+-][0-9]+)/', // support non-standard "GMTXXXX" literal
+ '/[^a-z0-9\x20\x09:+-]/i', // remove any invalid characters
+ '/\s*(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*/i', // remove weekday names
),
array(
'\\1',
@@ -836,23 +749,21 @@ class rcube_utils
'',
), $date);
- $date = trim($date);
-
- // try to fix dd/mm vs. mm/dd discrepancy, we can't do more here
- if (preg_match('/^(\d{1,2})[.\/-](\d{1,2})[.\/-](\d{4})$/', $date, $m)) {
- $mdy = $m[2] > 12 && $m[1] <= 12;
- $day = $mdy ? $m[2] : $m[1];
- $month = $mdy ? $m[1] : $m[2];
- $date = sprintf('%04d-%02d-%02d 00:00:00', intval($m[3]), $month, $day);
- }
- // I've found that YYYY.MM.DD is recognized wrong, so here's a fix
- else if (preg_match('/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/', $date)) {
- $date = str_replace('.', '-', $date) . ' 00:00:00';
+ // if date parsing fails, we have a date in non-rfc format.
+ // remove token from the end and try again
+ while ((($ts = @strtotime($date)) === false) || ($ts < 0)) {
+ $d = explode(' ', $date);
+ array_pop($d);
+ if (!$d) {
+ break;
+ }
+ $date = implode(' ', $d);
}
- return $date;
+ return (int) $ts;
}
+
/*
* Idn_to_ascii wrapper.
* Intl/Idn modules version of this function doesn't work with e-mail address
diff --git a/program/lib/Roundcube/rcube_vcard.php b/program/lib/Roundcube/rcube_vcard.php
index a54ee7e11..f76c4f08d 100644
--- a/program/lib/Roundcube/rcube_vcard.php
+++ b/program/lib/Roundcube/rcube_vcard.php
@@ -47,7 +47,6 @@ class rcube_vcard
'manager' => 'X-MANAGER',
'spouse' => 'X-SPOUSE',
'edit' => 'X-AB-EDIT',
- 'groups' => 'CATEGORIES',
);
private $typemap = array(
'IPHONE' => 'mobile',
@@ -358,8 +357,8 @@ class rcube_vcard
case 'birthday':
case 'anniversary':
- if (($val = rcube_utils::anytodatetime($value)) && ($fn = self::$fieldmap[$field])) {
- $this->raw[$fn][] = array(0 => $val->format('Y-m-d'), 'value' => array('date'));
+ if (($val = rcube_utils::strtotime($value)) && ($fn = self::$fieldmap[$field])) {
+ $this->raw[$fn][] = array(0 => date('Y-m-d', $val), 'value' => array('date'));
}
break;
@@ -378,7 +377,7 @@ class rcube_vcard
default:
if ($field == 'phone' && $this->phonetypemap[$type_uc]) {
$type = $this->phonetypemap[$type_uc];
- }
+ }
if (($tag = self::$fieldmap[$field]) && (is_array($value) || strlen($value))) {
$index = count($this->raw[$tag]);
@@ -482,7 +481,7 @@ class rcube_vcard
$vcard_block = '';
$in_vcard_block = false;
- foreach (preg_split("/[\r\n]+/", $data) as $line) {
+ foreach (preg_split("/[\r\n]+/", $data) as $i => $line) {
if ($in_vcard_block && !empty($line)) {
$vcard_block .= $line . "\n";
}
@@ -518,28 +517,20 @@ class rcube_vcard
*/
public static function cleanup($vcard)
{
+ // Convert special types (like Skype) to normal type='skype' classes with this simple regex ;)
+ $vcard = preg_replace(
+ '/item(\d+)\.(TEL|EMAIL|URL)([^:]*?):(.*?)item\1.X-ABLabel:(?:_\$!<)?([\w-() ]*)(?:>!\$_)?./s',
+ '\2;type=\5\3:\4',
+ $vcard);
+
// convert Apple X-ABRELATEDNAMES into X-* fields for better compatibility
$vcard = preg_replace_callback(
'/item(\d+)\.(X-ABRELATEDNAMES)([^:]*?):(.*?)item\1.X-ABLabel:(?:_\$!<)?([\w-() ]*)(?:>!\$_)?./s',
array('self', 'x_abrelatednames_callback'),
$vcard);
- // Cleanup
- $vcard = preg_replace(array(
- // convert special types (like Skype) to normal type='skype' classes with this simple regex ;)
- '/item(\d+)\.(TEL|EMAIL|URL)([^:]*?):(.*?)item\1.X-ABLabel:(?:_\$!<)?([\w-() ]*)(?:>!\$_)?./s',
- '/^item\d*\.X-AB.*$/m', // remove cruft like item1.X-AB*
- '/^item\d*\./m', // remove item1.ADR instead of ADR
- '/\n+/', // remove empty lines
- '/^(N:[^;\R]*)$/m', // if N doesn't have any semicolons, add some
- ),
- array(
- '\2;type=\5\3:\4',
- '',
- '',
- "\n",
- '\1;;;;',
- ), $vcard);
+ // Remove cruft like item1.X-AB*, item1.ADR instead of ADR, and empty lines
+ $vcard = preg_replace(array('/^item\d*\.X-AB.*$/m', '/^item\d*\./m', "/\n+/"), array('', '', "\n"), $vcard);
// convert X-WAB-GENDER to X-GENDER
if (preg_match('/X-WAB-GENDER:(\d)/', $vcard, $matches)) {
@@ -547,6 +538,9 @@ class rcube_vcard
$vcard = preg_replace('/X-WAB-GENDER:\d/', 'X-GENDER:' . $value, $vcard);
}
+ // if N doesn't have any semicolons, add some
+ $vcard = preg_replace('/^(N:[^;\R]*)$/m', '\1;;;;', $vcard);
+
return $vcard;
}
@@ -762,7 +756,7 @@ class rcube_vcard
*
* @return string Joined and quoted string
*/
- public static function vcard_quote($s, $sep = ';')
+ private static function vcard_quote($s, $sep = ';')
{
if (is_array($s)) {
foreach($s as $part) {
@@ -771,7 +765,7 @@ class rcube_vcard
return(implode($sep, (array)$r));
}
- return strtr($s, array('\\' => '\\\\', "\r" => '', "\n" => '\n', $sep => '\\'.$sep));
+ return strtr($s, array('\\' => '\\\\', "\r" => '', "\n" => '\n', ',' => '\,', ';' => '\;'));
}
/**
diff --git a/program/lib/Roundcube/rcube_washtml.php b/program/lib/Roundcube/rcube_washtml.php
index e7467545f..f964f8b35 100644
--- a/program/lib/Roundcube/rcube_washtml.php
+++ b/program/lib/Roundcube/rcube_washtml.php
@@ -377,14 +377,7 @@ class rcube_washtml
// Detect max nesting level (for dumpHTML) (#1489110)
$this->max_nesting_level = (int) @ini_get('xdebug.max_nesting_level');
- // Use optimizations if supported
- if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
- @$node->loadHTML($html, LIBXML_PARSEHUGE | LIBXML_COMPACT);
- }
- else {
- @$node->loadHTML($html);
- }
-
+ @$node->loadHTML($html);
return $this->dumpHtml($node);
}
@@ -417,25 +410,6 @@ class rcube_washtml
);
$html = preg_replace($html_search, $html_replace, trim($html));
- //-> Replace all of those weird MS Word quotes and other high characters
- $badwordchars=array(
- "\xe2\x80\x98", // left single quote
- "\xe2\x80\x99", // right single quote
- "\xe2\x80\x9c", // left double quote
- "\xe2\x80\x9d", // right double quote
- "\xe2\x80\x94", // em dash
- "\xe2\x80\xa6" // elipses
- );
- $fixedwordchars=array(
- "'",
- "'",
- '"',
- '"',
- '&mdash;',
- '...'
- );
- $html = str_replace($badwordchars,$fixedwordchars, $html);
-
// PCRE errors handling (#1486856), should we use something like for every preg_* use?
if ($html === null && ($preg_error = preg_last_error()) != PREG_NO_ERROR) {
$errstr = "Could not clean up HTML message! PCRE Error: $preg_error.";
diff --git a/program/localization/ar_SA/labels.inc b/program/localization/ar_SA/labels.inc
index 4100f7c4a..af08cc301 100644
--- a/program/localization/ar_SA/labels.inc
+++ b/program/localization/ar_SA/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'مرحباً بكم ÙÙŠ $product';
$labels['username'] = 'اسم المستخدم';
$labels['password'] = 'كلمة المرور';
$labels['server'] = 'الخادم';
$labels['login'] = 'تسجيل الدخول';
+
+// taskbar
$labels['logout'] = 'تسجيل الخروج';
$labels['mail'] = 'البريد';
$labels['settings'] = 'الإعدادات الشخصية';
$labels['addressbook'] = 'دÙتر العناوين';
+
+// mailbox names
$labels['inbox'] = 'الوارد';
$labels['drafts'] = 'المسودات';
$labels['sent'] = 'المرسل';
$labels['trash'] = 'المهملات';
$labels['junk'] = 'غير المرغوب';
+
+// message listing
$labels['subject'] = 'الموضوع';
$labels['from'] = 'المرسل';
+$labels['sender'] = 'Sender';
$labels['to'] = 'المستقبل';
$labels['cc'] = 'نسخة';
$labels['bcc'] = 'نسخة مخÙية';
@@ -41,18 +52,28 @@ $labels['size'] = 'الحجم';
$labels['priority'] = 'الأولوية';
$labels['organization'] = 'المنظمة';
$labels['readstatus'] = 'حالة القراءة';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'مجلدات';
$labels['messagesfromto'] = 'الرسالة $from إلى $to من مجموع $count';
$labels['threadsfromto'] = 'جهات الإتصال $from إلى $to من مجموع $count';
$labels['messagenrof'] = 'الرسالة $nr من $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'نسخ';
$labels['move'] = 'نقل';
$labels['moveto'] = 'نقل إلى...';
$labels['download'] = 'تنزيل';
-$labels['open'] = 'Ùتح';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'اسم الملÙ';
$labels['filesize'] = 'حجم الملÙ';
+
$labels['addtoaddressbook'] = 'إضاÙØ© إلى دÙتر العناوين';
+
+// weekdays short
$labels['sun'] = 'أحد';
$labels['mon'] = 'إثنين';
$labels['tue'] = 'ثلاثاء';
@@ -60,6 +81,8 @@ $labels['wed'] = 'أربعاء';
$labels['thu'] = 'خميس';
$labels['fri'] = 'جمعة';
$labels['sat'] = 'سبت';
+
+// weekdays long
$labels['sunday'] = 'الأحد';
$labels['monday'] = 'الإثنين';
$labels['tuesday'] = 'الثلاثاء';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'الأربعاء';
$labels['thursday'] = 'الخميس';
$labels['friday'] = 'الجمعة';
$labels['saturday'] = 'السبت';
+
+// months short
$labels['jan'] = 'يناير';
$labels['feb'] = 'Ùبراير';
$labels['mar'] = 'مارس';
@@ -79,6 +104,8 @@ $labels['sep'] = 'سبتمبر';
$labels['oct'] = 'أكتوبر';
$labels['nov'] = 'نوÙمبر';
$labels['dec'] = 'ديسمبر';
+
+// months long
$labels['longjan'] = 'يناير';
$labels['longfeb'] = 'Ùبراير';
$labels['longmar'] = 'مارس';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'سبتمبر';
$labels['longoct'] = 'أكتوبر';
$labels['longnov'] = 'نوÙمبر';
$labels['longdec'] = 'ديسمبر';
+
$labels['today'] = 'اليوم';
+
+// toolbar buttons
$labels['refresh'] = 'تحديث';
$labels['checkmail'] = 'التحقق من وجود رسائل جديدة';
$labels['compose'] = 'إنشاء رسالة';
@@ -124,6 +154,7 @@ $labels['moreactions'] = 'إجراءات إضاÙية...';
$labels['more'] = 'المزيد';
$labels['back'] = 'العودة';
$labels['options'] = 'خيارات';
+
$labels['select'] = 'تحديد';
$labels['all'] = 'الكل';
$labels['none'] = 'لاشيء';
@@ -131,7 +162,7 @@ $labels['currpage'] = 'الصÙحة الحالية';
$labels['unread'] = 'غير المقروءة';
$labels['flagged'] = 'موسوم';
$labels['unanswered'] = 'بلا رد';
-$labels['withattachment'] = 'مع المرÙقات';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'محذوÙ';
$labels['undeleted'] = 'غير محذوÙØ©';
$labels['invert'] = 'عكس';
@@ -142,6 +173,7 @@ $labels['expand-all'] = 'إظهار الكل';
$labels['expand-unread'] = 'إظهار الغير مقروءة';
$labels['collapse-all'] = 'ضمّ الكل';
$labels['threaded'] = 'متتابع';
+
$labels['autoexpand_threads'] = 'إظهار تتابعات الرسائل';
$labels['do_expand'] = 'جميع التتابعات';
$labels['expand_only_unread'] = 'Ùقط مع الرسائل الغير مقروءة';
@@ -157,18 +189,27 @@ $labels['listcolumns'] = 'أعمدة السرد';
$labels['listsorting'] = 'أعمدة الترتيب';
$labels['listorder'] = 'طريقة الترتيب';
$labels['listmode'] = 'وضع طريقة السرد';
+
$labels['folderactions'] = 'إجراءات المجلد...';
$labels['compact'] = 'ضغط';
$labels['empty'] = 'تÙريغ';
+
$labels['quota'] = 'المساحة المستخدمة';
$labels['unknown'] = 'مجهول';
$labels['unlimited'] = 'غير محدود';
+
$labels['quicksearch'] = 'البحث السريع';
$labels['resetsearch'] = 'استعادة البحث للاÙتراضي';
$labels['searchmod'] = 'أماكن البحث';
$labels['msgtext'] = 'كامل الرسالة';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'اÙتح ÙÙŠ ناÙذة جديدة';
$labels['emlsave'] = 'تنزيل (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'تعديل كجديد';
$labels['send'] = 'ارسل';
$labels['sendmessage'] = 'إرسال الرسالة الآن';
@@ -180,40 +221,52 @@ $labels['returnreceipt'] = 'ايصال استلام';
$labels['dsn'] = 'تنويه حالة التوصيل';
$labels['mailreplyintro'] = 'كتب $sender ÙÙŠ $date:';
$labels['originalmessage'] = 'الرسالة الأساسية';
+
$labels['editidents'] = 'تعديل الهويات';
$labels['spellcheck'] = 'التدقيق اﻹملائى';
$labels['checkspelling'] = 'التدقيق الإملائي';
$labels['resumeediting'] = 'متابعة التحرير';
$labels['revertto'] = 'استعادة إلى';
+
$labels['attach'] = 'إرÙاق';
$labels['attachments'] = 'مرÙقات';
$labels['upload'] = 'تحميل';
$labels['uploadprogress'] = '$percent ($current من $total)';
$labels['close'] = 'إغلاق';
$labels['messageoptions'] = 'خيارات الرسائل...';
+
$labels['low'] = 'منخض';
$labels['lowest'] = 'الأقل';
$labels['normal'] = 'عادي';
$labels['high'] = 'مرتÙع';
$labels['highest'] = 'الأعلى';
+
$labels['nosubject'] = '(دون موضوع)';
$labels['showimages'] = 'إظهار الصور';
$labels['alwaysshow'] = 'دائماً أظهر الصّور القادمة من $sender';
$labels['isdraft'] = 'هذه مسودّة رسالة';
$labels['andnmore'] = '$nr المزيد ...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'نص مجرد';
$labels['savesentmessagein'] = 'احÙظ الرسالة المÙرسلة ÙÙŠ';
$labels['dontsave'] = 'لا تحÙظها';
$labels['maxuploadsize'] = 'أقصى حجم للمل٠هو $size';
+
$labels['addcc'] = 'أض٠CC';
$labels['addbcc'] = 'أض٠BCC';
$labels['addreplyto'] = 'أضي٠Reply-To';
$labels['addfollowupto'] = 'إضاÙØ© Mail-Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'طلب المرسل إعلامه عند قراءتك لرسالته. هل تود إعلام المرسل؟';
$labels['receiptread'] = 'إيصال الاستلام )بالقراءة)';
$labels['yourmessage'] = 'هذا إيصال بقراءة رسالتك';
$labels['receiptnote'] = 'ملاحظة: ÙŠÙعلمك هذا الإيصال بأن رسالتك قد ظهرت على جهاز المستقبÙÙ„. ليست هناك أية ضمانات أن المستقبل قد قرأ أو Ùهم محتويات الرسالة.';
+
+// address boook
$labels['name'] = 'اسم العرض';
$labels['firstname'] = 'الإسم الأول';
$labels['surname'] = 'الإسم الأخير';
@@ -248,6 +301,7 @@ $labels['search'] = 'بحث';
$labels['advsearch'] = 'بحث متقدم';
$labels['advanced'] = 'Ù…Ùتقدم';
$labels['other'] = 'آخر';
+
$labels['typehome'] = 'المنزل';
$labels['typework'] = 'العمل';
$labels['typeother'] = 'آخر';
@@ -262,12 +316,14 @@ $labels['typeassistant'] = 'المساعد';
$labels['typehomepage'] = 'الرئيسية';
$labels['typeblog'] = 'المدوّنة';
$labels['typeprofile'] = 'المل٠الشخصي';
+
$labels['addfield'] = 'إضاÙØ© حقل...';
$labels['addcontact'] = 'إضاÙØ© المراسل المحدد إلى دÙتر عناويني';
$labels['editcontact'] = 'تحرير بيانات المراسل';
$labels['contacts'] = 'المراسلين';
$labels['contactproperties'] = 'خواص جهة الإتصال';
$labels['personalinfo'] = 'المعلومات الشخصية';
+
$labels['edit'] = 'تحرير';
$labels['cancel'] = 'إلغاء';
$labels['save'] = 'Ø­Ùظ';
@@ -276,46 +332,60 @@ $labels['rename'] = 'إعادة التسمية';
$labels['addphoto'] = 'إضاÙØ©';
$labels['replacephoto'] = 'استبدال';
$labels['uploadphoto'] = 'ارÙع صورة';
+
$labels['newcontact'] = 'إنشاء بطاقة مراسل جديدة';
$labels['deletecontact'] = 'حذ٠المراسلين المحددين';
$labels['composeto'] = 'إنشاء رسالة إليه';
$labels['contactsfromto'] = 'المراسلون $from إلى $to من $count';
$labels['print'] = 'طباعة';
$labels['export'] = 'تصدير';
-$labels['exportall'] = 'تصدير الكل';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'صدّر المراسلين بنسق vCard';
$labels['newcontactgroup'] = 'إنشاء مجموعة مراسلين جديدة';
$labels['grouprename'] = 'تغيير اسم المجموعة';
$labels['groupdelete'] = 'حذ٠المجموعة';
$labels['groupremoveselected'] = 'حذ٠العنوان المختار من المجموعة';
+
$labels['previouspage'] = 'عرض المجموعة السابقة';
$labels['firstpage'] = 'عرض المجموعة الأولى';
$labels['nextpage'] = 'عرض المجموعة التالية';
$labels['lastpage'] = 'عرض المجموعة الأخيرة';
+
$labels['group'] = 'مجموعة';
$labels['groups'] = 'المجموعات';
$labels['personaladrbook'] = 'العناوين الشخصية';
+
$labels['searchsave'] = 'Ø­Ùظ البحث';
$labels['searchdelete'] = 'حذ٠البحث';
+
$labels['import'] = 'استورد';
$labels['importcontacts'] = 'استورد المراسلين';
$labels['importfromfile'] = 'استورد من ملÙ:';
+$labels['importtarget'] = 'أض٠المراسلين الجدد إلى دÙتر العناوين:';
$labels['importreplace'] = 'استبدل دÙتر العناوين بأكمله';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'تم';
+
+// settings
$labels['settingsfor'] = 'إعدادات';
$labels['about'] = 'نبذة';
$labels['preferences'] = 'التÙضيلات';
$labels['userpreferences'] = 'تÙضيلات المستخدم';
$labels['editpreferences'] = 'تحرير تÙضيلات المستخدم';
+
$labels['identities'] = 'الهويات';
$labels['manageidentities'] = 'إدارة هويات هذا الحساب';
$labels['newidentity'] = 'هوية جديدة';
+
$labels['newitem'] = 'عنصر جديد';
$labels['edititem'] = 'تحرير عنصر';
+
$labels['preferhtml'] = 'تÙضيل صيغة HTML';
$labels['defaultcharset'] = 'ترميز المحار٠الاÙتراضي';
$labels['htmlmessage'] = 'رسالة بنسق HTML';
-$labels['digitalsig'] = 'التوقيع الالكتروني';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'نسق التاريخ';
$labels['timeformat'] = 'نسق الوقت';
$labels['prettydate'] = 'تواريخ منمقة';
@@ -330,7 +400,9 @@ $labels['showinextwin'] = 'Ùتح الرسالة ÙÙ‰ ناÙذة جديدة';
$labels['composeextwin'] = 'أرسال عن طريق ناÙذة جديدة';
$labels['htmleditor'] = 'إنشاء رسائل بنسق HTML';
$labels['htmlonreply'] = 'حال الرد على الرسائل بصيغة HTML Ùقط';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'توقيع HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'إظهار قسم المعاينة';
$labels['skin'] = 'شكل الواجهة';
$labels['logoutclear'] = 'Ø¥Ùراغ سلة المحذوÙات عند الخروج';
@@ -348,12 +420,14 @@ $labels['readwhendeleted'] = 'تحديد الرسالة كمقروءة عند ح
$labels['flagfordeletion'] = 'وضع علامة على الرسالة لحذÙها بدلاً منحذÙها';
$labels['skipdeleted'] = 'لا تظهر الرسائل المحذوÙØ©';
$labels['deletealways'] = 'حذ٠الرسائل مباشرة، إن تعذر نقلها إلىالمهملات';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'إظهار الصور الخارجية المدمجة';
$labels['fromknownsenders'] = 'للمرسلين المعلومين';
$labels['always'] = 'دائماً';
$labels['showinlineimages'] = 'إظهار الصّور المرÙقة أسÙÙ„ الرسالة';
$labels['autosavedraft'] = 'Ø­Ùظ المسودة تلقائياً';
$labels['everynminutes'] = 'كل $n دقيقة';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'أبداً';
$labels['immediately'] = 'حالاً';
$labels['messagesdisplaying'] = 'إظهار الرسائل';
@@ -367,12 +441,15 @@ $labels['advancedoptions'] = 'خيارات متقدّمة';
$labels['focusonnewmessage'] = 'التركيز على ناÙذة المتصÙØ­ عند وجود رسالةجديدة';
$labels['checkallfolders'] = 'التحقق من وجود رسائل جديدة ÙÙŠ جميعالمجلدات';
$labels['displaynext'] = 'إظهار الرسالة التالية بعد حذÙ/نقلالرسالة الحالية';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'الخيارات الأساسية';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'قسم';
$labels['maintenance'] = 'الصيانة';
$labels['newmessage'] = 'رسالة جديدة';
$labels['signatureoptions'] = 'خيارات التوقيع';
$labels['whenreplying'] = 'عند الرد';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'بدء رسالة جديدة ووضع النص أعلى الأصلية';
$labels['replybottomposting'] = 'بدء رسالة جديدة ووضع النص أسÙÙ„ الأصلية';
$labels['replyremovesignature'] = 'إزالة التوقيع من الرسالة عند الرد';
@@ -385,13 +462,20 @@ $labels['afternseconds'] = 'بعد $n ثواني';
$labels['reqmdn'] = 'طلب إشعار استلام دائماً';
$labels['reqdsn'] = 'طلب تنويه لحالة التوصيل دائماً';
$labels['replysamefolder'] = 'وضع الردود ÙÙŠ المجلد الذي يحوي الرسالةالمردود عليها';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'تجاهل عنوان البريد الإلكتروني البديل Ùيالتكملة التلقائية';
+$labels['listnamedisplay'] = 'List contacts as';
$labels['spellcheckbeforesend'] = 'تحقق من الإملاء قبل إرسال الرسائل';
$labels['spellcheckoptions'] = 'خيارات التدقيق الإملاءي';
$labels['spellcheckignoresyms'] = 'تجاهل الكلمات التي تحتوي رموز';
$labels['spellcheckignorenums'] = 'تجاهل الكلمات التي تحتوي أرقام';
$labels['spellcheckignorecaps'] = 'تجاهل الكلمات التي بها أحر٠كبيرة';
$labels['addtodict'] = 'إضاÙØ© إلى القامس';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'مجلد';
$labels['folders'] = 'مجلدات';
$labels['foldername'] = 'اسم المجلد';
@@ -412,19 +496,26 @@ $labels['foldertype'] = 'نوع المجلد';
$labels['personalfolder'] = 'مجلد خاص';
$labels['otherfolder'] = 'مجلد مستخدم آخر';
$labels['sharedfolder'] = 'مجلد عام';
+
$labels['sortby'] = 'ترتيب بحسب';
$labels['sortasc'] = 'ترتيب تصاعدي';
$labels['sortdesc'] = 'ترتيب تنازلي';
$labels['undo'] = 'تراجع';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'إضاÙØ©';
$labels['version'] = 'النسخة';
$labels['source'] = 'المصدر';
$labels['license'] = 'الترخيص';
$labels['support'] = 'احصل على الدعم الÙني';
+
+// units
$labels['B'] = 'ب';
$labels['KB'] = 'ك.ب';
$labels['MB'] = 'م.ب';
$labels['GB'] = 'ج.ب';
+
+// character sets
$labels['unicode'] = 'يونيكود';
$labels['english'] = 'الإنجليزية';
$labels['westerneuropean'] = 'الغرب أوروبية';
@@ -443,4 +534,5 @@ $labels['vietnamese'] = 'الÙيتنامية';
$labels['japanese'] = 'اليابانية';
$labels['korean'] = 'الكورية';
$labels['chinese'] = 'الصينية';
+
?>
diff --git a/program/localization/ar_SA/messages.inc b/program/localization/ar_SA/messages.inc
index 7d9a7ac62..9429a3910 100644
--- a/program/localization/ar_SA/messages.inc
+++ b/program/localization/ar_SA/messages.inc
@@ -15,6 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Ùشل تسجيل الدخول';
$messages['cookiesdisabled'] = 'المتصÙØ­ الخاص بك لا يقبل الكوكيز';
$messages['sessionerror'] = 'انتهت صلاحية الجلسة الحالية أو أنها غيرصالحة';
@@ -22,12 +25,17 @@ $messages['storageerror'] = 'Ùشل الاتصال بخادم IMAP';
$messages['servererror'] = 'خطأ ÙÙŠ الخادم!';
$messages['servererrormsg'] = 'خطأ خادم: $msg';
$messages['dberror'] = 'خطأ ÙÙŠ قاعدة البيانات!';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'تعذر تنÙيذ العملية. المجلد للقراءة Ùقط.';
$messages['errornoperm'] = 'تعذر تنÙيذ العملية. ليست لديك الصلاحية.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'طلب غير صالح! لم تحÙظ أية بيانات.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'لم يعثر على أية رسائل ÙÙŠ صندوق البريد هذا';
$messages['loggedout'] = 'قمت بإنهاء هذه الجلسة بنجاح. إلى اللقاء!';
$messages['mailboxempty'] = 'صندوق البريد Ùارغ';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'جاري العمل...';
$messages['uploading'] = 'جاري رÙع الملÙ...';
$messages['uploadingmany'] = 'جاري تحميل الملÙات...';
@@ -48,6 +56,8 @@ $messages['contactnotfound'] = 'تعذر العثور على المراسل ال
$messages['contactsearchonly'] = 'اكتب بعض كلمات البحث للعثور علىالمÙراسلين';
$messages['sendingfailed'] = 'Ùشل إرسال الرسالة';
$messages['senttooquickly'] = 'رجاء انتظر $sec ثوان قبل إرسال هذه الرسالة';
+$messages['errorsavingsent'] = 'حدث خطأ أثناء Ø­Ùظ الرسالة المÙرسلة';
+$messages['errorsaving'] = 'حدث خطأ أثناء الحÙظ';
$messages['errormoving'] = 'تعذر نقل هذه الرسالة';
$messages['errorcopying'] = 'تعذر نسخ الرسائل';
$messages['errordeleting'] = 'تعذر حذ٠هذه الرسالة';
@@ -91,6 +101,8 @@ $messages['converting'] = 'إزالة التنسيق من الرسالة...';
$messages['messageopenerror'] = 'تعذرت قراءة الرسالة من الخادم';
$messages['fileuploaderror'] = 'Ùشل رÙع الملÙ';
$messages['filesizeerror'] = 'حجم المل٠الذي تحاول رÙعه أكبر من الحجمالأقصى $size';
+$messages['copysuccess'] = 'تم نسخ $nr رسائل بنجاح';
+$messages['copyerror'] = 'لم يمكن نسخ أية عناوين';
$messages['sourceisreadonly'] = 'لا يمكن تعديل مصدر العنوان هذا';
$messages['errorsavingcontact'] = 'تعذر Ø­Ùظ عنوان المراسل';
$messages['movingmessage'] = 'جاري نقل الرسالة...';
@@ -102,13 +114,16 @@ $messages['addingmember'] = 'جاري إضاÙØ© المÙراسلين إلى اÙ
$messages['removingmember'] = 'جاري إزالة المراسلين من المجموعة...';
$messages['receiptsent'] = 'أرسل إيصال الاستلام بنجاح';
$messages['errorsendingreceipt'] = 'تعذر إرسال إيصال الاستلام';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'لا يمكن حذ٠هذا السجل حيث أنه الوحيدالمتبقي.';
$messages['forbiddencharacter'] = 'اسم المجلّد يحتوي حروÙاً ممنوعة';
$messages['selectimportfile'] = 'رجاء اختر ملÙاً لرÙعه';
$messages['addresswriterror'] = 'دÙتر العناوين المحدد غير قابل للكتابة';
$messages['contactaddedtogroup'] = 'تمت إضاÙØ© المراسلين إلى هذه المجموعةبنجاح';
$messages['contactremovedfromgroup'] = 'تمت إزالة المراسلين من هذه المجموعةبنجاح';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'جاري الاستيراد، رجاء انتظر...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>تم استيراد $inserted مراسلين بنجاح، وتجاهل$skipped موجودين مسبقاً</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>تم تجاهل $skipped عناصر موجودة</b>';
$messages['opnotpermitted'] = 'العملية ممنوعة!';
@@ -124,6 +139,7 @@ $messages['smtperror'] = 'خطأ SMTP: $msg';
$messages['emailformaterror'] = 'عنوان بريد إلكتروني غير صالح: $email';
$messages['toomanyrecipients'] = 'عدد المرسل إليهم كبير. قلص العدد إلى $max.';
$messages['maxgroupmembersreached'] = 'عدد أعضاء المجموعة أكثر من $max';
+$messages['internalerror'] = 'حدث خطأ داخلي. الرجاء المحاولة مرة أخرى';
$messages['contactdelerror'] = 'تعذر حذ٠أسماء جهات الإتصال';
$messages['contactdeleted'] = 'تم حذ٠أسماء جهات الإتصال بنجاح';
$messages['contactrestoreerror'] = 'تعذر استعادة المÙراسل المحذوÙ.';
@@ -149,4 +165,7 @@ $messages['invalidimageformat'] = 'ليست صيغة صورة صحيحة';
$messages['mispellingsfound'] = 'عÙثر على أخطاء إملائية ÙÙŠ الرسالة';
$messages['parentnotwritable'] = 'تعذر إنشاء/نقل المجلد إلى المجلد المحدد.ليست لديك الصلاحية.';
$messages['messagetoobig'] = 'جزء الرسالة أكبر بكثير مما يمكن معالجته.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/ast/labels.inc b/program/localization/ast/labels.inc
index 7a60238b7..49f85689b 100644
--- a/program/localization/ast/labels.inc
+++ b/program/localization/ast/labels.inc
@@ -15,50 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bienllegáu a $product';
$labels['username'] = 'Usuariu';
$labels['password'] = 'Clave';
$labels['server'] = 'Sirvidor';
$labels['login'] = 'Entrar';
+
+// taskbar
$labels['logout'] = 'Zarrar';
$labels['mail'] = 'Corréu';
-$labels['settings'] = 'Axustes';
-$labels['addressbook'] = 'Llibreta de direiciones';
+$labels['settings'] = 'Preferencies personales';
+$labels['addressbook'] = 'Llibru de direiciones';
+
+// mailbox names
$labels['inbox'] = 'Entrantes';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Unviaos';
$labels['trash'] = 'Papelera';
$labels['junk'] = 'Puxarra';
-$labels['show_real_foldernames'] = 'Amosar nomes reales pa carpetes especiales';
+
+// message listing
$labels['subject'] = 'Asuntu';
$labels['from'] = 'De';
-$labels['sender'] = 'Remitente';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Pa';
$labels['cc'] = 'Copia';
-$labels['bcc'] = 'Cct';
+$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Contestar a';
-$labels['followupto'] = 'Responder-a';
-$labels['date'] = 'Data';
+$labels['followupto'] = 'Followup-To';
+$labels['date'] = 'Fecha';
$labels['size'] = 'Tamañu';
$labels['priority'] = 'Prioridá';
$labels['organization'] = 'Organización';
-$labels['readstatus'] = 'Lleer estáu';
-$labels['listoptions'] = 'Llista d\'oopciones...';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Bandexes';
$labels['messagesfromto'] = 'Mensaxes del $from a $to de $count';
-$labels['threadsfromto'] = 'Filos $from a $to de $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Mensaxe $nr de $count';
-$labels['fromtoshort'] = '$from – $to de $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Copia';
-$labels['move'] = 'Mover';
-$labels['moveto'] = 'mover a...';
-$labels['download'] = 'Descargar';
-$labels['open'] = 'Abrir';
-$labels['showattachment'] = 'Amosar';
-$labels['showanyway'] = 'Amosar de toes formes';
+$labels['move'] = 'Move';
+$labels['moveto'] = 'mover pa...';
+$labels['download'] = 'baxar';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Nome del Ficheru';
$labels['filesize'] = 'Tamañu del ficheru';
-$labels['addtoaddressbook'] = 'Amestar a la llibreta de direiciones';
+
+$labels['addtoaddressbook'] = 'Amestar al llibru de direiciones';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Llu';
$labels['tue'] = 'Mar';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mie';
$labels['thu'] = 'Xue';
$labels['fri'] = 'Vie';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Domingu';
$labels['monday'] = 'Llunes';
$labels['tuesday'] = 'Martes';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Miércoles';
$labels['thursday'] = 'Xueves';
$labels['friday'] = 'Vienres';
$labels['saturday'] = 'Sábadu';
+
+// months short
$labels['jan'] = 'Xin';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set';
$labels['oct'] = 'Och';
$labels['nov'] = 'Pay';
$labels['dec'] = 'Avi';
+
+// months long
$labels['longjan'] = 'Xineru';
$labels['longfeb'] = 'Febreru';
$labels['longmar'] = 'Marzu';
@@ -97,19 +118,22 @@ $labels['longsep'] = 'Setiembre';
$labels['longoct'] = 'Ochobre';
$labels['longnov'] = 'Payares';
$labels['longdec'] = 'Avientu';
+
$labels['today'] = 'Güei';
-$labels['refresh'] = 'Refrescar';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Buscar mensaxes nuevos';
$labels['compose'] = 'Escribir un mensaxe';
$labels['writenewmessage'] = 'Facer un mensaxe nuevu';
-$labels['reply'] = 'Responder';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Contestar al mensaxe';
$labels['replytoallmessage'] = 'Contestar a toos';
-$labels['replyall'] = 'Responder a toos';
-$labels['replylist'] = 'Responder a la llista';
-$labels['forward'] = 'Reunviar';
-$labels['forwardinline'] = 'Reunviar direutamente';
-$labels['forwardattachment'] = 'Reunviar como axuntu';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Reunviar mensaxe';
$labels['deletemessage'] = 'Desaniciar mensaxe';
$labels['movemessagetotrash'] = 'Mover mensaxe a la papelera';
@@ -120,241 +144,265 @@ $labels['nextmessage'] = 'Amosar el mensaxe siguiente';
$labels['lastmessage'] = 'Amosar l\'últimu mensaxe';
$labels['backtolist'] = 'Tornar a la llista de mensaxes';
$labels['viewsource'] = 'Amosar el códigu';
-$labels['mark'] = 'Marcar';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'Marcar mensaxes';
$labels['markread'] = 'Como lleíu';
$labels['markunread'] = 'Como non lleíu';
-$labels['markflagged'] = 'Como etiquetáu';
-$labels['markunflagged'] = 'Como non etiquetáu';
-$labels['moreactions'] = 'Más aiciones...';
-$labels['more'] = 'Más';
-$labels['back'] = 'Volver';
-$labels['options'] = 'Opciones';
-$labels['select'] = 'Escoyer';
+$labels['markflagged'] = 'Como marcáu';
+$labels['markunflagged'] = 'Como non marcáu';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
+$labels['select'] = 'Escueye';
$labels['all'] = 'Toos';
-$labels['none'] = 'Dengún';
-$labels['currpage'] = 'Páxina actual';
+$labels['none'] = 'Nengún';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Ensin lleer';
-$labels['flagged'] = 'Etiquetaos';
+$labels['flagged'] = 'Marcáu';
$labels['unanswered'] = 'Ensin contestar';
-$labels['withattachment'] = 'Con axuntu';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Desaniciáu';
-$labels['undeleted'] = 'Non desaniciáu';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Invertir';
$labels['filter'] = 'Filtru';
-$labels['list'] = 'Llista';
-$labels['threads'] = 'Filos';
-$labels['expand-all'] = 'Espander toos';
-$labels['expand-unread'] = 'Espander non lleíos';
-$labels['collapse-all'] = 'Contrayer toos';
-$labels['threaded'] = 'Encadenaos';
-$labels['autoexpand_threads'] = 'Espander filos de mensaxes';
-$labels['do_expand'] = 'tolos filos';
-$labels['expand_only_unread'] = 'namái con mensaxes non lleíos';
-$labels['fromto'] = 'Remitente/Destinatariu';
-$labels['flag'] = 'Etiqueta';
-$labels['attachment'] = 'Axuntu';
-$labels['nonesort'] = 'Dengún';
-$labels['sentdate'] = 'Data d\'unviu';
-$labels['arrival'] = 'Data de llegada';
-$labels['asc'] = 'ascendente';
-$labels['desc'] = 'descendente';
-$labels['listcolumns'] = 'Llistar columnes';
-$labels['listsorting'] = 'Columna de llistáu';
-$labels['listorder'] = 'Orde de llistáu';
-$labels['listmode'] = 'Mou de vista de llista';
-$labels['folderactions'] = 'Aiciones de bandexa...';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
+$labels['nonesort'] = 'Nengún';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Compautar';
$labels['empty'] = 'Vaciar';
-$labels['importmessages'] = 'Importar mensaxes';
+
$labels['quota'] = 'Espaciu en discu';
$labels['unknown'] = 'desconocíu';
$labels['unlimited'] = 'ensin llímite';
-$labels['quicksearch'] = 'Gueta rápida';
-$labels['resetsearch'] = 'Anovar la gueta';
+
+$labels['quicksearch'] = 'Búsqueda rápida';
+$labels['resetsearch'] = 'Anovar la búsqueda';
$labels['searchmod'] = 'Guetar modificadores';
-$labels['msgtext'] = 'Mensaxe';
-$labels['body'] = 'Cuerpu';
-$labels['type'] = 'Tipu';
-$labels['namex'] = 'Nome';
-$labels['openinextwin'] = 'Abrir nuna ventana nueva';
+$labels['msgtext'] = 'Mensax completu';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Abrir en una ventana nueva';
$labels['emlsave'] = 'Baxar (.eml)';
-$labels['changeformattext'] = 'Amosar en formatu de testu planu';
-$labels['changeformathtml'] = 'Amosar en formatu HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Editar como nuevu';
-$labels['send'] = 'Unviar';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Unviar el mensaxe yá';
$labels['savemessage'] = 'Guardar como borrador';
-$labels['addattachment'] = 'Axuntar un ficheru';
+$labels['addattachment'] = 'Amestar un archivu';
$labels['charset'] = 'Codificación';
-$labels['editortype'] = 'Tipu d\'editor';
+$labels['editortype'] = 'Tipo d\'editor';
$labels['returnreceipt'] = 'Avisu de recibu';
-$labels['dsn'] = 'Entrega de notificaciones d\'estáu';
-$labels['mailreplyintro'] = 'El $date, $sender escribió:';
-$labels['originalmessage'] = 'Mensaxe orixinal';
-$labels['editidents'] = 'Editar identidaes';
-$labels['spellcheck'] = 'Correutor ortográficu';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Revisar ortografía';
$labels['resumeediting'] = 'Siguir cola edición';
-$labels['revertto'] = 'Revertir a';
-$labels['attach'] = 'Axuntar';
+$labels['revertto'] = 'Desfacer a';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Axuntos';
$labels['upload'] = 'Xubir';
-$labels['uploadprogress'] = '$percent ($current de $total)';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Zarrar';
-$labels['messageoptions'] = 'Opciones de mensaxe...';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Baxu';
$labels['lowest'] = 'Mui baxu';
$labels['normal'] = 'Normal';
$labels['high'] = 'Altu';
$labels['highest'] = 'Mui altu';
+
$labels['nosubject'] = '(ensin asuntu)';
$labels['showimages'] = 'Amosar imáxenes';
$labels['alwaysshow'] = 'Amosar siempre les imáxenes de $sender';
-$labels['isdraft'] = 'Esti mensaxe ye un borrador.';
-$labels['andnmore'] = '$nr más...';
-$labels['togglemoreheaders'] = 'Amosar más testeres del mensaxe';
-$labels['togglefullheaders'] = 'Amosar o anubrir testeres de mensaxes';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Testu';
-$labels['savesentmessagein'] = 'Guardar mensaxe unviáu en';
-$labels['dontsave'] = 'nun guardar';
+$labels['savesentmessagein'] = 'Guardar mensaxe unviau en';
+$labels['dontsave'] = 'Desanicialu';
$labels['maxuploadsize'] = 'El tamañu másimu pa un ficheru ye $size';
+
$labels['addcc'] = 'Amestar Cc';
-$labels['addbcc'] = 'Amestar Cct';
+$labels['addbcc'] = 'Amestar Bcc';
$labels['addreplyto'] = 'Amestar Rempuesta pa';
-$labels['addfollowupto'] = 'Amestar Siguir a';
-$labels['mdnrequest'] = 'El qu\'unvia esti mensaxe quier que lu avises cuando lleas el corréu. ¿Quies avisalu?';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'El qu\'unvia esti mensaxe quier que lo avises cuando lleas el corréu. ¿Quies avisalo?';
$labels['receiptread'] = 'Avisu de llectura';
$labels['yourmessage'] = 'Esto ye un avisu de llectura del to mensaxe';
-$labels['receiptnote'] = 'Nota: Esti avisu namás quier dicir que\'l to mensaxe amosóse nel equipu del receutor. Nun hai forma de garantizate que lu lleera o que atalantara\'l conteníu del to mensaxe.';
+$labels['receiptnote'] = 'Nota: Esti avisu namás quier dicir que\'l to mensaxe amosośe nel equipu del receptor. Nun hai forma de garantizate que lo lleera o que pescanciara\'l to mensaxe.';
+
+// address boook
$labels['name'] = 'Nome completu';
$labels['firstname'] = 'Nome';
$labels['surname'] = 'Apellíu';
-$labels['middlename'] = 'Segundu nome';
-$labels['nameprefix'] = 'Prefixu';
-$labels['namesuffix'] = 'Sufixu';
-$labels['nickname'] = 'Nomatu';
-$labels['jobtitle'] = 'Tratamientu';
-$labels['department'] = 'Departamentu';
-$labels['gender'] = 'Sexu';
-$labels['maidenname'] = 'Apellíu de soltera';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'Corréu';
-$labels['phone'] = 'Teléfonu';
-$labels['address'] = 'Direición';
-$labels['street'] = 'Cai';
-$labels['locality'] = 'Ciudá';
-$labels['zipcode'] = 'Códigu postal';
-$labels['region'] = 'Estáu/Provincia';
-$labels['country'] = 'País';
-$labels['birthday'] = 'Cumpleaños';
-$labels['anniversary'] = 'Santu';
-$labels['website'] = 'Páxina web';
-$labels['instantmessenger'] = 'Mensaxería nel intre';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'Notes';
-$labels['male'] = 'home';
-$labels['female'] = 'muyer';
-$labels['manager'] = 'Direutor';
-$labels['assistant'] = 'Auxiliar';
-$labels['spouse'] = 'Cónyugue';
-$labels['allfields'] = 'Tolos campos';
-$labels['search'] = 'Guetar';
-$labels['advsearch'] = 'Gueta avanzada';
-$labels['advanced'] = 'Avanzaes';
-$labels['other'] = 'Otru';
-$labels['typehome'] = 'Casa';
-$labels['typework'] = 'Trabayu';
-$labels['typeother'] = 'Otru';
-$labels['typemobile'] = 'Móvil';
-$labels['typemain'] = 'Principal';
-$labels['typehomefax'] = 'Fax de casa';
-$labels['typeworkfax'] = 'Fax del trabayu';
-$labels['typecar'] = 'Coche';
-$labels['typepager'] = 'Busca';
-$labels['typevideo'] = 'Videu';
-$labels['typeassistant'] = 'Auxiliar';
-$labels['typehomepage'] = 'Aniciu';
-$labels['typeblog'] = 'Blogue';
-$labels['typeprofile'] = 'Perfil';
-$labels['addfield'] = 'Amestar campu...';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Amestar contautu nuevu';
$labels['editcontact'] = 'Editar contautu';
-$labels['contacts'] = 'Contautos';
-$labels['contactproperties'] = 'Propiedaes del contautu';
-$labels['personalinfo'] = 'Información personal';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Encaboxar';
$labels['save'] = 'Guardar';
$labels['delete'] = 'Desaniciar';
-$labels['rename'] = 'Renomar';
-$labels['addphoto'] = 'Amestar';
-$labels['replacephoto'] = 'Trocar';
-$labels['uploadphoto'] = 'Xubir xemeya';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Facer un contautu nuevu';
$labels['deletecontact'] = 'Desaniciar los contautos marcaos';
$labels['composeto'] = 'Unviar mensaxe a';
$labels['contactsfromto'] = 'Contautos $from a $to de $count';
$labels['print'] = 'Imprentar';
$labels['export'] = 'Esportar';
-$labels['exportall'] = 'Esportar too';
-$labels['exportsel'] = 'Esportar lo seleicionao';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Esportar contautos en formatu vCard';
-$labels['newcontactgroup'] = 'Crear un grupu nuevu de contautos';
-$labels['grouprename'] = 'Renomar grupu';
-$labels['groupdelete'] = 'Desaniciar grupu';
-$labels['groupremoveselected'] = 'Desaniciar los contautos seleicionaos del grupu';
-$labels['previouspage'] = 'Amosar páxina previa';
-$labels['firstpage'] = 'Amosar primer páxina';
-$labels['nextpage'] = 'Amosar siguiente páxina';
-$labels['lastpage'] = 'Amosar última páxina';
-$labels['group'] = 'Grupu';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
+$labels['previouspage'] = 'Amosar grupu anterior';
+$labels['firstpage'] = 'Amosar primer grupu';
+$labels['nextpage'] = 'Amosar siguiente grupu';
+$labels['lastpage'] = 'Amosar l\'últimu grupu';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Grupos';
-$labels['listgroup'] = 'Llistar miembros del grupu';
$labels['personaladrbook'] = 'Direiciones personales';
-$labels['searchsave'] = 'Guardar gueta';
-$labels['searchdelete'] = 'Desaniciar gueta';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contautos';
$labels['importfromfile'] = 'Importar dende un ficheru:';
-$labels['importtarget'] = 'Amestar contautos a';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'Trocar el llibru de direiciones enteru';
-$labels['importgroups'] = 'Importar asignaciones de grupu';
-$labels['importgroupsall'] = 'Toos (crear grupos si ye necesario)';
-$labels['importgroupsexisting'] = 'Namái pa los grupos esistentes';
-$labels['importdesc'] = 'Pues xubir contautos dende una llibreta de direiciones esistente.<br/>Anguaño permitimos la importación dende los formatos de datos <a href="http://es.wikipedia.org/wiki/VCard">vCard</a> o CSV (separtaos per comes).';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Fecho';
-$labels['settingsfor'] = 'Axustes pa';
-$labels['about'] = 'Tocante a';
+
+// settings
+$labels['settingsfor'] = 'Configuración pa';
+$labels['about'] = 'About';
$labels['preferences'] = 'Preferencies';
$labels['userpreferences'] = 'Preferencies d\'usuariu';
$labels['editpreferences'] = 'Editar preferencies d\'usuariu';
+
$labels['identities'] = 'Identidaes';
$labels['manageidentities'] = 'Remanar identidaes pa esta cuenta';
-$labels['newidentity'] = 'Identidá nueva';
+$labels['newidentity'] = 'Identidad nueva';
+
$labels['newitem'] = 'Nuevu';
$labels['edititem'] = 'Editar';
+
$labels['preferhtml'] = 'Amosar HTML';
-$labels['defaultcharset'] = 'Xuegu de caráuteres predetermináu';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Mensaxe HTML';
-$labels['messagepart'] = 'Parte';
-$labels['digitalsig'] = 'Robla dixital';
-$labels['dateformat'] = 'Formatu de data';
-$labels['timeformat'] = 'Formatu d\'hora';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Fecha prestosa';
-$labels['setdefault'] = 'Escoyer opción preferida';
+$labels['setdefault'] = 'Escoyer opción preferída';
$labels['autodetect'] = 'Escoyer automáticamente';
-$labels['language'] = 'Llingua';
-$labels['timezone'] = 'Estaya horaria';
+$labels['language'] = 'Idioma';
+$labels['timezone'] = 'Franxa horaria';
$labels['pagesize'] = 'Fileres per páxina';
-$labels['signature'] = 'Robla';
+$labels['signature'] = 'Firma';
$labels['dstactive'] = 'Cambéu horariu';
-$labels['showinextwin'] = 'Abrir mensaxe nuna ventana nueva';
-$labels['composeextwin'] = 'Escribir nuna ventana nueva';
-$labels['htmleditor'] = 'Facer el mensaxe en HTML';
-$labels['htmlonreply'] = 'namái en rempuesta a un mensaxe HTML';
-$labels['htmlonreplyandforward'] = 'en reunviu o rempuesta al mensaxe HTML';
-$labels['htmlsignature'] = 'Robla HTML';
-$labels['showemail'] = 'Amosar direición de corréu-e al visualizar el nome';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'Facer el mensaxe n\'HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
+$labels['htmlsignature'] = 'Firma HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Entever';
$labels['skin'] = 'Estilu';
$labels['logoutclear'] = 'Vaciar la papelera al zarrar la sesión';
@@ -363,71 +411,71 @@ $labels['uisettings'] = 'Interfaz d\'usuariu';
$labels['serversettings'] = 'Configuración del sirvidor';
$labels['mailboxview'] = 'Vista del buzón';
$labels['mdnrequests'] = 'Avisos d\'unvios';
-$labels['askuser'] = 'entrugame';
+$labels['askuser'] = 'preguntar al usuariu';
$labels['autosend'] = 'unviar de secute';
-$labels['autosendknown'] = 'unviar acuse de recibu a los mios contautos, col restu entrugame';
-$labels['autosendknownignore'] = 'unviar acuse de recibu a los mios contautos, non a los demás';
-$labels['ignore'] = 'inorar';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignoralos';
$labels['readwhendeleted'] = 'Marcar el mensaxe como lleíu al desanicialu';
$labels['flagfordeletion'] = 'Marcar el mensaxe pa desaniciase en cuenta de desanicialu dafechu';
$labels['skipdeleted'] = 'Nun amosar los mensaxes desaniciaos';
-$labels['deletealways'] = 'Si falla el treslladar los mensaxes a la Papelera, desanicialos';
-$labels['deletejunk'] = 'Desaniciar direutamente el correú de Puxarra';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Amosar imáxenes remotes';
$labels['fromknownsenders'] = 'de contautos conocíos';
$labels['always'] = 'siempre';
-$labels['showinlineimages'] = 'Amosar imáxenes axuntes embaxo\'l mensaxe';
+$labels['showinlineimages'] = 'Amosar imáxenes axuntes embaxu\'l mensaxe';
$labels['autosavedraft'] = 'Guardar borrador de secute';
$labels['everynminutes'] = 'cada $n minutu/os';
-$labels['refreshinterval'] = 'Anovar (comprobar mensaxes nuevos, etc.)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nunca';
-$labels['immediately'] = 'darréu';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'Vista de mensaxes';
$labels['messagescomposition'] = 'Edición de mensaxes';
$labels['mimeparamfolding'] = 'Nomes d\'axuntos';
$labels['2231folding'] = 'Too RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Too RFC 2047 (otros)';
-$labels['force7bit'] = 'Usar codificación MIME pa caráuteres de 8 bits';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'Opciones avanzaes';
$labels['focusonnewmessage'] = 'Poner el focu nos mensaxes nuevos';
$labels['checkallfolders'] = 'Guetar mensaxes nuevos en toles bandexes';
$labels['displaynext'] = 'Depués de mover/desaniciar amosar el mensaxe que sigue darréu';
-$labels['defaultfont'] = 'Tipu de lletra predeterminada del mensaxe HTML';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Opciones principales';
-$labels['browseroptions'] = 'Opciones del navegador';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Seición';
-$labels['maintenance'] = 'Caltenimientu';
+$labels['maintenance'] = 'Mantenimientu';
$labels['newmessage'] = 'Mensax nuevu';
-$labels['signatureoptions'] = 'Opciones de robla';
-$labels['whenreplying'] = 'Al responder';
-$labels['replyempty'] = 'nun citar el mensaxe orixinal';
-$labels['replytopposting'] = 'empezar un mensaxe nuevu encima del orixinal';
-$labels['replybottomposting'] = 'empezar un mensaxe nuevu debaxo del orixinal';
-$labels['replyremovesignature'] = 'Desaniciar la robla orixinal del mensaxe al responder';
-$labels['autoaddsignature'] = 'Amestar robla automáticamente';
-$labels['newmessageonly'] = 'namái mensaxe nuevu';
-$labels['replyandforwardonly'] = 'namái rempuestes y reunvios';
-$labels['insertsignature'] = 'Inxertar robla';
-$labels['previewpanemarkread'] = 'Marcar mensaxe previsualizáu como lleíu';
-$labels['afternseconds'] = 'dempués de $n segundos';
-$labels['reqmdn'] = 'Solicitar siempre un acuse de recibu';
-$labels['reqdsn'] = 'Solicitar siempre la entrega de notificaciones d\'estáu';
-$labels['replysamefolder'] = 'Allugar les rempuestes na bandexa del mensaxe que se respuende';
-$labels['defaultabook'] = 'Llibreta de direiciones predeterminada';
-$labels['autocompletesingle'] = 'Omitir direiciones de corréu alternatives n\'autocompletáu';
-$labels['listnamedisplay'] = 'Llistar contautos como';
-$labels['spellcheckbeforesend'] = 'Comprobar ortografía enantes d\'unviar un mensaxe';
-$labels['spellcheckoptions'] = 'Opciones d\'ortografía';
-$labels['spellcheckignoresyms'] = 'Inorar pallabres con símbolos';
-$labels['spellcheckignorenums'] = 'Inorar pallabres con númberos';
-$labels['spellcheckignorecaps'] = 'Inorar pallabres con too mayúscules';
-$labels['addtodict'] = 'Amestar al diccionariu';
-$labels['mailtoprotohandler'] = 'Rexistrar controlador de protocolu pa enllaces \'mailto:\'';
-$labels['standardwindows'] = 'Xestionar ventanes emerxentes como ventanes estándar';
-$labels['forwardmode'] = 'Reunviu de mensaxes';
-$labels['inline'] = 'en llinia';
-$labels['asattachment'] = 'como axuntu';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Bandexa';
$labels['folders'] = 'Bandexes';
$labels['foldername'] = 'Nome de bandexa';
@@ -437,47 +485,54 @@ $labels['create'] = 'Facer';
$labels['createfolder'] = 'Facer una bandexa nueva';
$labels['managefolders'] = 'Alministrar bandexes';
$labels['specialfolders'] = 'Bandexes especiales';
-$labels['properties'] = 'Propiedaes';
-$labels['folderproperties'] = 'Propiedaes de la bandexa';
-$labels['parentfolder'] = 'Bandexa contenedora';
-$labels['location'] = 'Llocalización';
-$labels['info'] = 'Información';
-$labels['getfoldersize'] = 'Clic pa saber el tamañu de la bandexa';
-$labels['changesubscription'] = 'Clic pa camudar soscripción';
-$labels['foldertype'] = 'Tipu de bandexa';
-$labels['personalfolder'] = 'Bandexa privada';
-$labels['otherfolder'] = 'Bandexa d\'otru usuariu';
-$labels['sharedfolder'] = 'Bandexa pública';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Ordenar por';
-$labels['sortasc'] = 'Orde ascendente';
-$labels['sortdesc'] = 'Orde descendente';
-$labels['undo'] = 'Desfacer';
-$labels['installedplugins'] = 'Complementos instalaos';
-$labels['plugin'] = 'Complementu';
-$labels['version'] = 'Versión';
-$labels['source'] = 'Orixe';
-$labels['license'] = 'Llicencia';
-$labels['support'] = 'Obtener soporte';
+$labels['sortasc'] = 'Orden ascendente';
+$labels['sortdesc'] = 'Orden descendente';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
-$labels['english'] = 'Inglés';
-$labels['westerneuropean'] = 'Européu occidental';
-$labels['easterneuropean'] = 'Européu oriental';
-$labels['southeasterneuropean'] = 'Européu suroriental';
-$labels['baltic'] = 'Bálticu';
-$labels['cyrillic'] = 'Cirílicu';
-$labels['arabic'] = 'Ãrabe';
-$labels['greek'] = 'Griegu';
-$labels['hebrew'] = 'Hebréu';
-$labels['turkish'] = 'Turcu';
-$labels['nordic'] = 'Nórdicu';
-$labels['thai'] = 'Tailandés';
-$labels['celtic'] = 'Celta';
-$labels['vietnamese'] = 'Vietnamín';
-$labels['japanese'] = 'Xaponés';
-$labels['korean'] = 'Coreanu';
-$labels['chinese'] = 'Chinu';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ast/messages.inc b/program/localization/ast/messages.inc
index 35a850e57..9e415b8ec 100644
--- a/program/localization/ast/messages.inc
+++ b/program/localization/ast/messages.inc
@@ -15,156 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = '¡Hebo un fallu!';
-$messages['loginfailed'] = 'Contraseña o nome d\'usuariu incorreutu.';
-$messages['cookiesdisabled'] = 'El to navegador nun aceuta "cookies';
-$messages['sessionerror'] = 'La to sesión nun val o caducó.';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'La clave nun val';
+$messages['cookiesdisabled'] = 'El to navegador nun acepta "cookies';
+$messages['sessionerror'] = 'La to sesión nun val';
$messages['storageerror'] = 'Fallu de conexón col sirvidor IMAP';
$messages['servererror'] = '¡Fallu del sirvidor!';
-$messages['servererrormsg'] = 'Fallu de sirvidor: $msg';
-$messages['dberror'] = '¡Fallu na base de datos!';
-$messages['requesttimedout'] = 'Caducó\'l tiempu de rempuesta.';
-$messages['errorreadonly'] = 'Imposible facer la operación. La bandexa ye de namái-llectura.';
-$messages['errornoperm'] = 'Imposible facer la operación. Denegóse\'l permisu.';
-$messages['erroroverquota'] = 'Nun pudo completase la operación. Nun queda espaciu nel discu.';
-$messages['erroroverquotadelete'] = 'Nun queda espaciu nel discu. Usa Shift+Supr pa desaniciar un mensaxe.';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Fallu de la solicitú. Nun se guardaron datos.';
-$messages['invalidhost'] = 'Nome de sirvidor inválidu.';
-$messages['nomessagesfound'] = 'Nun s\'atoparon mensaxes na bandexa';
-$messages['loggedout'] = 'Zarraste la sesión. ¡Talluéu!';
+$messages['invalidhost'] = 'Invalid server name.';
+$messages['nomessagesfound'] = 'Nun doi con mensaxes';
+$messages['loggedout'] = 'Zarraste la sesión.';
$messages['mailboxempty'] = 'La to cuenta nun tien mensaxes';
-$messages['refreshing'] = 'Anovando...';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Cargando...';
-$messages['uploading'] = 'Xubiendo ficheru';
-$messages['uploadingmany'] = 'Xubiendo ficheros...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Cargando datos...';
$messages['checkingmail'] = 'A la gueta de mensaxes nuevos...';
$messages['sendingmessage'] = 'Unviando mensaxe...';
-$messages['messagesent'] = 'Unvióse\'l mensaxe.';
+$messages['messagesent'] = 'Unviose\'l mensaxe';
$messages['savingmessage'] = 'Guardar mensaxe...';
$messages['messagesaved'] = 'El mensaxe guardóse en borradores';
-$messages['successfullysaved'] = 'Guardóse correchamente';
-$messages['addedsuccessfully'] = 'El contautu amestóse correchamente a la llibreta de direiciones';
-$messages['contactexists'] = 'Yá hai un contautu con esa direición de corréu-e.';
-$messages['contactnameexists'] = 'Yá esiste un contautu col mesmu nome.';
-$messages['blockedimages'] = 'Pa protexer la to privacidá, torgáronse les imáxenes esternes nesti mensaxe.';
-$messages['encryptedmessage'] = 'Esti ye un mensaxe cifráu y nun soi a amosalu. ¡Sentímoslo!';
-$messages['nocontactsfound'] = 'Nun doi con dengún contautu';
-$messages['contactnotfound'] = 'Nun s\'atopa\'l contautu solicitáu.';
-$messages['contactsearchonly'] = 'Introduz dalgún criteriu pa guetar contautos';
-$messages['sendingfailed'] = 'Falló l\'unviu del mensaxe';
+$messages['successfullysaved'] = 'Guardose correchamente';
+$messages['addedsuccessfully'] = 'El contautu amestose correchamente a la llibreta de direiciones';
+$messages['contactexists'] = 'Yá hai un contuaut con es direición de corréu';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
+$messages['blockedimages'] = 'Pa protexer la to privacidá, torgáronse les imáxenes esternes n\'esti mensaxe';
+$messages['encryptedmessage'] = 'Esti ye un mensaxe cifráu y nun soi a amosalu.';
+$messages['nocontactsfound'] = 'Nun doi con nengún contautu';
+$messages['contactnotfound'] = 'Nun doi col contautu que pides';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
+$messages['sendingfailed'] = 'Falló l\'unvio del mensaxe';
$messages['senttooquickly'] = 'Por favor espera $sec segundu/os enantes d\'unviar esti mensaxe.';
-$messages['errormoving'] = 'Nun pudo movese el/los mensaxe(s).';
-$messages['errorcopying'] = 'Nun pudo copiase el/los mensaxe(s).';
-$messages['errordeleting'] = 'Nun pudo desaniciase el/los mensaxe(s)';
-$messages['errormarking'] = 'Nun pudo marcase el/los mensaxe(s)';
-$messages['deletecontactconfirm'] = '¿Daveres que quies desaniciar el contautu(os) seleicionáu(os)?';
-$messages['deletegroupconfirm'] = '¿Daveres que quies desaniciar el grupu seleicionáu?';
+$messages['errorsavingsent'] = 'Di con un fallu al guardar el mensaxe';
+$messages['errorsaving'] = 'Falló al guardase';
+$messages['errormoving'] = 'Nun fui a mover el mensaxe';
+$messages['errorcopying'] = 'Could not copy the message(s).';
+$messages['errordeleting'] = 'Nun fui a desaniciar el mensaxe';
+$messages['errormarking'] = 'Nun se puede marcar el mensaxe';
+$messages['deletecontactconfirm'] = '¿Tas seguru de desaniciar los contautos que marcaste?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = '¿Tas seguru de desaniciar los mensaxes que marcaste?';
-$messages['deletefolderconfirm'] = '¿Daveres que quies desaniciar esta bandexa?';
-$messages['purgefolderconfirm'] = '¿Daveres que quies desaniciar tolos mensaxes d\'esta bandexa?';
-$messages['contactdeleting'] = 'Desaniciando contautu(os)...';
-$messages['groupdeleting'] = 'Desaniciando grupu...';
+$messages['deletefolderconfirm'] = '¿Tas seguru de desaniciar esta bandexa?';
+$messages['purgefolderconfirm'] = '¿Tas seguru de desaniciar tolos mensaxes d\'esta bandexa?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'Desaniciando la bandexa...';
$messages['foldermoving'] = 'Moviendo la bandexa...';
-$messages['foldersubscribing'] = 'Soscribiendo bandexa...';
-$messages['folderunsubscribing'] = 'Desoscribiendo bandexa...';
-$messages['formincomplete'] = 'Tienes de rellenar tolos campos del formulariu.';
-$messages['noemailwarning'] = 'Por favor, introduz un corréu válidu.';
-$messages['nonamewarning'] = 'Por favor, introduz un nome.';
-$messages['nopagesizewarning'] = 'Por favor, introduz un tamañu de páxina.';
-$messages['nosenderwarning'] = 'Por favor introduz un corréu dende onde unviar mensaxes';
-$messages['norecipientwarning'] = 'Por favor, introduz polo menos un destinatariu';
-$messages['nosubjectwarning'] = 'El campo "Asuntu" ta vacíu. ¿Quies rellenalu agora?';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
+$messages['formincomplete'] = 'Tienes de rellenar tolos campos del formulariu';
+$messages['noemailwarning'] = 'Por favor, dame un corréu válidu';
+$messages['nonamewarning'] = 'Por favor, dame\'l to nome';
+$messages['nopagesizewarning'] = 'Por favor, dame un tamañu de páxina';
+$messages['nosenderwarning'] = 'Por favor dame un corréu dende donde unviar mesaxes';
+$messages['norecipientwarning'] = 'Por favor, dame polo menos un destinatariu';
+$messages['nosubjectwarning'] = 'El campo "Asuntu" ta vacíu. ¿Quiés rellenalu anguaño?';
$messages['nobodywarning'] = '¿Quies unviar esti mensaxe ensin testu?';
-$messages['notsentwarning'] = 'Nun s\'unvió\'l mensaxe. ¿Quies desanicialu?';
-$messages['noldapserver'] = 'Por favor, escueyi un sirvidor LDAP pa buscar.';
-$messages['nosearchname'] = 'Por favor, introduz un nome o una direición de corréu-e.';
-$messages['notuploadedwarning'] = 'Entá nun se xubieron tolos axuntos. Por favor, espera o encaboxa la xuba.';
-$messages['searchsuccessful'] = 'Atopáronse $nr mensaxes.';
-$messages['contactsearchsuccessful'] = 'Atopáronse $nr contautos.';
-$messages['searchnomatch'] = 'Nun s\'atopó dengún resultáu';
+$messages['notsentwarning'] = 'Nun unvie\'l mensaxe. ¿Quies desanicialu?';
+$messages['noldapserver'] = 'Por favor, escueye un sirvidor LDAP pa buscar';
+$messages['nosearchname'] = 'Por favor, dame un nome o una direición de corréu';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
+$messages['searchsuccessful'] = 'Di con $nr mensaxes';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
+$messages['searchnomatch'] = 'Nun di con nengún resultáu';
$messages['searching'] = 'A la gueta...';
$messages['checking'] = 'Comprobando...';
-$messages['nospellerrors'] = 'Nun s\'atoparon errores ortográficos';
-$messages['folderdeleted'] = 'Desanicióse la bandexa correchamente';
-$messages['foldersubscribed'] = 'Soscritu a bandexa correchamente.';
-$messages['folderunsubscribed'] = 'Soscripción a bandexa anulada correchamente.';
-$messages['folderpurged'] = 'Bandexa purgada correutamente.';
-$messages['folderexpunged'] = 'Bandexa compautada correutamente.';
-$messages['deletedsuccessfully'] = 'Desanicióse correchamente';
+$messages['nospellerrors'] = 'Nun di con errores ortográficos';
+$messages['folderdeleted'] = 'Desaniciose la bandexa correchamente';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
+$messages['deletedsuccessfully'] = 'Desaniciose correchamente';
$messages['converting'] = 'Desaniciando\'l formatu del mensaxe...';
-$messages['messageopenerror'] = 'Nun pue descargase\'l mensaxe del sirvidor.';
-$messages['fileuploaderror'] = 'Fallu al xubir ficheros.';
+$messages['messageopenerror'] = 'Nun soi a baxer el mensaxe del sirvidor';
+$messages['fileuploaderror'] = 'Fallu al xubir ficheros';
$messages['filesizeerror'] = 'El ficheru ye más grande de lo permitío ($size)';
-$messages['copysuccess'] = '$nr contautos copiaos correchamente.';
-$messages['movesuccess'] = '$nr contautos movíos correchamente.';
-$messages['copyerror'] = 'Nun pudo copiase dengún contautu.';
-$messages['moveerror'] = 'Nun pudo movese dengún contautu.';
+$messages['copysuccess'] = 'Copiaronse $nr direiciones correchamente';
+$messages['copyerror'] = 'Nun fui a copiar nenguna direición';
$messages['sourceisreadonly'] = 'Esta direición ye de namái-llectura';
-$messages['errorsavingcontact'] = 'Nun pudo guardase la direición del contautu';
-$messages['movingmessage'] = 'Moviendo mensaxe(s)...';
-$messages['copyingmessage'] = 'Copiando mensaxe(s)...';
-$messages['copyingcontact'] = 'Copiando contautu(os)...';
-$messages['movingcontact'] = 'Moviendo contautu(os)...';
-$messages['deletingmessage'] = 'Desaniciando mensaxe(s)...';
-$messages['markingmessage'] = 'Marcando mensaxe(s)...';
-$messages['addingmember'] = 'Amestando contautu(os) al grupu...';
-$messages['removingmember'] = 'Quitando contautu(os) del grupu...';
-$messages['receiptsent'] = 'Unvióse correchamente l\'avisu de llectura.';
-$messages['errorsendingreceipt'] = 'Nun pudo unviase l\'avisu de llectura.';
-$messages['deleteidentityconfirm'] = '¿Daveres que quies desaniciar esta identidá?';
-$messages['nodeletelastidentity'] = 'Nun pue desaniciase esa identidá porque ye la última.';
-$messages['forbiddencharacter'] = 'El nome de la bandexa tien un caráuter non validu.';
-$messages['selectimportfile'] = 'Por favor escueyi\'l ficheru que quies xubir';
-$messages['addresswriterror'] = 'Nun pue escribise na llibreta de direiciones seleicionada.';
-$messages['contactaddedtogroup'] = 'Amestáronse correutamente los contautos a esti grupu.';
-$messages['contactremovedfromgroup'] = 'Desaniciáronse correutamente los contautos a esti grupu.';
-$messages['nogroupassignmentschanged'] = 'Nun hai cambeos n\'asignación de grupos.';
+$messages['errorsavingcontact'] = 'Nun fui a guardar la direición del contautu';
+$messages['movingmessage'] = 'Moviendo\'l mensaxe...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Unviose correchamente l\'avisu de llectura.';
+$messages['errorsendingreceipt'] = 'Nun fui a unviar l\'avisu de llectura.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'Nun puedo desaniciar esa identidá porque ye la última.';
+$messages['forbiddencharacter'] = 'El nome de la bandexa tien un caráuter que nun val';
+$messages['selectimportfile'] = 'Por favor escueye el ficheru que quies xubir';
+$messages['addresswriterror'] = 'Nun puedo escribir nel llibru de direiciones qu\'escoyisti';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'Importando, dame un minutín...';
-$messages['importformaterror'] = '¡La importación falló! El ficheru unviáu nun ye un ficheru válidu d\'importación.';
-$messages['importconfirm'] = '<b>Importáronse correchamente $inserted contautos</b>';
-$messages['importconfirmskipped'] = '<b>Inoraes $skipped entraes esistentes</b>';
-$messages['importmessagesuccess'] = '$nr mensaxes importaos con éxitu';
-$messages['importmessageerror'] = '¡Falló la importación! El ficheru xubíu nun ye un ficheru válidu de mensaxe o buzón de corréu';
-$messages['opnotpermitted'] = '¡Nun tienes permisu pa facelo!';
-$messages['nofromaddress'] = 'El contautu seleicionáu nun tien direición de corréu-e.';
-$messages['editorwarning'] = 'Si pases a editor en mou testu vas perder tol estilu aplicáu al mensaxe. ¿Tas seguru de que quies facelo?';
-$messages['httpreceivedencrypterror'] = 'Hai un fallu grave de configuración. Contauta col alministrador de secute. <b>Nun pue unviase\'l mensaxe</b>';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Importaronse correchamente $inserted contautos, saltáronse $skipped entrase que yá esistíen</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Nun tienes permisu pa facelo.';
+$messages['nofromaddress'] = 'Perdiose la direición de corréu de la identidá qu\'escoyisti';
+$messages['editorwarning'] = 'Si pases a editor en modu testu vas perder tol estilu aplicáu al mensaxe. ¿Tas seguru de que quies facelo?';
+$messages['httpreceivedencrypterror'] = 'Hai un fallu garrafal de configuración. Contauta col alministrador de secute. <b>Nun se pude unviar el mesaxe</b>';
$messages['smtpconnerror'] = 'Fallu SMTP ($code): Fallu de conexón col sirvidor';
$messages['smtpautherror'] = 'Fallu SMTP ($code): Fallu d\'autorización';
-$messages['smtpfromerror'] = 'Fallu SMTP ($code): Fallu al afitar l\'emisor "$from" ($msg)';
+$messages['smtpfromerror'] = 'Fallu SMTP ($code): Fallu al aficar el remitente "$from" ($msg)';
$messages['smtptoerror'] = 'Fallu SMTP ($code): Fallu al amestar el destinatariu "$to" ($msg)';
-$messages['smtprecipientserror'] = 'Fallu SMTP: Nun pue amosase la llista de destinatarios.';
+$messages['smtprecipientserror'] = 'Fallu SMTP: Nun soi a amosar la llista de destinatarios';
$messages['smtperror'] = 'Fallu SMTP: $msg';
-$messages['emailformaterror'] = 'Direición de corréu incorreuta: $email';
-$messages['toomanyrecipients'] = 'Hai munchos destinatarios. Amenorga\'l númberu de destinatarios a $max.';
-$messages['maxgroupmembersreached'] = 'El númberu de miembros del grupu perpasa\'l máximu de $max.';
-$messages['contactdelerror'] = 'Nun pudo desaniciase el/los contautu(os).';
-$messages['contactdeleted'] = 'Contautu(os) desaniciáu(os) correchamente.';
-$messages['contactrestoreerror'] = 'Nun pudieron restaurase los contautos desaniciaos.';
-$messages['contactrestored'] = 'Los contautos restauráronse con éxitu.';
-$messages['groupdeleted'] = 'Grupu desaniciáu correchamente.';
-$messages['grouprenamed'] = 'Grupu renomáu correchamente.';
-$messages['groupcreated'] = 'Grupu creáu correchamente.';
-$messages['savedsearchdeleted'] = 'La busca guardada, desanicióse con éxitu.';
-$messages['savedsearchdeleteerror'] = 'Nun pudo desaniciase la busca guardada.';
-$messages['savedsearchcreated'] = 'Guardóse correchamente la busca.';
-$messages['savedsearchcreateerror'] = 'Nun pudo guardase la busca.';
-$messages['messagedeleted'] = 'Mensaxe(s) desaniciaos correchamente.';
-$messages['messagemoved'] = 'Mensaxe(s) movíos correchamente.';
-$messages['messagecopied'] = 'Mensaxe(s) copiaos correchamente.';
-$messages['messagemarked'] = 'Mensaxe(s) marcaos correchamente.';
-$messages['autocompletechars'] = 'Introduz a lo menso $min caráuteres p\'autocompletar.';
-$messages['autocompletemore'] = 'Atopáronse más coincidencies. Por favor, escribi más caráuteres.';
-$messages['namecannotbeempty'] = 'Hai que poner el nome.';
-$messages['nametoolong'] = 'El nome ye abondo llargu.';
-$messages['folderupdated'] = 'Bandexa anovada correchamente.';
-$messages['foldercreated'] = 'Bandexa creada correchamente.';
-$messages['invalidimageformat'] = 'Nun ye un formatu d\'imaxe válidu.';
-$messages['mispellingsfound'] = 'Deteutáronse fallos ortográficos nel mensaxe.';
-$messages['parentnotwritable'] = 'Nun puede crease/movese la carpeta a la carpeta superior elexida. Nun tienes permisos d\'accesu.';
-$messages['messagetoobig'] = 'Esta parte del mensaxe ye enforma grande pa procesala';
-$messages['attachmentvalidationerror'] = '¡ATENCIÓN! Esti axuntu ye sospechosu porque\'l so tipu nun concasa col tipu declaráu nel mensaxe. Si nun confíes nel so remitente, nun tendríes d\'abrilu nel to navegador porque podría tener conteníu maliciosu.<br/<br/> <em>Esperábase: $expected; atopóse: $detected</em>';
-$messages['noscriptwarning'] = 'Avisu: ¡esti serviciu de webmail necesita Javascript! Pa poder usalu, habilita\'l soporte de Javascript nel to navegador, por favor.';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/az_AZ/labels.inc b/program/localization/az_AZ/labels.inc
index 60930a49d..0cb4b3e82 100644
--- a/program/localization/az_AZ/labels.inc
+++ b/program/localization/az_AZ/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product-a xoş gəldiniz!';
$labels['username'] = 'İstifadəçi adı';
$labels['password'] = 'ÅžifrÉ™';
$labels['server'] = 'Server';
$labels['login'] = 'GiriÅŸ';
+
+// taskbar
$labels['logout'] = 'Çıx';
$labels['mail'] = 'Poçt';
$labels['settings'] = 'Nizamlamalar';
$labels['addressbook'] = 'Ãœnvanlar';
+
+// mailbox names
$labels['inbox'] = 'Gələnlər';
$labels['drafts'] = 'Qaralamalar';
$labels['sent'] = 'Göndərilənlər';
$labels['trash'] = 'Səbət';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Xüsusi qovluqlar üçün real adları göstər';
+
+// message listing
$labels['subject'] = 'Mövzu';
$labels['from'] = 'Kimdən';
$labels['sender'] = 'Göndərən';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Vaciblik';
$labels['organization'] = 'Təşkilat';
$labels['readstatus'] = 'Statusu oxu';
$labels['listoptions'] = 'Siyahı ayarları...';
+
$labels['mailboxlist'] = 'Qovluqlar';
$labels['messagesfromto'] = '$count mesajdan $from - $to arası mesajlar';
$labels['threadsfromto'] = 'Müzakirə: $from - $to Toplam: $count';
$labels['messagenrof'] = 'Məktub: $nr / $count';
$labels['fromtoshort'] = '$from – $to-dan $count';
+
$labels['copy'] = 'Kopyala';
$labels['move'] = 'Köçür';
$labels['moveto'] = 'Burada köçür...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Endir';
$labels['open'] = 'Aç';
$labels['showattachment'] = 'Göstər';
$labels['showanyway'] = 'İstənilən halda göstər';
+
$labels['filename'] = 'Faylın adı';
$labels['filesize'] = 'Faylın ölçüsü';
+
$labels['addtoaddressbook'] = 'Ünvanlara əlavə et';
+
+// weekdays short
$labels['sun'] = 'B';
$labels['mon'] = 'Be';
$labels['tue'] = 'Ç';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Ça';
$labels['thu'] = 'C';
$labels['fri'] = 'Ca';
$labels['sat'] = 'Åž';
+
+// weekdays long
$labels['sunday'] = 'Bazar';
$labels['monday'] = 'Bazar ertəsi';
$labels['tuesday'] = 'Çərçənbə';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Çərşənbə axşamı';
$labels['thursday'] = 'Cümə';
$labels['friday'] = 'Cümə axşamı';
$labels['saturday'] = 'Şənbə';
+
+// months short
$labels['jan'] = 'Yan';
$labels['feb'] = 'Fev';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sen';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Noy';
$labels['dec'] = 'Dek';
+
+// months long
$labels['longjan'] = 'Yanvar';
$labels['longfeb'] = 'Fevral';
$labels['longmar'] = 'Mart';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Sentyabr';
$labels['longoct'] = 'Oktyabr';
$labels['longnov'] = 'Noyabr';
$labels['longdec'] = 'Dekabr';
+
$labels['today'] = 'Bu gün';
+
+// toolbar buttons
$labels['refresh'] = 'YenilÉ™';
$labels['checkmail'] = 'Gələnləri yoxla';
$labels['compose'] = 'Məktub yaz';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Daha çox seçim...';
$labels['more'] = 'Daha çox';
$labels['back'] = 'Geri';
$labels['options'] = 'Ayarlar';
+
$labels['select'] = 'Seçin';
$labels['all'] = 'Hamısı';
$labels['none'] = 'Heç biri';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'Hazırki səhifəni';
$labels['unread'] = 'Oxunmamışları';
$labels['flagged'] = 'İşarəliləri';
$labels['unanswered'] = 'Cavabsızları';
-$labels['withattachment'] = 'QoÅŸma ilÉ™';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Silinmişləri';
$labels['undeleted'] = 'Silinməyib';
$labels['invert'] = 'İnvertliləri';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Hamısını aç';
$labels['expand-unread'] = 'Oxunmamışları aç';
$labels['collapse-all'] = 'Hamısını bük';
$labels['threaded'] = 'Müzakirə';
+
$labels['autoexpand_threads'] = 'Müzakirəni aç';
$labels['do_expand'] = 'bütün müzakirələr';
$labels['expand_only_unread'] = 'yalnız oxunmamış məktublarla';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Sütunlar';
$labels['listsorting'] = 'Sütunları çeşidlə';
$labels['listorder'] = 'Çeşidləmə qaydası';
$labels['listmode'] = 'Görünüş rejimi';
+
$labels['folderactions'] = 'Qovluq işləri...';
$labels['compact'] = 'Sıx';
$labels['empty'] = 'BoÅŸalt';
-$labels['importmessages'] = 'Mesajların idxalı';
+
$labels['quota'] = 'Disk istifadəsi';
$labels['unknown'] = 'naməlum';
$labels['unlimited'] = 'limitsiz';
+
$labels['quicksearch'] = 'Sürətli axtarış';
$labels['resetsearch'] = 'Axtarışı yenilə';
$labels['searchmod'] = 'Axtarış variantları';
$labels['msgtext'] = 'Bütün məktub';
$labels['body'] = 'Mətn';
-$labels['type'] = 'Növ';
-$labels['namex'] = 'Ad';
+
$labels['openinextwin'] = 'Yeni pəncərədə aç';
$labels['emlsave'] = 'Saxla (.eml)';
$labels['changeformattext'] = 'Sadə mətn formatında göstər';
$labels['changeformathtml'] = 'HTML formatında göstər';
+
+// message compose
$labels['editasnew'] = 'Yeni kimi redaktÉ™ et';
$labels['send'] = 'Göndər';
$labels['sendmessage'] = 'İndi göndər';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Cavab sorÄŸusu';
$labels['dsn'] = 'Çatdırılma statusu haqda bildiriş';
$labels['mailreplyintro'] = '$date tarixdə, $sender yazıb:';
$labels['originalmessage'] = 'Orijinal məktub';
+
$labels['editidents'] = 'İdentifikasiyanı dəyiş';
$labels['spellcheck'] = 'Orfoqrafiya';
$labels['checkspelling'] = 'Orfoqrafiyanı yoxla';
$labels['resumeediting'] = 'Redaktəni davam et';
$labels['revertto'] = 'Dəyişiklikləri ləğv et';
+
$labels['attach'] = 'Fayl əlavə et';
$labels['attachments'] = 'Bərkidilmiş Fayllar';
$labels['upload'] = 'Yüklə';
$labels['uploadprogress'] = '$percent ($current cəmi: $total)';
$labels['close'] = 'BaÄŸla';
$labels['messageoptions'] = 'Məktub xüsusiyyətləri...';
+
$labels['low'] = 'Alçaq';
$labels['lowest'] = 'Çox alçaq';
$labels['normal'] = 'Normal';
$labels['high'] = 'Yüksək';
$labels['highest'] = 'Çox yüksək';
+
$labels['nosubject'] = '(mövzu yoxdur)';
$labels['showimages'] = 'Şəkilləri göstər';
$labels['alwaysshow'] = '$sender-dən olan məktublarda həmişə şəkilləri göstər';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Bu qaralama məktubudur.';
$labels['andnmore'] = 'Daha çox $nr more...';
$labels['togglemoreheaders'] = 'Daha çox məktub';
$labels['togglefullheaders'] = 'Məktubun çiy başlıqlarını keçir';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Mətn';
$labels['savesentmessagein'] = 'Məktubu saxla...';
$labels['dontsave'] = 'saxlama';
$labels['maxuploadsize'] = 'Faylın maksimal ölçüsü: $size';
+
$labels['addcc'] = 'Kopya əlavə et';
$labels['addbcc'] = 'Gizli kopya əlavə et';
$labels['addreplyto'] = 'Yönəltmə əlavə et';
$labels['addfollowupto'] = '"İzlə" əlavə et';
+
+// mdn
$labels['mdnrequest'] = 'Məktubu göndərən onu oxuduğunuz haqda sorğu almaq istəyir. Göndərilsin?';
$labels['receiptread'] = 'Oxunulma haqda soÄŸru';
$labels['yourmessage'] = 'Bu məktubunuzun oxunulduğu haqda sorğudur';
$labels['receiptnote'] = 'Bu sorğu yalnız qəbul edilən tərəfindən məktubun açıldığına göstərir. Onun oxunulduğuna zəmanət vermir.';
+
+// address boook
$labels['name'] = 'Göstərilən ad';
$labels['firstname'] = 'Adı';
$labels['surname'] = 'Soyadı';
@@ -262,6 +301,7 @@ $labels['search'] = 'Axtar';
$labels['advsearch'] = 'Ætraflı axtarış';
$labels['advanced'] = 'ÆlavÉ™';
$labels['other'] = 'BaÅŸqa';
+
$labels['typehome'] = 'Ev';
$labels['typework'] = 'Ä°ÅŸ';
$labels['typeother'] = 'BaÅŸqa';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Köməkçi';
$labels['typehomepage'] = 'Ana səhifə';
$labels['typeblog'] = 'Bloq';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Sahə əlavə et';
$labels['addcontact'] = 'Ünvanlara əlavə et';
$labels['editcontact'] = 'Ünvanı redaktə et';
$labels['contacts'] = 'ÆlaqÉ™lÉ™r';
$labels['contactproperties'] = 'Kontakt xüsusiyyətləri';
$labels['personalinfo'] = 'Şəxsi məlumat';
+
$labels['edit'] = 'RedaktÉ™ et';
$labels['cancel'] = 'Ləğv et';
$labels['save'] = 'Saxla';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Adlandır';
$labels['addphoto'] = 'ÆlavÉ™ et';
$labels['replacephoto'] = 'Adı dəyiş';
$labels['uploadphoto'] = 'Şəkil yüklə';
+
$labels['newcontact'] = 'Yeni ünvan kartı əlavə et';
$labels['deletecontact'] = 'Seçilmiş ünvanları sil';
$labels['composeto'] = 'Seçilmiş ünvanlara məktub yaz';
@@ -303,32 +346,41 @@ $labels['newcontactgroup'] = 'Ãœnvanlar qrupunu yarat';
$labels['grouprename'] = 'Qruğun adını dəyişdir';
$labels['groupdelete'] = 'Qrupu sil';
$labels['groupremoveselected'] = 'Qrupdan seçilmiş kontaktları sil';
+
$labels['previouspage'] = 'ÆvvÉ™lkini göstÉ™r';
$labels['firstpage'] = 'Birincini göstər';
$labels['nextpage'] = 'Sonrakını göstər';
$labels['lastpage'] = 'Sonuncunu göstər';
+
$labels['group'] = 'Qrup';
$labels['groups'] = 'Qruplar';
-$labels['listgroup'] = 'Qrup üzvlərinin siyahısı';
$labels['personaladrbook'] = 'Şəxsi ünvanlar';
+
$labels['searchsave'] = 'SorÄŸunu saxla';
$labels['searchdelete'] = 'SorÄŸunu sil';
+
$labels['import'] = 'Ä°dxal';
$labels['importcontacts'] = 'Ünvanların idxalı';
$labels['importfromfile'] = 'Fayldan idxal:';
+$labels['importtarget'] = 'ÆlaqÉ™ kitabçasına yeni kontaktları É™lavÉ™ et';
$labels['importreplace'] = 'Ünvan kitabçasını dəyiş';
$labels['importdesc'] = 'Siz kontaktları mövcud ünvan kitabçasından yükləyə bilərsiniz. <br/> Hal-hazırda biz ünvanların idxalını <a href="http://az.wikipedia.org/wiki/VCard">vCard</a> və ya CSV (vergüllə bölünmüş) formatında olan vizit kartları dəstəkləyirik.';
$labels['done'] = 'Bitdi';
+
+// settings
$labels['settingsfor'] = 'Nizamlamaları';
$labels['about'] = 'Haqqında';
$labels['preferences'] = 'Nizamlamalar';
$labels['userpreferences'] = 'İstifadəçi nizamlamaları';
$labels['editpreferences'] = 'İstifadəçi nizamlamalarını redaktə et';
+
$labels['identities'] = 'Kimliklər';
$labels['manageidentities'] = 'Bu hesab üçün kimlikləri idarə et';
$labels['newidentity'] = 'Yeni kimlik';
+
$labels['newitem'] = 'Yeni maddÉ™';
$labels['edititem'] = 'Maddəni redaktə et';
+
$labels['preferhtml'] = 'HTML-də göstər';
$labels['defaultcharset'] = 'İlkin vəziyyətdəki kodlaşdırma';
$labels['htmlmessage'] = 'HTML məktub';
@@ -350,7 +402,7 @@ $labels['htmleditor'] = 'HTML-dÉ™ mesaj yaz';
$labels['htmlonreply'] = 'yalnız HTML mesajlar ilə cavab';
$labels['htmlonreplyandforward'] = 'HTML məktuba cavab və yönəltmə zamanı';
$labels['htmlsignature'] = 'HTML imza';
-$labels['showemail'] = 'E-poçt ünvanları displey adları ilə göstər';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Prevyu paneli göstər';
$labels['skin'] = 'Ä°nterfeys stili';
$labels['logoutclear'] = 'Poçtdan çıxan zaman səbəti təmizlə';
@@ -420,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Rəqəmlər ilə sözləri keç';
$labels['spellcheckignorecaps'] = 'Böyük hərfləri olan sözlərdən keç';
$labels['addtodict'] = 'Lüğətə əlavə et';
$labels['mailtoprotohandler'] = 'mailto: keçid üçün protokol qeyd et';
-$labels['standardwindows'] = 'Handle popapsı standart pəncərələr kimi';
$labels['forwardmode'] = 'Məktubların yönəldilməsi';
$labels['inline'] = 'mətndə';
$labels['asattachment'] = 'fayl kimi';
+
$labels['folder'] = 'Qovluq';
$labels['folders'] = 'Qovluqlar';
$labels['foldername'] = 'Qovluq adı';
@@ -444,20 +496,26 @@ $labels['foldertype'] = 'Qovluq növü';
$labels['personalfolder'] = 'Gizli qovluq';
$labels['otherfolder'] = 'Başqa istifadəçilərin qovluğu';
$labels['sharedfolder'] = 'Ä°ctimai qovluq';
+
$labels['sortby'] = 'Çeşidlə';
$labels['sortasc'] = 'Azdan çoxa';
$labels['sortdesc'] = 'Çoxdan aza';
$labels['undo'] = 'Ləğv et';
+
$labels['installedplugins'] = 'Yazılmış qoşmalar';
$labels['plugin'] = 'QoÅŸma';
$labels['version'] = 'Versiya';
$labels['source'] = 'Mənbə';
$labels['license'] = 'Lisenziya';
$labels['support'] = 'Dəstək';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Ä°ngilis dili';
$labels['westerneuropean'] = 'Qərbi Avropa';
@@ -476,4 +534,5 @@ $labels['vietnamese'] = 'Vyetnamca';
$labels['japanese'] = 'Yaponca';
$labels['korean'] = 'Koreya';
$labels['chinese'] = 'Çincə';
+
?>
diff --git a/program/localization/az_AZ/messages.inc b/program/localization/az_AZ/messages.inc
index ddab8d702..418f270be 100644
--- a/program/localization/az_AZ/messages.inc
+++ b/program/localization/az_AZ/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Xəta baş verdi!';
$messages['loginfailed'] = 'GiriÅŸ uÄŸursuz oldu.';
$messages['cookiesdisabled'] = 'Sizin brauzer kukiləri qəbul etmir.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Tələb olunan ünvan tapılmadı';
$messages['contactsearchonly'] = 'Kontaqların axtarışı üçün şərti daxil edin';
$messages['sendingfailed'] = 'Məktub göndərilmədi';
$messages['senttooquickly'] = 'Məktub göndərmək üçün $sec saniyə gözləmək gərəkir';
+$messages['errorsavingsent'] = 'Göndərilən məktub saxlanılan zaman xəta baş verdi';
+$messages['errorsaving'] = 'Saxlanma prosesi zamanı problem baş verdi';
$messages['errormoving'] = 'Məktubu (məktubları) köçürmək alnmadı';
$messages['errorcopying'] = 'Məktubu (məktubları) kopyalamaq alınmadı';
$messages['errordeleting'] = 'Məktubu (məktubları) silmək alınmadı';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Məktubun formatlaşması silinir...';
$messages['messageopenerror'] = 'Məktubu serverdən yükləmək alınmır';
$messages['fileuploaderror'] = 'Fayl yüklənilmədi';
$messages['filesizeerror'] = 'Yüklənilən fayl maksimal ölçüdən çoxdur - $size';
-$messages['copysuccess'] = '$nr kontaktlar uğurlar kopyalanmışdır.';
-$messages['movesuccess'] = '$nr kontaktlar uğurla köçürülmüşdür.';
-$messages['copyerror'] = 'Heç bir kontaktı kopyalamaq olmur.';
-$messages['moveerror'] = 'Heç bir kontaktı köçürmək alınmır.';
+$messages['copysuccess'] = '$nr ünvan kopyalandı';
+$messages['copyerror'] = 'Ünvanları kopyalamaq alınmır';
$messages['sourceisreadonly'] = 'Verilən ünvanlar mənbəyi yalnız oxunmaq üçün';
$messages['errorsavingcontact'] = 'ÆlaqÉ™ni ünvanda saxlamaq mümkün deyil';
$messages['movingmessage'] = 'Məktub köçürülür...';
$messages['copyingmessage'] = 'Məktub kopyalanır...';
$messages['copyingcontact'] = 'Kontakt(lar)ın kopyalanması...';
-$messages['movingcontact'] = 'Kontak(lar)ın köçürülməsi...';
$messages['deletingmessage'] = 'Məktub(lar) silinir...';
$messages['markingmessage'] = 'Məktub(lar) işarələnir...';
$messages['addingmember'] = 'Kontakt(lar)ın qrupa əlavə edilməsi...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'İdxal gedir, lütfən gözləyin...';
$messages['importformaterror'] = 'İdxal xətası. Yüklənilən fayl naməlum məlumat formatına malikdir.';
$messages['importconfirm'] = '<b>$inserted ünvanlar müvəffəqiyyətlə idxal edildi, mövcud $skipped buraxılıb</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Buraxılmış $skipped mövcud daxillər</b>';
-$messages['importmessagesuccess'] = '$nr məktublar uğurla idxal edildi';
-$messages['importmessageerror'] = 'İdxal alınmadı! Yüklənilmiş fayl düzgün məktub və ya poçt faylı deyil';
$messages['opnotpermitted'] = 'ÆmÉ™liyyat qadaÄŸandır!';
$messages['nofromaddress'] = 'Seçilmiş kimlikdə e-poçt ünvanları yoxdur';
$messages['editorwarning'] = 'Adi mətn redaktoruna keçid, bütün mətn formatlarının itkisinə gətirəcək. Davam edilsin?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP Error ($code): $msg';
$messages['emailformaterror'] = 'Səhv ünvan: $email';
$messages['toomanyrecipients'] = 'Qəbul edənlər həddindən artıq çoxdur. Lütfən, $max qədər azaldın.';
$messages['maxgroupmembersreached'] = 'Qrupun ölçüsü imkan verilən maksimumdan artıqdır - $max';
+$messages['internalerror'] = 'Daxili xəta baş verdi. Lütfən, bir daha cəhd edin';
$messages['contactdelerror'] = 'Kontak(lar)ı silmək alınmadı';
$messages['contactdeleted'] = 'Kontak(lar) uÄŸurla silindi';
$messages['contactrestoreerror'] = 'Silinmiş kontakt(lar)ın bərpası alınmadı';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Qovluğu seçilmiş ana qovluğa köçürmək/
$messages['messagetoobig'] = 'Məktubun bir hissəsi emal üçün böyükdür.';
$messages['attachmentvalidationerror'] = 'DÄ°QQÆT! Bu qoÅŸma şübhÉ™lidir, çünki mÉ™ktubda deyilÉ™n növlÉ™ eyni deyil. ÆgÉ™r siz göndÉ™rÉ™ güvÉ™nmirsinizsÉ™, brauzerdÉ™ bunu açmayın. TÉ™rkibi tÉ™hlükÉ™li ola bilÉ™r.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'Xəbərdarlıq: Bu vebmeyl xidməti Javascript tələb edir! Funksiyanı istifadə etmək üçün lütfən, brauzerinizin ayarlarında Javascript-i yandırın.';
+
?>
diff --git a/program/localization/be_BE/labels.inc b/program/localization/be_BE/labels.inc
index 549c315a6..a5489a454 100644
--- a/program/localization/be_BE/labels.inc
+++ b/program/localization/be_BE/labels.inc
@@ -15,477 +15,524 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Вітаем у $product';
$labels['username'] = 'КарыÑтальнік';
$labels['password'] = 'Пароль';
$labels['server'] = 'Сервер';
$labels['login'] = 'Уваход';
+
+// taskbar
$labels['logout'] = 'Выхад';
$labels['mail'] = 'Пошта';
$labels['settings'] = 'ÐаÑтаўленні';
$labels['addressbook'] = 'ÐдраÑÐ½Ð°Ñ ÐºÐ½Ñ–Ð³Ð°';
+
+// mailbox names
$labels['inbox'] = 'ÐтрыманыÑ';
$labels['drafts'] = 'Чарнавікі';
$labels['sent'] = 'ДаÑланыÑ';
$labels['trash'] = 'Сметніца';
$labels['junk'] = 'Спам';
-$labels['show_real_foldernames'] = 'Паказваць ÑÐ°Ð¿Ñ€Ð°ÑžÐ´Ð½Ñ‹Ñ Ð½Ð°Ð·Ð²Ñ‹ Ð´Ð»Ñ Ð°Ð´Ð¼Ñ‹Ñловых папак';
+
+// message listing
$labels['subject'] = 'ТÑма';
$labels['from'] = 'Ðд каго';
-$labels['sender'] = 'Ðдпраўнік';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Каму';
-$labels['cc'] = 'КопіÑ';
-$labels['bcc'] = 'Ð¡Ñ…Ð°Ð²Ð°Ð½Ð°Ñ ÐºÐ¾Ð¿Ñ–Ñ';
-$labels['replyto'] = 'Ðдказаць-на';
-$labels['followupto'] = 'Групавы-адказ-на';
+$labels['cc'] = 'ÐšÐ¾Ð¿Ñ–Ñ (СС)';
+$labels['bcc'] = 'Сх.ÐºÐ¾Ð¿Ñ–Ñ (ВСС)';
+$labels['replyto'] = 'Ðдказаць на';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Дата';
$labels['size'] = 'Памер';
$labels['priority'] = 'ПрыÑрытÑÑ‚';
-$labels['organization'] = 'УÑтанова';
+$labels['organization'] = 'Organization';
$labels['readstatus'] = 'Ðе прачытанае';
-$labels['listoptions'] = 'Параметры ÑпіÑу...';
-$labels['mailboxlist'] = 'Папкі';
-$labels['messagesfromto'] = 'Паведамленні $from—$to з $count';
-$labels['threadsfromto'] = 'Ðбмеркаванні $from—$to з $count';
-$labels['messagenrof'] = 'Паведамленне $nr з $count';
-$labels['fromtoshort'] = '$from—$to з $count';
-$labels['copy'] = 'Капіраваць';
-$labels['move'] = 'ПерамÑÑціць';
-$labels['moveto'] = 'ПерамÑÑціць у...';
-$labels['download'] = 'СцÑгнуць';
-$labels['open'] = 'Ðдкрыць';
-$labels['showattachment'] = 'Паказаць';
-$labels['showanyway'] = 'УÑÑ‘ адно паказваць';
-$labels['filename'] = 'Ðазва файла';
-$labels['filesize'] = 'Памер файла';
-$labels['addtoaddressbook'] = 'Дадаць у адраÑную кнігу';
-$labels['sun'] = 'нд';
-$labels['mon'] = 'пн';
-$labels['tue'] = 'аў';
-$labels['wed'] = 'ÑÑ€';
-$labels['thu'] = 'чц';
-$labels['fri'] = 'пт';
-$labels['sat'] = 'Ñб';
-$labels['sunday'] = 'нÑдзелÑ';
-$labels['monday'] = 'панÑдзелак';
-$labels['tuesday'] = 'аўторак';
-$labels['wednesday'] = 'Ñерада';
-$labels['thursday'] = 'чацвер';
-$labels['friday'] = 'пÑтніца';
-$labels['saturday'] = 'Ñубота';
-$labels['jan'] = 'Ñту';
-$labels['feb'] = 'лют';
-$labels['mar'] = 'Ñак';
-$labels['apr'] = 'кра';
-$labels['may'] = 'май';
-$labels['jun'] = 'чÑÑ€';
-$labels['jul'] = 'ліп';
-$labels['aug'] = 'жні';
-$labels['sep'] = 'вер';
-$labels['oct'] = 'каÑ';
-$labels['nov'] = 'ліÑ';
-$labels['dec'] = 'Ñне';
-$labels['longjan'] = 'Ñтудзень';
-$labels['longfeb'] = 'люты';
-$labels['longmar'] = 'Ñакавік';
-$labels['longapr'] = 'краÑавік';
-$labels['longmay'] = 'май';
-$labels['longjun'] = 'чÑрвень';
-$labels['longjul'] = 'ліпень';
-$labels['longaug'] = 'жнівень';
-$labels['longsep'] = 'вераÑень';
-$labels['longoct'] = 'каÑтрычнік';
-$labels['longnov'] = 'ліÑтапад';
-$labels['longdec'] = 'Ñнежань';
-$labels['today'] = 'ÑённÑ';
-$labels['refresh'] = 'Ðбнавіць';
-$labels['checkmail'] = 'Праверыць Ð½Ð¾Ð²Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ–';
-$labels['compose'] = 'СклаÑці';
-$labels['writenewmessage'] = 'СклаÑці новае паведамленне';
-$labels['reply'] = 'Ðдказаць';
-$labels['replytomessage'] = 'Ðдказаць адпраўніку';
-$labels['replytoallmessage'] = 'Ðдказаць па ÑпіÑе альбо адпраўніку Ñ– ÑžÑім атрымальнікам';
-$labels['replyall'] = 'Ðдказаць уÑім';
-$labels['replylist'] = 'Ðдказаць у ÑÐ¿Ñ–Ñ Ñ€Ð°ÑÑылкі';
-$labels['forward'] = 'ПераÑлаць';
-$labels['forwardinline'] = 'ПераÑлаць у целе ліÑта';
-$labels['forwardattachment'] = 'ПераÑлаць Ñк далучÑнне';
-$labels['forwardmessage'] = 'ПераÑлаць гÑтае паведамленне';
-$labels['deletemessage'] = 'Выдаліць паведамленне';
-$labels['movemessagetotrash'] = 'ПерамÑÑціць паведамленне Ñž Ñметніцу';
-$labels['printmessage'] = 'Раздрукаваць гÑтае паведамленне';
-$labels['previousmessage'] = 'Паказаць папÑÑ€ÑднÑе паведамленне';
-$labels['firstmessage'] = 'Паказаць першае паведамленне';
-$labels['nextmessage'] = 'Паказаць наÑтупнае паведамленне';
-$labels['lastmessage'] = 'Паказаць апошнÑе паведамленне';
-$labels['backtolist'] = 'Ðазад да ÑпіÑа паведамленнÑÑž';
-$labels['viewsource'] = 'Паказаць жарало';
-$labels['mark'] = 'Пазначыць';
-$labels['markmessages'] = 'Пазначыць паведамленні';
-$labels['markread'] = 'Як прачытаныÑ';
-$labels['markunread'] = 'Як непрачытаныÑ';
-$labels['markflagged'] = 'УÑтанавіць флаг';
-$labels['markunflagged'] = 'ЗнÑць флаг';
-$labels['moreactions'] = 'Больш дзеÑннÑÑž...';
-$labels['more'] = 'Больш';
-$labels['back'] = 'Ðазад';
-$labels['options'] = 'Параметры';
-$labels['select'] = 'Выбраць';
-$labels['all'] = 'УÑе';
-$labels['none'] = 'Жаднага';
-$labels['currpage'] = 'БÑÐ³ÑƒÑ‡Ð°Ñ Ñтаронка';
-$labels['unread'] = 'ÐепрачытаныÑ';
-$labels['flagged'] = 'З флагам';
-$labels['unanswered'] = 'ÐеадказаныÑ';
-$labels['withattachment'] = 'З далучÑннÑмі';
-$labels['deleted'] = 'ВыдаленыÑ';
-$labels['undeleted'] = 'ÐÑвыдаленыÑ';
-$labels['invert'] = 'Інвертаваць';
-$labels['filter'] = 'Фільтр';
-$labels['list'] = 'СпіÑ';
-$labels['threads'] = 'Ðбмеркаванні';
-$labels['expand-all'] = 'Развінуць уÑÑ‘';
-$labels['expand-unread'] = 'Развінуць непрачытаныÑ';
-$labels['collapse-all'] = 'Звінуць уÑÑ‘';
-$labels['threaded'] = 'Ðбмеркаванні';
-$labels['autoexpand_threads'] = 'Развінуць абмеркаванні';
-$labels['do_expand'] = 'уÑе абмеркаванні';
-$labels['expand_only_unread'] = 'толькі з непрачытанымі паведамленнÑмі';
-$labels['fromto'] = 'Ðд/Да';
-$labels['flag'] = 'Флаг';
-$labels['attachment'] = 'ДалучÑнне';
-$labels['nonesort'] = 'ÐдÑутнічае';
-$labels['sentdate'] = 'Дата адпраўкі';
-$labels['arrival'] = 'Дата атрыманнÑ';
-$labels['asc'] = 'на ўзраÑтанне';
-$labels['desc'] = 'на змÑншчÑнне';
-$labels['listcolumns'] = 'Слупкі';
-$labels['listsorting'] = 'Сартаваць паводле';
-$labels['listorder'] = 'Парадак ÑартаваннÑ';
-$labels['listmode'] = 'Тып ÑпіÑу';
-$labels['folderactions'] = 'Ðперацыі з папкай...';
-$labels['compact'] = 'СціÑнуць';
-$labels['empty'] = 'Спаражніць';
-$labels['importmessages'] = 'Імпартаваць паведамленні';
-$labels['quota'] = 'Квота';
-$labels['unknown'] = 'невÑдома';
-$labels['unlimited'] = 'без абмежаваннÑÑž';
-$labels['quicksearch'] = 'Хуткі пошук';
-$labels['resetsearch'] = 'Скінуць пошук';
-$labels['searchmod'] = 'Мадыфікатары пошуку';
-$labels['msgtext'] = 'УÑÑ‘ паведамленне';
-$labels['body'] = 'Цела';
-$labels['type'] = 'Тып';
-$labels['namex'] = 'ІмÑ';
-$labels['openinextwin'] = 'Ðдкрыць у новым акне';
-$labels['emlsave'] = 'СцÑгнуць (.eml)';
-$labels['changeformattext'] = 'Паказаць Ñк проÑÑ‚Ñ‹ Ñ‚ÑкÑÑ‚';
-$labels['changeformathtml'] = 'Паказаць Ñк HTML';
-$labels['editasnew'] = 'ÐдрÑдагаваць Ñк новае';
-$labels['send'] = 'Ðдправіць';
-$labels['sendmessage'] = 'Ðдправіць паведамленне';
-$labels['savemessage'] = 'Захаваць Ñк чарнавік';
-$labels['addattachment'] = 'Далучыць файл';
-$labels['charset'] = 'Кадзіроўка';
-$labels['editortype'] = 'РÑдактар';
-$labels['returnreceipt'] = 'Пацверджанне атрыманнÑ';
-$labels['dsn'] = 'ÐпавÑшчÑнне пра даÑтаўку';
-$labels['mailreplyintro'] = '$sender піÑаў $date:';
-$labels['originalmessage'] = 'Ðрыгінальнае паведамленне';
-$labels['editidents'] = 'РÑдагаваць тоеÑнаÑці';
-$labels['spellcheck'] = 'ПравапіÑ';
-$labels['checkspelling'] = 'Праверыць правапіÑ';
-$labels['resumeediting'] = 'ПрацÑгнуць Ñ€Ñдагаванне';
-$labels['revertto'] = 'Ðдкаціцца на';
-$labels['responses'] = 'Ðдказы';
-$labels['insertresponse'] = 'УÑтавіць адказ';
-$labels['manageresponses'] = 'Кіраваць адказамі';
-$labels['savenewresponse'] = 'Захаваць новы адказ';
-$labels['editresponses'] = 'РÑдагаваць адказы';
-$labels['editresponse'] = 'РÑдагаваць адказ';
-$labels['responsename'] = 'Ðазва';
-$labels['responsetext'] = 'ТÑкÑÑ‚ адказу';
-$labels['attach'] = 'Далучыць';
-$labels['attachments'] = 'ДалучÑнні';
-$labels['upload'] = 'Ðпублікаваць';
-$labels['uploadprogress'] = '$percent ($current з $total)';
-$labels['close'] = 'Закрыць';
-$labels['messageoptions'] = 'Параметры паведамленнÑ...';
-$labels['low'] = 'Ðізкі';
-$labels['lowest'] = 'Ðайнізшы';
-$labels['normal'] = 'Звычайны';
-$labels['high'] = 'Ð’Ñ‹Ñокі';
-$labels['highest'] = 'Ðайвышшы';
-$labels['nosubject'] = '(без Ñ‚Ñмы)';
-$labels['showimages'] = 'Паказваць відарыÑÑ‹';
-$labels['alwaysshow'] = 'ЗаўÑёды паказваць відарыÑÑ‹ ад $sender';
-$labels['isdraft'] = 'ГÑта чарнавік.';
-$labels['andnmore'] = 'ÑÑˆÑ‡Ñ $nr...';
-$labels['togglemoreheaders'] = 'Паказаць больш загалоўкаў паведамленнÑ';
-$labels['togglefullheaders'] = 'Паказаць Ð½ÐµÐ°Ð¿Ñ€Ð°Ñ†Ð°Ð²Ð°Ð½Ñ‹Ñ Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐºÑ– паведамленнÑ';
+$labels['listoptions'] = 'List options...';
+
+$labels['mailboxlist'] = 'ТÑчкі';
+$labels['messagesfromto'] = 'Messages $from to $to of $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
+$labels['messagenrof'] = 'Message $nr of $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
+$labels['copy'] = 'Copy';
+$labels['move'] = 'Move';
+$labels['moveto'] = 'Move to...';
+$labels['download'] = 'Download';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
+$labels['filename'] = 'File name';
+$labels['filesize'] = 'File size';
+
+$labels['addtoaddressbook'] = 'Add to address book';
+
+// weekdays short
+$labels['sun'] = 'Sun';
+$labels['mon'] = 'Mon';
+$labels['tue'] = 'Tue';
+$labels['wed'] = 'Wed';
+$labels['thu'] = 'Thu';
+$labels['fri'] = 'Fri';
+$labels['sat'] = 'Sat';
+
+// weekdays long
+$labels['sunday'] = 'Sunday';
+$labels['monday'] = 'Monday';
+$labels['tuesday'] = 'Tuesday';
+$labels['wednesday'] = 'Wednesday';
+$labels['thursday'] = 'Thursday';
+$labels['friday'] = 'Friday';
+$labels['saturday'] = 'Saturday';
+
+// months short
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'May';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+
+// months long
+$labels['longjan'] = 'January';
+$labels['longfeb'] = 'February';
+$labels['longmar'] = 'March';
+$labels['longapr'] = 'April';
+$labels['longmay'] = 'May';
+$labels['longjun'] = 'June';
+$labels['longjul'] = 'July';
+$labels['longaug'] = 'August';
+$labels['longsep'] = 'September';
+$labels['longoct'] = 'October';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'December';
+
+$labels['today'] = 'Today';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
+$labels['checkmail'] = 'Check for new messages';
+$labels['compose'] = 'Compose';
+$labels['writenewmessage'] = 'Create a new message';
+$labels['reply'] = 'Reply';
+$labels['replytomessage'] = 'Reply to sender';
+$labels['replytoallmessage'] = 'Reply to list or to sender and all recipients';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
+$labels['forwardmessage'] = 'Forward the message';
+$labels['deletemessage'] = 'Delete message';
+$labels['movemessagetotrash'] = 'Move message to trash';
+$labels['printmessage'] = 'Print this message';
+$labels['previousmessage'] = 'Show previous message';
+$labels['firstmessage'] = 'Show first message';
+$labels['nextmessage'] = 'Show next message';
+$labels['lastmessage'] = 'Show last message';
+$labels['backtolist'] = 'Back to message list';
+$labels['viewsource'] = 'Show source';
+$labels['mark'] = 'Mark';
+$labels['markmessages'] = 'Mark messages';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
+$labels['select'] = 'Select';
+$labels['all'] = 'All';
+$labels['none'] = 'None';
+$labels['currpage'] = 'Current page';
+$labels['unread'] = 'Unread';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
+$labels['nonesort'] = 'None';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
+$labels['compact'] = 'Compact';
+$labels['empty'] = 'Empty';
+
+$labels['quota'] = 'Disk usage';
+$labels['unknown'] = 'unknown';
+$labels['unlimited'] = 'unlimited';
+
+$labels['quicksearch'] = 'Quick search';
+$labels['resetsearch'] = 'Reset search';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
+$labels['sendmessage'] = 'Send message';
+$labels['savemessage'] = 'Save as draft';
+$labels['addattachment'] = 'Attach a file';
+$labels['charset'] = 'Charset';
+$labels['editortype'] = 'Editor type';
+$labels['returnreceipt'] = 'Return receipt';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
+$labels['checkspelling'] = 'Check spelling';
+$labels['resumeediting'] = 'Resume editing';
+$labels['revertto'] = 'Revert to';
+
+$labels['attach'] = 'Attach';
+$labels['attachments'] = 'Attachments';
+$labels['upload'] = 'Upload';
+$labels['uploadprogress'] = '$percent ($current from $total)';
+$labels['close'] = 'Close';
+$labels['messageoptions'] = 'Message options...';
+
+$labels['low'] = 'Low';
+$labels['lowest'] = 'Lowest';
+$labels['normal'] = 'Normal';
+$labels['high'] = 'High';
+$labels['highest'] = 'Highest';
+
+$labels['nosubject'] = '(no subject)';
+$labels['showimages'] = 'Display images';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
-$labels['plaintoggle'] = 'Звычайны Ñ‚ÑкÑÑ‚';
-$labels['savesentmessagein'] = 'Захаваць паведамленне ў';
-$labels['dontsave'] = 'не захоўваць';
-$labels['maxuploadsize'] = 'МакÑімальна дазволены памер файла — $size';
-$labels['addcc'] = 'КопіÑ';
-$labels['addbcc'] = 'Ð¡Ñ…Ð°Ð²Ð°Ð½Ð°Ñ ÐºÐ¾Ð¿Ñ–Ñ';
-$labels['addreplyto'] = 'Ðдказаць-на';
-$labels['addfollowupto'] = 'Групавы-адказ-на';
-$labels['mdnrequest'] = 'Ðдпраўнік пажадаў даведацца аб прачытанні гÑтага паведамленнÑ. ÐпавÑÑціць адпраўніка?';
-$labels['receiptread'] = 'Пацверджанне Ð°Ñ‚Ñ€Ñ‹Ð¼Ð°Ð½Ð½Ñ (прачытаннÑ)';
-$labels['yourmessage'] = 'ГÑта пацверджанне аб атрыманні вашага паведамленнÑ';
-$labels['receiptnote'] = 'Заўвага: ГÑтае пацверджанне значыць адно, што паведамленне было адлюÑтравана на Ñкране кампутара адраÑата. ÐÑма гарантыі, што атрымальнік прачытаў альбо зразумеў змеÑÑ‚ паведамленнÑ.';
-$labels['name'] = 'Ð­ÐºÑ€Ð°Ð½Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð°';
-$labels['firstname'] = 'ІмÑ';
-$labels['surname'] = 'Прозвішча';
-$labels['middlename'] = 'Другое імÑ';
-$labels['nameprefix'] = 'ПрÑфікÑ';
-$labels['namesuffix'] = 'СуфікÑ';
-$labels['nickname'] = 'ÐœÑнушка';
-$labels['jobtitle'] = 'ПаÑада';
-$labels['department'] = 'Ðддзел';
-$labels['gender'] = 'Пол';
-$labels['maidenname'] = 'ДзÑвоцкае прозвішча';
-$labels['email'] = 'Эл. пошта';
-$labels['phone'] = 'ТÑлефон';
-$labels['address'] = 'ÐдраÑ';
-$labels['street'] = 'Вуліца';
-$labels['locality'] = 'Горад';
-$labels['zipcode'] = 'ІндÑкÑ';
-$labels['region'] = 'РÑгіён';
-$labels['country'] = 'Краіна';
-$labels['birthday'] = 'Дзень народзінаў';
-$labels['anniversary'] = 'Юбілей';
-$labels['website'] = 'Ð’Ñб-Ñайт';
+$labels['plaintoggle'] = 'Plain text';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
+$labels['name'] = 'Display Name';
+$labels['firstname'] = 'First Name';
+$labels['surname'] = 'Last Name';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
+$labels['email'] = 'Email';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
$labels['instantmessenger'] = 'IM';
-$labels['notes'] = 'Зацемкі';
-$labels['male'] = 'мужчына';
-$labels['female'] = 'жанчына';
-$labels['manager'] = 'Кіраўнік';
-$labels['assistant'] = 'ÐÑÑ–ÑÑ‚Ñнт';
-$labels['spouse'] = 'Жонка';
-$labels['allfields'] = 'УÑе палі';
-$labels['search'] = 'Пошук';
-$labels['advsearch'] = 'Пашыраны пошук';
-$labels['advanced'] = 'Дадаткова';
-$labels['other'] = 'Іншае';
-$labels['typehome'] = 'Дом';
-$labels['typework'] = 'Праца';
-$labels['typeother'] = 'Іншае';
-$labels['typemobile'] = 'Мабільны';
-$labels['typemain'] = 'ÐÑноўны';
-$labels['typehomefax'] = 'Дамашні факÑ';
-$labels['typeworkfax'] = 'Працоўны факÑ';
-$labels['typecar'] = 'Ðўта';
-$labels['typepager'] = 'ПÑйджар';
-$labels['typevideo'] = 'ВідÑа';
-$labels['typeassistant'] = 'ÐÑÑ–ÑÑ‚Ñнт';
-$labels['typehomepage'] = 'ДамашнÑÑ Ñтаронка';
-$labels['typeblog'] = 'Блог';
-$labels['typeprofile'] = 'Профіль';
-$labels['addfield'] = 'Дадаць поле...';
-$labels['addcontact'] = 'Дадаць новы кантакт';
-$labels['editcontact'] = 'РÑдагаваць кантакт';
-$labels['contacts'] = 'Кантакты';
-$labels['contactproperties'] = 'УлаÑціваÑці кантакта';
-$labels['personalinfo'] = 'ÐÑабіÑÑ‚Ñ‹Ñ Ð·Ð²ÐµÑткі';
-$labels['edit'] = 'РÑдагаваць';
-$labels['cancel'] = 'СкаÑаваць';
-$labels['save'] = 'Захаваць';
-$labels['delete'] = 'Выдаліць';
-$labels['rename'] = 'Пераназваць';
-$labels['addphoto'] = 'Дадаць';
-$labels['replacephoto'] = 'ЗамÑніць';
-$labels['uploadphoto'] = 'Ðпублікаваць фота';
-$labels['newcontact'] = 'Стварыць новую картку кантакта';
-$labels['deletecontact'] = 'Выдаліць абраных кантактаў';
-$labels['composeto'] = 'СклаÑці ліÑÑ‚ да';
-$labels['contactsfromto'] = 'Кантакты $from—$to з $count';
-$labels['print'] = 'Друкаваць';
-$labels['export'] = 'ЭкÑпарт';
-$labels['exportall'] = 'ЭкÑпартаваць уÑÑ‘';
-$labels['exportsel'] = 'ЭкÑпартаваць абранае';
-$labels['exportvcards'] = 'ЭкÑпартаваць кантакты Ñž фармаце vCard';
-$labels['newcontactgroup'] = 'Стварыць новую групу кантактаў';
-$labels['grouprename'] = 'Пераназваць групу';
-$labels['groupdelete'] = 'Выдаліць групу';
-$labels['groupremoveselected'] = 'Выдаліць абраных кантакаў з групы';
-$labels['previouspage'] = 'ПапÑÑ€ÑднÑÑ Ñтаронка';
-$labels['firstpage'] = 'ÐŸÐµÑ€ÑˆÐ°Ñ Ñтаронка';
-$labels['nextpage'] = 'ÐаÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñтаронка';
-$labels['lastpage'] = 'ÐпошнÑÑ Ñтаронка';
-$labels['group'] = 'Група';
-$labels['groups'] = 'Групы';
-$labels['listgroup'] = 'Паказаць ÑÑброў групы';
-$labels['personaladrbook'] = 'ÐÑабіÑÑ‚Ñ‹Ñ Ð°Ð´Ñ€Ð°ÑÑ‹';
-$labels['searchsave'] = 'Захаваць запытанне';
-$labels['searchdelete'] = 'Выдаліць запытанне';
-$labels['import'] = 'Імпарт';
-$labels['importcontacts'] = 'Імпартаваць кантакты';
-$labels['importfromfile'] = 'Імпартаваць з файла:';
-$labels['importtarget'] = 'Дадаць канактаў у';
-$labels['importreplace'] = 'ЗамÑніць адраÑную кнігу цалкам';
-$labels['importgroups'] = 'Імпартаваць прызначÑнні групы';
-$labels['importgroupsall'] = 'УÑе (Ñтварыць групы пры неабходнаÑці)';
-$labels['importgroupsexisting'] = 'Толькі Ð´Ð»Ñ Ñ–Ñнуючых груп';
-$labels['importdesc'] = 'Кантакты можна загрузіць з Ñ–Ñнуючай адраÑнай кнігі.<br/>Ðа дадзены момант падтрымліваюцца адраÑÑ‹ Ñž фарматах <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> Ñ– CSV (значÑнні праз коÑку).';
-$labels['done'] = 'Гатова';
-$labels['settingsfor'] = 'ÐаÑтаўленні длÑ';
-$labels['about'] = 'ÐпіÑанне';
-$labels['preferences'] = 'Параметры';
-$labels['userpreferences'] = 'Параметры карыÑтальніка';
-$labels['editpreferences'] = 'РÑдагаваць параметры карыÑтальніка';
-$labels['identities'] = 'ТоеÑнаÑці';
-$labels['manageidentities'] = 'Парадкаваць тоеÑнаÑці Ð´Ð»Ñ Ð³Ñтага ўліковага запіÑу';
-$labels['newidentity'] = 'ÐÐ¾Ð²Ð°Ñ Ñ‚Ð¾ÐµÑнаÑць';
-$labels['newitem'] = 'Ðовы Ñлемент';
-$labels['edititem'] = 'РÑдагаваць Ñлемент';
-$labels['preferhtml'] = 'Паказаць HTML';
-$labels['defaultcharset'] = 'Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ ÐºÐ°Ð´Ð·Ñ–Ñ€Ð¾ÑžÐºÐ°';
-$labels['htmlmessage'] = 'Паведамленне ў HTML';
-$labels['messagepart'] = 'ЧаÑць';
-$labels['digitalsig'] = 'Электронны подпіÑ';
-$labels['dateformat'] = 'Фармат даты';
-$labels['timeformat'] = 'Фармат чаÑу';
-$labels['prettydate'] = 'Даты ў зручным фармаце';
-$labels['setdefault'] = 'Зрабіць Ñтандартам';
-$labels['autodetect'] = 'Ðўтаматычна';
-$labels['language'] = 'Мова';
-$labels['timezone'] = 'ЧаÑÐ°Ð²Ð°Ñ Ð·Ð¾Ð½Ð°';
-$labels['pagesize'] = 'Радкоў на Ñтаронку';
-$labels['signature'] = 'ПодпіÑ';
-$labels['dstactive'] = 'Летні/зімовы чаÑ';
-$labels['showinextwin'] = 'Ðдкрываць паведамленні Ñž новым акне';
-$labels['composeextwin'] = 'Складаць у новым акне';
-$labels['htmleditor'] = 'Складаць паведамленні ў HTML';
-$labels['htmlonreply'] = 'у адказ на паведамленні ў HTML';
-$labels['htmlonreplyandforward'] = 'пры пераÑылцы альбо Ñž адказ на паведамленні Ñž HTML';
-$labels['htmlsignature'] = 'ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ñƒ HTML';
-$labels['showemail'] = 'Паказваць Ð°Ð´Ñ€Ð°Ñ Ñлектроннай пошты разам з Ñкраннай назвай';
-$labels['previewpane'] = 'ПанÑль праглÑду';
-$labels['skin'] = 'ТÑма інтÑрфейÑу';
-$labels['logoutclear'] = 'Ðчышчаць Сметніцу па выхадзе';
-$labels['logoutcompact'] = 'СціÑкаць ÐÑ‚Ñ€Ñ‹Ð¼Ð°Ð½Ñ‹Ñ Ð¿Ð° выхадзе';
-$labels['uisettings'] = 'ІнтÑÑ€Ñ„ÐµÐ¹Ñ ÐºÐ°Ñ€Ñ‹Ñтальніка';
-$labels['serversettings'] = 'ÐаÑтаўленні Ñервера';
-$labels['mailboxview'] = 'ВыглÑд Ñкрынкі';
-$labels['mdnrequests'] = 'Пры запытанні пацверджаннÑÑž аб атрыманні';
-$labels['askuser'] = 'Ñпытаць мÑне';
-$labels['autosend'] = 'адправіць пацверджанне';
-$labels['autosendknown'] = 'адпраўлÑць пацверджанне маім кантактам, іначай Ñпытаць';
-$labels['autosendknownignore'] = 'адпраўлÑць пацверджанне маім кантактам, іначай ігнараваць';
-$labels['ignore'] = 'ігнараваць';
-$labels['readwhendeleted'] = 'Пазначаць паведамленне Ñк прачытанае па выдаленні';
-$labels['flagfordeletion'] = 'Толькі пазначаць паведамленне на выдаленне, не выдалÑць';
-$labels['skipdeleted'] = 'Ðе паказваць Ð²Ñ‹Ð´Ð°Ð»ÐµÐ½Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ–';
-$labels['deletealways'] = 'Як не ўдалоÑÑ Ð¿ÐµÑ€Ð°Ð¼ÑÑціць паведамленні Ñž Сметніцу, выдаліць Ñ–Ñ…';
-$labels['deletejunk'] = 'Ðдразу выдалÑць паведамленні Ñž Спаме';
-$labels['showremoteimages'] = 'Паказваць Ð²Ð¾Ð½ÐºÐ°Ð²Ñ‹Ñ Ð²Ñ–Ð´Ð°Ñ€Ñ‹ÑÑ‹';
-$labels['fromknownsenders'] = 'ад вÑдомых адпраўнікоў';
-$labels['always'] = 'заўÑёды';
-$labels['showinlineimages'] = 'Паказваць Ð´Ð°Ð»ÑƒÑ‡Ð°Ð½Ñ‹Ñ Ð²Ñ–Ð´Ð°Ñ€Ñ‹ÑÑ‹ пад паведамленнем';
-$labels['autosavedraft'] = 'Ðўтаматычна захоўваць чарнавікі';
-$labels['everynminutes'] = 'ÐºÐ¾Ð¶Ð½Ñ‹Ñ $n мінут(аў)';
-$labels['refreshinterval'] = 'Ðбнаўленне (праверка новых паведамленнÑÑž Ñ– г. д.)';
-$labels['never'] = 'ніколі';
-$labels['immediately'] = 'імгненна';
-$labels['messagesdisplaying'] = 'ÐдлюÑтраванне паведамленнÑÑž';
-$labels['messagescomposition'] = 'Складанне паведамленнÑÑž';
-$labels['mimeparamfolding'] = 'Ðазвы далучÑннÑÑž';
-$labels['2231folding'] = 'Поўны RFC 2231 (Thunderbird)';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
+$labels['addcontact'] = 'Add new contact';
+$labels['editcontact'] = 'Edit contact';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
+$labels['edit'] = 'Edit';
+$labels['cancel'] = 'Cancel';
+$labels['save'] = 'Save';
+$labels['delete'] = 'Delete';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
+$labels['newcontact'] = 'Create new contact card';
+$labels['deletecontact'] = 'Delete selected contacts';
+$labels['composeto'] = 'Compose mail to';
+$labels['contactsfromto'] = 'Contacts $from to $to of $count';
+$labels['print'] = 'Print';
+$labels['export'] = 'Export';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
+$labels['previouspage'] = 'Show previous page';
+$labels['firstpage'] = 'Show first page';
+$labels['nextpage'] = 'Show next page';
+$labels['lastpage'] = 'Show last page';
+
+$labels['group'] = 'Group';
+$labels['groups'] = 'Groups';
+$labels['personaladrbook'] = 'Personal Addresses';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
+$labels['settingsfor'] = 'Settings for';
+$labels['about'] = 'About';
+$labels['preferences'] = 'Preferences';
+$labels['userpreferences'] = 'User preferences';
+$labels['editpreferences'] = 'Edit user preferences';
+
+$labels['identities'] = 'Identities';
+$labels['manageidentities'] = 'Manage identities for this account';
+$labels['newidentity'] = 'New identity';
+
+$labels['newitem'] = 'New item';
+$labels['edititem'] = 'Edit item';
+
+$labels['preferhtml'] = 'Display HTML';
+$labels['defaultcharset'] = 'Default Character Set';
+$labels['htmlmessage'] = 'HTML Message';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
+$labels['prettydate'] = 'Pretty dates';
+$labels['setdefault'] = 'Set default';
+$labels['autodetect'] = 'Auto';
+$labels['language'] = 'Language';
+$labels['timezone'] = 'Time zone';
+$labels['pagesize'] = 'Rows per page';
+$labels['signature'] = 'Signature';
+$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'Compose HTML messages';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
+$labels['htmlsignature'] = 'HTML signature';
+$labels['showemail'] = 'Show email address with display name';
+$labels['previewpane'] = 'Show preview pane';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
+$labels['autosavedraft'] = 'Automatically save draft';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
+$labels['never'] = 'never';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
-$labels['2047folding'] = 'Поўны RFC 2047 (інш.)';
-$labels['force7bit'] = 'Ужываць MIME-кадзіроўку Ð´Ð»Ñ 8-бітных знакаў';
-$labels['advancedoptions'] = 'Ð”Ð°Ð´Ð°Ñ‚ÐºÐ¾Ð²Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹';
-$labels['focusonnewmessage'] = 'Ðктываваць акно браўзера пры новым паведамленні';
-$labels['checkallfolders'] = 'ПравÑраць уÑе папкі на Ð½Ð¾Ð²Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ–';
-$labels['displaynext'] = 'Па выдаленні/перамÑшчÑнні Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÐ°Ð·Ð²Ð°Ñ†ÑŒ наÑтупнае паведамленне';
-$labels['defaultfont'] = 'Стандартны шрыфт Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ Ñž HTML';
-$labels['mainoptions'] = 'ÐÑÐ½Ð¾ÑžÐ½Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹';
-$labels['browseroptions'] = 'Параметры браўзера';
-$labels['section'] = 'СекцыÑ';
-$labels['maintenance'] = 'ÐбÑлугоўванне';
-$labels['newmessage'] = 'Ðовае паведамленне';
-$labels['signatureoptions'] = 'Параметры подпіÑу';
-$labels['whenreplying'] = 'Ðдказваючы';
-$labels['replyempty'] = 'не цытаваць зыходнае паведамленне';
-$labels['replytopposting'] = 'пачынаць новае паведамленне над цытаваным';
-$labels['replybottomposting'] = 'пачынаць новае паведамленне пад цытаваным';
-$labels['replyremovesignature'] = 'Ðдказваючы, выдаліць Ñтары Ð¿Ð¾Ð´Ð¿Ñ–Ñ Ð· паведамленнÑ';
-$labels['autoaddsignature'] = 'Ðўтаматычна дадаваць подпіÑ';
-$labels['newmessageonly'] = 'толькі Ñž новых паведамленнÑÑ…';
-$labels['replyandforwardonly'] = 'толькі Ñž адказах Ñ– пераÑылках';
-$labels['insertsignature'] = 'УÑтавіць подпіÑ';
-$labels['previewpanemarkread'] = 'Пазначаць Ð¿Ñ€Ð°Ð³Ð»ÐµÐ´Ð¶Ð°Ð½Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ– Ñк прачытаныÑ';
-$labels['afternseconds'] = 'паÑÐ»Ñ $n Ñекунд';
-$labels['reqmdn'] = 'ЗаўÑёды запытваць пацверджанне аб атрыманні';
-$labels['reqdsn'] = 'ЗаўÑёды запытваць апавÑшчÑнне аб даÑтаўцы';
-$labels['replysamefolder'] = 'Складваць адказы Ñž папку зыходнага паведамленнÑ';
-$labels['defaultabook'] = 'Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð°Ð´Ñ€Ð°ÑÐ½Ð°Ñ ÐºÐ½Ñ–Ð³Ð°';
-$labels['autocompletesingle'] = 'ПрапуÑкаць альтÑÑ€Ð½Ð°Ñ‚Ñ‹ÑžÐ½Ñ‹Ñ Ð°Ð´Ñ€Ð°ÑÑ‹ пры аўдадапаўненні';
-$labels['listnamedisplay'] = 'Выводзіць ÑÐ¿Ñ–Ñ ÐºÐ°Ð½Ñ‚Ð°ÐºÑ‚Ð°Ñž Ñк';
-$labels['spellcheckbeforesend'] = 'ПравÑраць Ð¿Ñ€Ð°Ð²Ð°Ð¿Ñ–Ñ Ð¿ÐµÑ€Ð°Ð´ адпраўкай';
-$labels['spellcheckoptions'] = 'Параметры праверкі правапіÑу';
-$labels['spellcheckignoresyms'] = 'Ігнараваць Ñловы з Ñімваламі';
-$labels['spellcheckignorenums'] = 'Ігнараваць Ñловы з лікамі';
-$labels['spellcheckignorecaps'] = 'Ігнараваць Ñловы з уÑімі літарамі Ñž верхнім Ñ€ÑгіÑтры';
-$labels['addtodict'] = 'Дадаць у Ñлоўнік';
-$labels['mailtoprotohandler'] = 'ЗарÑгіÑтраваць апрацоўніка Ð´Ð»Ñ ÑпаÑылак mailto:';
-$labels['standardwindows'] = 'УÑпрымаць вокны-бурбалкі Ñк Ð·Ð²Ñ‹Ñ‡Ð°Ð¹Ð½Ñ‹Ñ Ð²Ð¾ÐºÐ½Ñ‹';
-$labels['forwardmode'] = 'ПераÑылка паведамленнÑÑž';
-$labels['inline'] = 'у Ñ‚ÑкÑце';
-$labels['asattachment'] = 'Ñк далучÑнне';
-$labels['folder'] = 'Папка';
-$labels['folders'] = 'Папкі';
-$labels['foldername'] = 'Ðазва папкі';
-$labels['subscribed'] = 'ПадпіÑанаÑ';
-$labels['messagecount'] = 'Паведамленні';
-$labels['create'] = 'Стварыць';
-$labels['createfolder'] = 'Стварыць новую папку';
-$labels['managefolders'] = 'Парадкаваць папкі';
-$labels['specialfolders'] = 'ÐдмыÑÐ»Ð¾Ð²Ñ‹Ñ Ð¿Ð°Ð¿ÐºÑ–';
-$labels['properties'] = 'УлаÑціваÑці';
-$labels['folderproperties'] = 'УлаÑціваÑці папкі';
-$labels['parentfolder'] = 'БацькоўÑÐºÐ°Ñ Ð¿Ð°Ð¿ÐºÐ°';
-$labels['location'] = 'РазмÑшчÑнне';
-$labels['info'] = 'ЗвеÑткі';
-$labels['getfoldersize'] = 'ПÑтрыкніце, каб даведацца памер папкі';
-$labels['changesubscription'] = 'ПÑтрыкніце, каб змÑніць падпіÑку';
-$labels['foldertype'] = 'Тып папкі';
-$labels['personalfolder'] = 'ÐÑабіÑÑ‚Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°';
-$labels['otherfolder'] = 'Папка іншага карыÑтальніка';
-$labels['sharedfolder'] = 'ÐŸÑƒÐ±Ð»Ñ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°';
-$labels['sortby'] = 'Сартаваць паводле';
-$labels['sortasc'] = 'Сартаваць на ўзраÑтанне';
-$labels['sortdesc'] = 'Сартаваць на змÑншчÑнне';
-$labels['undo'] = 'ÐдмÑніць';
-$labels['installedplugins'] = 'УÑÑ‚Ð°Ð½Ð¾ÑžÐ»ÐµÐ½Ñ‹Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñ‹';
-$labels['plugin'] = 'Плагін';
-$labels['version'] = 'ВерÑÑ–Ñ';
-$labels['source'] = 'Крыніца';
-$labels['license'] = 'ЛіцÑнзіÑ';
-$labels['support'] = 'Падтрымка';
-$labels['B'] = 'Б';
-$labels['KB'] = 'КБ';
-$labels['MB'] = 'МБ';
-$labels['GB'] = 'ГБ';
-$labels['unicode'] = 'Юнікод';
-$labels['english'] = 'англійÑкаÑ';
-$labels['westerneuropean'] = 'заходне-еўрапейÑкаÑ';
-$labels['easterneuropean'] = 'уÑходне-еўрапейÑкаÑ';
-$labels['southeasterneuropean'] = 'паўднёва-еўрапейÑкаÑ';
-$labels['baltic'] = 'балтыйÑкаÑ';
-$labels['cyrillic'] = 'кірыліца';
-$labels['arabic'] = 'арабÑкаÑ';
-$labels['greek'] = 'грÑцкаÑ';
-$labels['hebrew'] = 'габрÑйÑкаÑ';
-$labels['turkish'] = 'турÑцкаÑ';
-$labels['nordic'] = 'паўночнаÑ';
-$labels['thai'] = 'тайÑкаÑ';
-$labels['celtic'] = 'кельцкаÑ';
-$labels['vietnamese'] = 'в\'етнамÑкаÑ';
-$labels['japanese'] = 'ÑпонÑкаÑ';
-$labels['korean'] = 'карÑйÑкаÑ';
-$labels['chinese'] = 'кітайÑкаÑ';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
+$labels['folder'] = 'Folder';
+$labels['folders'] = 'ТÑчкі';
+$labels['foldername'] = 'Folder name';
+$labels['subscribed'] = 'Subscribed';
+$labels['messagecount'] = 'Messages';
+$labels['create'] = 'Create';
+$labels['createfolder'] = 'Create new folder';
+$labels['managefolders'] = 'Manage folders';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
+$labels['sortby'] = 'Sort by';
+$labels['sortasc'] = 'Sort ascending';
+$labels['sortdesc'] = 'Sort descending';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/be_BE/messages.inc b/program/localization/be_BE/messages.inc
index 5833fd8a4..73cdb3ed8 100644
--- a/program/localization/be_BE/messages.inc
+++ b/program/localization/be_BE/messages.inc
@@ -15,161 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'ЗдарылаÑÑ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°!';
-$messages['loginfailed'] = 'Ðе ўдалоÑÑ ÑžÐ²Ð°Ð¹Ñці.';
-$messages['cookiesdisabled'] = 'Ваш браўзер не падтрымлівае кукіÑ.';
-$messages['sessionerror'] = 'Ваша ÑеÑÑ–Ñ Ð½ÐµÐ²Ð°Ð»Ñ–Ð´Ð½Ð°Ñ Ð°Ð»ÑŒÐ±Ð¾ ÑаÑтарÑла.';
-$messages['storageerror'] = 'Ðе ўдалоÑÑ Ð·Ð»ÑƒÑ‡Ñ‹Ñ†Ñ†Ð° з Ñерверам-Ñховішчам.';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'Збой уваходу.';
+$messages['cookiesdisabled'] = 'Ваш азіральнік не падтрымлівае кукіÑ.';
+$messages['sessionerror'] = 'Ваша ÑеÑÑ–Ñ Ð½Ðµ дзейÑÐ½Ð°Ñ Ñ†Ñ– ÑаÑтарÑла.';
+$messages['storageerror'] = 'Connection to storage server failed.';
$messages['servererror'] = 'Памылка Ñервера!';
$messages['servererrormsg'] = 'Памылка Ñервера: $msg';
$messages['dberror'] = 'Памылка базы даных!';
-$messages['requesttimedout'] = 'Ð§Ð°Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñу выйшаў';
-$messages['errorreadonly'] = 'Ðе ўдалоÑÑ Ð²Ñ‹ÐºÐ°Ð½Ð°Ñ†ÑŒ аперацыю. Папка даÑтупна толькі Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ.';
-$messages['errornoperm'] = 'Ðе ўдалоÑÑ Ð²Ñ‹ÐºÐ°Ð½Ð°Ñ†ÑŒ аперацыю. Ðдмоўлена Ñž доÑтупе.';
-$messages['erroroverquota'] = 'Ðе ўдалоÑÑ Ð²Ñ‹ÐºÐ°Ð½Ð°Ñ†ÑŒ аперацыю. ÐÑма Ñвабоднай праÑторы на дыÑку.';
-$messages['erroroverquotadelete'] = 'ÐÑма Ñвабоднай праÑторы на дыÑку. ÐаціÑніце SHIFT+DEL, каб выдаліць паведамленне.';
-$messages['invalidrequest'] = 'Ðевалідны запроÑ! Ð”Ð°Ð´Ð·ÐµÐ½Ñ‹Ñ Ð½Ðµ захаваныÑ.';
-$messages['invalidhost'] = 'ÐÑÑлушнае Ñ–Ð¼Ñ Ñервера.';
-$messages['nomessagesfound'] = 'ПаведамленнÑÑž у гÑтай Ñкрынцы не знойдзена';
-$messages['loggedout'] = 'СеÑÑ–Ñ ÑкаÑавана. Да пабачÑннÑ!';
-$messages['mailboxempty'] = 'У Ñкрынцы пуÑта.';
-$messages['refreshing'] = 'ÐбнаўлÑецца...';
-$messages['loading'] = 'Загружаецца...';
-$messages['uploading'] = 'Файл зацÑгваецца...';
-$messages['uploadingmany'] = 'Файлы зацÑгваюцца...';
-$messages['loadingdata'] = 'Загружаюцца даныÑ...';
-$messages['checkingmail'] = 'Праверка новых паведамленнÑÑž...';
-$messages['sendingmessage'] = 'Паведамленне адпраўлÑецца...';
-$messages['messagesent'] = 'Паведамленні адпраўлены.';
-$messages['savingmessage'] = 'Паведамленне захоўваецца...';
-$messages['messagesaved'] = 'Паведамленне захавана ў Чарнавікі.';
-$messages['successfullysaved'] = 'Захавана.';
-$messages['savingresponse'] = 'ТÑкÑÑ‚ адказу захоўваецца...';
-$messages['deleteresponseconfirm'] = 'Ðапраўду выдаліць Ñ‚ÑкÑÑ‚ адказу?';
-$messages['addedsuccessfully'] = 'Кантакт дададзены Ñž адраÑную кнігу.';
-$messages['contactexists'] = 'Кантакт з такім Ñамым адраÑам Ñл. пошты ўжо Ñ–Ñнуе.';
-$messages['contactnameexists'] = 'Кантакт з такім Ñамым імем ужо Ñ–Ñнуе.';
-$messages['blockedimages'] = 'Ð”Ð·ÐµÐ»Ñ Ð·Ð°Ð±ÐµÑпÑчÑÐ½Ð½Ñ Ð²Ð°ÑˆÐ°Ð¹ прыватнаÑці Ð·Ð½ÐµÑˆÐ½Ñ–Ñ Ð²Ñ–Ð´Ð°Ñ€Ñ‹ÑÑ‹ Ñž гÑтым паведамленні заблакіраваныÑ.';
-$messages['encryptedmessage'] = 'ГÑта зашыфраванае паведамленне. Яно не можа быць адлюÑтравана. Выбачайце!';
-$messages['nocontactsfound'] = 'Кантактаў не знойдзена.';
-$messages['contactnotfound'] = 'Запытаны кантакт не знойдзены.';
-$messages['contactsearchonly'] = 'Задайце выраз Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÐ° кантактаў';
-$messages['sendingfailed'] = 'Ðе ўдалоÑÑ Ð°Ð´Ð¿Ñ€Ð°Ð²Ñ–Ñ†ÑŒ паведамленне.';
-$messages['senttooquickly'] = 'Пачакайце $sec Ñекунд(Ñ‹) перад адпраўкай гÑтага паведамленнÑ.';
-$messages['errorsavingsent'] = 'Ðе ўдалоÑÑ Ð·Ð°Ñ…Ð°Ð²Ð°Ñ†ÑŒ адпраўленае паведамленне.';
-$messages['errorsaving'] = 'Ðе ўдалоÑÑ Ð·Ð°Ñ…Ð°Ð²Ð°Ñ†ÑŒ.';
-$messages['errormoving'] = 'Ðе ўдалоÑÑ Ð¿ÐµÑ€Ð°Ð¼ÑÑціць паведамленнÑ(Ñž).';
-$messages['errorcopying'] = 'Ðе ўдалоÑÑ ÑкапіÑваць паведамленнÑ(Ñž).';
-$messages['errordeleting'] = 'Ðе ўдалоÑÑ Ð²Ñ‹Ð´Ð°Ð»Ñ–Ñ†ÑŒ паведамленнÑ(Ñž).';
-$messages['errormarking'] = 'Ðе ўдалоÑÑ Ð¿Ð°Ð·Ð½Ð°Ñ‡Ñ‹Ñ†ÑŒ паведамленнÑ(Ñž).';
-$messages['deletecontactconfirm'] = 'Ðапраўду выдаліць абраны(Ñ) кантакты?';
-$messages['deletegroupconfirm'] = 'Ðапраўду выдаліць абраную групу?';
-$messages['deletemessagesconfirm'] = 'Ðапраўду выдаліць абранае(Ñ‹Ñ) паведамленне?';
-$messages['deletefolderconfirm'] = 'Ðапраўду выдаліць гÑтую папку?';
-$messages['purgefolderconfirm'] = 'Ðапраўду выдаліць уÑе паведамленні з гÑтай папкі?';
-$messages['contactdeleting'] = 'Кантакт(Ñ‹) выдалÑюцца...';
-$messages['groupdeleting'] = 'Група выдалÑецца...';
-$messages['folderdeleting'] = 'Папка выдалÑецца...';
-$messages['foldermoving'] = 'Папка перамÑшчаецца...';
-$messages['foldersubscribing'] = 'Папка падпіÑваецца...';
-$messages['folderunsubscribing'] = 'Папка адпіÑваецца...';
-$messages['formincomplete'] = 'ФармулÑÑ€ запоўнены не да канца.';
-$messages['noemailwarning'] = 'Задайце Ñлушны Ð°Ð´Ñ€Ð°Ñ Ñлектроннай пошты.';
-$messages['nonamewarning'] = 'Задайце імÑ.';
-$messages['nopagesizewarning'] = 'Задайце памер Ñтаронкі.';
-$messages['nosenderwarning'] = 'Задайце Ð°Ð´Ñ€Ð°Ñ Ñл. пошты адпраўніка.';
-$messages['norecipientwarning'] = 'Задайце хацÑ-б аднаго атрымальніка.';
-$messages['nosubjectwarning'] = 'ТÑма ліÑта не зададзена. Ці жадаеце задаць Ñе зараз?';
-$messages['nobodywarning'] = 'Ðдправіць гÑта паведамленне без Ñ‚ÑкÑту?';
-$messages['notsentwarning'] = 'Паведамленне не адпраўлена. Жадаеце ÑкаÑаваць Ñваё паведамленне?';
-$messages['noldapserver'] = 'Задайце ldap-Ñервер Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ.';
-$messages['nosearchname'] = 'Задайце Ñ–Ð¼Ñ ÐºÐ°Ð½Ñ‚Ð°ÐºÑ‚Ð° альбо Ð°Ð´Ñ€Ð°Ñ Ñлектроннай пошты.';
-$messages['notuploadedwarning'] = 'Ðе ÑžÑе далучÑнні пакуль ÑÑˆÑ‡Ñ Ð·Ð°Ñ†ÑгнутыÑ. Пачакайце альбо ÑкаÑуйце аперацыю.';
-$messages['searchsuccessful'] = 'Знойдзена $nr паведамленнÑÑž.';
-$messages['contactsearchsuccessful'] = 'Знойдзена $nr кантактаў.';
-$messages['searchnomatch'] = 'Пошук не даў выніку.';
-$messages['searching'] = 'Ідзе пошук...';
-$messages['checking'] = 'Ідзе праверка...';
-$messages['nospellerrors'] = 'Памылак правапіÑÐ°Ð½Ð½Ñ Ð½Ðµ выÑўлена.';
-$messages['folderdeleted'] = 'Папка выдалена.';
-$messages['foldersubscribed'] = 'Папка падпіÑана.';
-$messages['folderunsubscribed'] = 'Папка адпіÑана.';
-$messages['folderpurged'] = 'Папка ачышчана.';
-$messages['folderexpunged'] = 'Папка ÑціÑнута. ';
-$messages['deletedsuccessfully'] = 'Выдалена.';
-$messages['converting'] = 'Фарматаванне выдалÑецца...';
-$messages['messageopenerror'] = 'Ðе ўдалоÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ–Ñ†ÑŒ паведамленне з Ñервера.';
-$messages['fileuploaderror'] = 'Ðе ўдалоÑÑ Ð·Ð°Ñ†Ñгнуць файл.';
-$messages['filesizeerror'] = 'ЗацÑгнуты файл перавышае макÑімальна дазволены памер $size.';
-$messages['copysuccess'] = '$nr кантактаў ÑкапіÑвана.';
-$messages['movesuccess'] = '$nr кантактаў перамешчана.';
-$messages['copyerror'] = 'Ðе ўдалоÑÑ ÑкапіÑваць ніводнага кантакта.';
-$messages['moveerror'] = 'Ðе ўдалоÑÑ Ð¿ÐµÑ€Ð°Ð¼ÑÑціць ніводнага кантакта.';
-$messages['sourceisreadonly'] = 'ГÑÑ‚Ð°Ñ ÐºÑ€Ñ‹Ð½Ñ–Ñ†Ð° адраÑоў толькі Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ.';
-$messages['errorsavingcontact'] = 'Ðе ўдалоÑÑ Ð·Ð°Ñ…Ð°Ð²Ð°Ñ†ÑŒ Ð°Ð´Ñ€Ð°Ñ ÐºÐ°Ð½Ñ‚Ð°ÐºÑ‚Ð°.';
-$messages['movingmessage'] = 'Паведамленні(е) перамÑшчаюцца...';
-$messages['copyingmessage'] = 'Паведамленні(е) капіююцца...';
-$messages['copyingcontact'] = 'Кантакт(ы) капіююцца...';
-$messages['movingcontact'] = 'Кантакт(Ñ‹) перамÑшчаюцца...';
-$messages['deletingmessage'] = 'Паведамленні(е) выдалÑюцца...';
-$messages['markingmessage'] = 'Паведамленні(е) пазначаюцца...';
-$messages['addingmember'] = 'Кантакт(ы) дадаюцца ў групу...';
-$messages['removingmember'] = 'Кантакт(Ñ‹) выдалÑюцца з групы...';
-$messages['receiptsent'] = 'Пацверджанне аб прачытанні адпраўлена.';
-$messages['errorsendingreceipt'] = 'Ðе ўдалоÑÑ Ð°Ð´Ð¿Ñ€Ð°Ð²Ñ–Ñ†ÑŒ пацверджаннÑ.';
-$messages['deleteidentityconfirm'] = 'Ðапраўду выдаліць гÑтую тоеÑнаÑць?';
-$messages['nodeletelastidentity'] = 'ГÑтую тоеÑнаÑць выдаліць нÑможна, бо апошнÑÑ.';
-$messages['forbiddencharacter'] = 'Ðазва папкі змÑшчае забаронены знак.';
-$messages['selectimportfile'] = 'ÐбÑрыце файл да зацÑгваннÑ.';
-$messages['addresswriterror'] = 'ÐÐ±Ñ€Ð°Ð½Ð°Ñ Ð°Ð´Ñ€Ð°ÑÐ½Ð°Ñ ÐºÐ½Ñ–Ð³Ð° Ñ‘Ñць толькі-длÑ-чытаннÑ.';
-$messages['contactaddedtogroup'] = 'Кантакты дададзены ў групу.';
-$messages['contactremovedfromgroup'] = 'Кантакты Ð²Ñ‹Ð´Ð°Ð»ÐµÐ½Ñ‹Ñ Ð· групы.';
-$messages['nogroupassignmentschanged'] = 'УÑе прызначÑнні групы заÑталіÑÑ Ð±ÐµÐ· зменаў.';
-$messages['importwait'] = 'Ідзе імпартаванне. Чакайце...';
-$messages['importformaterror'] = 'Імпартаванне не ўдалоÑÑ! Загружаны файл не ўтрымоўвае Ñлушных даных на імпарт.';
-$messages['importconfirm'] = '<b>$inserted кантактаў імпартаваныÑ</b>';
-$messages['importconfirmskipped'] = '<b>Прапушчана $skipped Ñ–Ñнуючых запіÑаў</b>';
-$messages['importmessagesuccess'] = '$nr паведамленнÑÑž імпартавана';
-$messages['importmessageerror'] = 'Ðе ўдалоÑÑ Ñ–Ð¼Ð¿Ð°Ñ€Ñ‚Ð°Ð²Ð°Ñ†ÑŒ! Загружаны файл не Ñ‘Ñць Ñлушным паведамленнем альбо файлам паштовай Ñкрынкі';
-$messages['opnotpermitted'] = 'ÐÐ¿ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð½Ðµ дазволенаÑ!';
-$messages['nofromaddress'] = 'У абранай тоеÑнаÑці не Ñтае адраÑу Ñл. пошты.';
-$messages['editorwarning'] = 'Змена Ñ€Ñдактара прывÑдзе да Ñтраты фарматаваннÑ. ПрацÑгнуць?';
-$messages['httpreceivedencrypterror'] = 'Ð’Ð°Ð¶Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž канфігурацыі. Ðеадкладна ÑкантактуйцеÑÑ Ð· адмініÑтратарам. <b>Паведамленне не можа быць адпраўлена.</b>';
-$messages['smtpconnerror'] = 'Памылка SMTP ($code): Ðе ўдалоÑÑ Ð·Ð»ÑƒÑ‡Ñ‹Ñ†Ñ†Ð° з Ñерверам.';
-$messages['smtpautherror'] = 'Памылка SMTP ($code): ÐўтÑÑ‚Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ Ð½Ðµ ўдалаÑÑ.';
-$messages['smtpfromerror'] = 'Памылка SMTP ($code): Ðе ўдалоÑÑ Ð·Ð°Ð´Ð°Ñ†ÑŒ адпраўніка "$from" ($msg).';
-$messages['smtptoerror'] = 'Памылка STMP ($code): Ðе ўдалоÑÑ Ð·Ð°Ð´Ð°Ñ†ÑŒ атрымальніка "$to" ($msg).';
-$messages['smtprecipientserror'] = 'Памылка STMP: Ðе ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ ÑÐ¿Ñ–Ñ Ð°Ñ‚Ñ€Ñ‹Ð¼Ð°Ð»ÑŒÐ½Ñ–ÐºÐ°Ñž.';
-$messages['smtperror'] = 'Памылка SMTP: $msg';
-$messages['emailformaterror'] = 'ÐÑÑлушны Ð°Ð´Ñ€Ð°Ñ Ñл. пошты: $email';
-$messages['toomanyrecipients'] = 'Замнога атрымальнікаў. Зменшыце лік атрымальнікаў да $max.';
-$messages['maxgroupmembersreached'] = 'Лік ÑÑброў групы перавышае макÑімум — $max.';
-$messages['internalerror'] = 'Ð£Ð½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°. ПаÑпрабуйце ÑÑˆÑ‡Ñ Ñ€Ð°Ð·.';
-$messages['contactdelerror'] = 'Ðе ўдалоÑÑ Ð²Ñ‹Ð´Ð°Ð»Ñ–Ñ†ÑŒ кантакта(Ñž).';
-$messages['contactdeleted'] = 'Кантакт(ы) выдалены.';
-$messages['contactrestoreerror'] = 'Ðе ўдалоÑÑ Ð°Ð´Ð½Ð°Ð²Ñ–Ñ†ÑŒ Ð²Ñ‹Ð´Ð°Ð»ÐµÐ½Ñ‹Ñ ÐºÐ°Ð½Ñ‚Ð°ÐºÑ‚(Ñ‹).';
-$messages['contactrestored'] = 'Кантакт(ы) адноўлены.';
-$messages['groupdeleted'] = 'Група выдалена.';
-$messages['grouprenamed'] = 'Група перайменавана.';
-$messages['groupcreated'] = 'Група Ñтворана.';
-$messages['savedsearchdeleted'] = 'Захаванае запытанне выдалена.';
-$messages['savedsearchdeleteerror'] = 'Ðе ўдалоÑÑ Ð²Ñ‹Ð´Ð°Ð»Ñ–Ñ†ÑŒ захаванае запытанне.';
-$messages['savedsearchcreated'] = 'Захаванае запытанне Ñтворана.';
-$messages['savedsearchcreateerror'] = 'Ðе ўдалоÑÑ Ñтварыць захаванае запытанне.';
-$messages['messagedeleted'] = 'Паведамленні(е) выдалены.';
-$messages['messagemoved'] = 'Паведамленні(е) перамешчаны.';
-$messages['messagecopied'] = 'Паведамленні(е) ÑкапіÑваны.';
-$messages['messagemarked'] = 'Паведамленні(е) пазначаны.';
-$messages['autocompletechars'] = 'УвÑдзіце мінімум $min знакаў Ð´Ð»Ñ Ð°ÑžÑ‚Ð°Ð´Ð°Ð¿Ð°ÑžÐ½ÐµÐ½Ð½Ñ.';
-$messages['autocompletemore'] = 'Больш адпаведных запіÑаў знойдзена. УвÑдзіце больш знакаў.';
-$messages['namecannotbeempty'] = 'Ðазва не можа быць пуÑтой.';
-$messages['nametoolong'] = 'Ðазва задаўгаÑ.';
-$messages['folderupdated'] = 'Папка абноўлена.';
-$messages['foldercreated'] = 'Папка Ñтворана.';
-$messages['invalidimageformat'] = 'ÐÑÑлушны фармат відарыÑу.';
-$messages['mispellingsfound'] = 'У паведамленні выÑўлены правапіÑÐ½Ñ‹Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÑ–.';
-$messages['parentnotwritable'] = 'Ðе ўдалоÑÑ Ñтварыць/перамÑÑціць папку Ñž абраным меÑцы. ÐÑма доÑтупу.';
-$messages['messagetoobig'] = 'ГÑÑ‚Ð°Ñ Ñ‡Ð°Ñць Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÑлікаÑ, каб Ñе апрацаваць.';
-$messages['attachmentvalidationerror'] = 'УВÐГÐ! ГÑтае далучÑнне Ñ‘Ñць падазроным, бо тып Ñгоны не Ñупадае з заÑўленым тыпам у паведамленні. Калі вы не давÑраеце гÑтаму адпраўніку, не адчынÑйце Ñго Ñž браўзеры, таму што Ñно можа ўтрымліваць шкоднае змеÑціва.<br/><br/><em>Чаканы: $expected; знойдзены: $detected<em>';
-$messages['noscriptwarning'] = 'Увага: Служба вымагае Javascript’у! Каб карыÑтацца ёй, Ñ‚Ñ€Ñба ўключыць Javascript у наÑтаўленнÑÑ… браўзера.';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Ðемагчыма выканаць аперацыю. ТÑчка даÑтупна толькі Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ.';
+$messages['errornoperm'] = 'Ðемагчыма выканаць аперацыю. Ðдмоўлена Ñž доÑтупе.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Ðе дзейÑны запыт! Ð”Ð°Ð½Ñ‹Ñ Ð½Ðµ захаваныÑ.';
+$messages['invalidhost'] = 'Invalid server name.';
+$messages['nomessagesfound'] = 'No messages found in this mailbox.';
+$messages['loggedout'] = 'You have successfully terminated the session. Good bye!';
+$messages['mailboxempty'] = 'Mailbox is empty.';
+$messages['refreshing'] = 'Refreshing...';
+$messages['loading'] = 'Loading...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
+$messages['loadingdata'] = 'Loading data...';
+$messages['checkingmail'] = 'Checking for new messages...';
+$messages['sendingmessage'] = 'Sending message...';
+$messages['messagesent'] = 'Message sent successfully.';
+$messages['savingmessage'] = 'Saving message...';
+$messages['messagesaved'] = 'Message saved to Drafts.';
+$messages['successfullysaved'] = 'Successfully saved.';
+$messages['addedsuccessfully'] = 'Contact added successfully to address book.';
+$messages['contactexists'] = 'A contact with the same e-mail address already exists.';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
+$messages['blockedimages'] = 'To protect your privacy, remote images are blocked in this message.';
+$messages['encryptedmessage'] = 'This is an encrypted message and can not be displayed. Sorry!';
+$messages['nocontactsfound'] = 'No contacts found.';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
+$messages['sendingfailed'] = 'Failed to send message.';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'An error occured while saving.';
+$messages['errormoving'] = 'Could not move the message(s).';
+$messages['errorcopying'] = 'Could not copy the message(s).';
+$messages['errordeleting'] = 'Could not delete the message(s).';
+$messages['errormarking'] = 'Could not mark the message(s).';
+$messages['deletecontactconfirm'] = 'Do you really want to delete selected contact(s)?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
+$messages['deletemessagesconfirm'] = 'Do you really want to delete selected message(s)?';
+$messages['deletefolderconfirm'] = 'Do you really want to delete this folder?';
+$messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
+$messages['formincomplete'] = 'The form was not completely filled out.';
+$messages['noemailwarning'] = 'Please enter a valid email address.';
+$messages['nonamewarning'] = 'Please enter a name.';
+$messages['nopagesizewarning'] = 'Please enter a page size.';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
+$messages['norecipientwarning'] = 'Please enter at least one recipient.';
+$messages['nosubjectwarning'] = 'The "Subject" field is empty. Would you like to enter one now?';
+$messages['nobodywarning'] = 'Send this message without text?';
+$messages['notsentwarning'] = 'Message has not been sent. Do you want to discard your message?';
+$messages['noldapserver'] = 'Please select an ldap server to search.';
+$messages['nosearchname'] = 'Please enter a contact name or email address.';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
+$messages['searchsuccessful'] = '$nr messages found.';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
+$messages['searchnomatch'] = 'Search returned no matches.';
+$messages['searching'] = 'Searching...';
+$messages['checking'] = 'Checking...';
+$messages['nospellerrors'] = 'No spelling errors found.';
+$messages['folderdeleted'] = 'Folder successfully deleted.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
+$messages['deletedsuccessfully'] = 'Successfully deleted.';
+$messages['converting'] = 'Removing formatting...';
+$messages['messageopenerror'] = 'Could not load message from server.';
+$messages['fileuploaderror'] = 'File upload failed.';
+$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/ber/labels.inc b/program/localization/ber/labels.inc
index 939405707..1128b0d4b 100644
--- a/program/localization/ber/labels.inc
+++ b/program/localization/ber/labels.inc
@@ -13,5 +13,6 @@
+-----------------------------------------------------------------------+
*/
+$labels = array();
$labels['username'] = 'Izwel n';
diff --git a/program/localization/bg_BG/labels.inc b/program/localization/bg_BG/labels.inc
index 0394f19b9..6542cfc53 100644
--- a/program/localization/bg_BG/labels.inc
+++ b/program/localization/bg_BG/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Добре дошли в $product';
$labels['username'] = 'Потребител';
$labels['password'] = 'Парола';
$labels['server'] = 'Сървър';
$labels['login'] = 'Вход';
+
+// taskbar
$labels['logout'] = 'Изход';
-$labels['mail'] = 'Поща';
+$labels['mail'] = 'КутиÑ';
$labels['settings'] = 'ÐаÑтройки';
$labels['addressbook'] = 'ÐдреÑна книга';
-$labels['inbox'] = 'Вх. поща';
+
+// mailbox names
+$labels['inbox'] = 'ВходÑщи';
$labels['drafts'] = 'Чернови';
$labels['sent'] = 'Изпратени';
$labels['trash'] = 'Кошче';
$labels['junk'] = 'Спам';
-$labels['show_real_foldernames'] = 'Показва иÑтинÑките имена на Ñлужебните папки';
+
+// message listing
$labels['subject'] = 'Заглавие';
$labels['from'] = 'От';
$labels['sender'] = 'Подател';
@@ -43,22 +52,28 @@ $labels['size'] = 'Размер';
$labels['priority'] = 'Приоритет';
$labels['organization'] = 'ОрганизациÑ';
$labels['readstatus'] = 'Статут (прочетено/ново)';
-$labels['listoptions'] = 'ÐаÑтройки на ÑпиÑък...';
+$labels['listoptions'] = 'Показване на възможни опции';
+
$labels['mailboxlist'] = 'Папки';
-$labels['messagesfromto'] = 'ПиÑма $from до $to от $count';
-$labels['threadsfromto'] = 'КореÑпонденции $from до $to от $count';
-$labels['messagenrof'] = 'ПиÑмо $nr от $count';
+$labels['messagesfromto'] = 'Ð¡ÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ $from до $to от $count';
+$labels['threadsfromto'] = 'Ð¡ÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ $from до $to от $count';
+$labels['messagenrof'] = 'Съобщение $nr от $count';
$labels['fromtoshort'] = '$from – $to от $count';
+
$labels['copy'] = 'Копиране';
$labels['move'] = 'ПремеÑтване';
-$labels['moveto'] = 'ПремеÑти във...';
+$labels['moveto'] = 'ПремеÑти в...';
$labels['download'] = 'Изтегли';
$labels['open'] = 'Отвори';
$labels['showattachment'] = 'Показване';
$labels['showanyway'] = 'Показване въпреки това';
+
$labels['filename'] = 'Име на файла';
$labels['filesize'] = 'Размер на файла';
+
$labels['addtoaddressbook'] = 'Добави в адреÑната книга';
+
+// weekdays short
$labels['sun'] = 'Ðед';
$labels['mon'] = 'Пон';
$labels['tue'] = 'Вто';
@@ -66,6 +81,8 @@ $labels['wed'] = 'СрÑ';
$labels['thu'] = 'Чет';
$labels['fri'] = 'Пет';
$labels['sat'] = 'Съб';
+
+// weekdays long
$labels['sunday'] = 'ÐеделÑ';
$labels['monday'] = 'Понеделник';
$labels['tuesday'] = 'Вторник';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'СрÑда';
$labels['thursday'] = 'Четвъртък';
$labels['friday'] = 'Петък';
$labels['saturday'] = 'Събота';
+
+// months short
$labels['jan'] = 'Яну';
$labels['feb'] = 'Фев';
$labels['mar'] = 'Мар';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Сеп';
$labels['oct'] = 'Окт';
$labels['nov'] = 'Ðое';
$labels['dec'] = 'Дек';
+
+// months long
$labels['longjan'] = 'Януари';
$labels['longfeb'] = 'Февруари';
$labels['longmar'] = 'Март';
@@ -97,157 +118,167 @@ $labels['longsep'] = 'Септември';
$labels['longoct'] = 'Октомври';
$labels['longnov'] = 'Ðоември';
$labels['longdec'] = 'Декември';
+
$labels['today'] = 'ДнеÑ';
-$labels['refresh'] = 'Обнови';
-$labels['checkmail'] = 'Провери за нова поща';
-$labels['compose'] = 'Ðапиши';
+
+// toolbar buttons
+$labels['refresh'] = 'ОпреÑнÑване';
+$labels['checkmail'] = 'Провери за нови пиÑма';
+$labels['compose'] = 'Ðово пиÑмо';
$labels['writenewmessage'] = 'Създай ново пиÑмо';
$labels['reply'] = 'Отговор';
-$labels['replytomessage'] = 'Отговори на подателÑ';
-$labels['replytoallmessage'] = 'Отговори на Ð¿Ð¾Ð´Ð°Ñ‚ÐµÐ»Ñ Ð¸ вÑички получатели';
+$labels['replytomessage'] = 'Отговори на пиÑмото';
+$labels['replytoallmessage'] = 'Отговор до Ð¿Ð¾Ð´Ð°Ñ‚ÐµÐ»Ñ Ð¸ вÑички получатели';
$labels['replyall'] = 'Отговор на вÑички';
-$labels['replylist'] = 'Отговор на ÑпиÑък';
-$labels['forward'] = 'Препрати';
-$labels['forwardinline'] = 'Като цитат в пиÑмото';
-$labels['forwardattachment'] = 'Като прикачен файл';
+$labels['replylist'] = 'СпиÑък за отговор';
+$labels['forward'] = 'Препращане';
+$labels['forwardinline'] = 'Препрати като чаÑÑ‚ от Ñъобщението';
+$labels['forwardattachment'] = 'Препрати като прикачен файл';
$labels['forwardmessage'] = 'Препрати пиÑмото';
$labels['deletemessage'] = 'Изтрий пиÑмото';
-$labels['movemessagetotrash'] = 'ПремеÑти пиÑмото в Кошче';
-$labels['printmessage'] = 'Печат на пиÑмото';
+$labels['movemessagetotrash'] = 'ПремеÑти пиÑмото в кошчето';
+$labels['printmessage'] = 'Разпечатай пиÑмото';
$labels['previousmessage'] = 'Предишно пиÑмо';
$labels['firstmessage'] = 'Първо пиÑмо';
$labels['nextmessage'] = 'Следващо пиÑмо';
$labels['lastmessage'] = 'ПоÑледно пиÑмо';
$labels['backtolist'] = 'Обратно към ÑпиÑъка';
-$labels['viewsource'] = 'Изходен код';
-$labels['mark'] = 'Маркирай';
+$labels['viewsource'] = 'Виж като код';
+$labels['mark'] = 'Маркирарне';
$labels['markmessages'] = 'Маркирай пиÑмата';
$labels['markread'] = 'Като прочетени';
$labels['markunread'] = 'Като нови';
$labels['markflagged'] = 'Като отбелÑзани';
$labels['markunflagged'] = 'Като неотбелÑзани';
-$labels['moreactions'] = 'Допълнителни дейÑтвиÑ...';
-$labels['more'] = 'Още';
+$labels['moreactions'] = 'Повече дейÑтвиÑ...';
+$labels['more'] = 'Повече';
$labels['back'] = 'Ðазад';
$labels['options'] = 'Опции';
+
$labels['select'] = 'Избери';
$labels['all'] = 'Ð’Ñички';
-$labels['none'] = 'ОÑтави без избор';
-$labels['currpage'] = 'Ð’Ñички на Ñтраницата';
-$labels['unread'] = 'Само нови';
-$labels['flagged'] = 'Само отбелÑзани';
-$labels['unanswered'] = 'Само без отговор';
+$labels['none'] = 'ÐÑма';
+$labels['currpage'] = 'Страница';
+$labels['unread'] = 'Ðови';
+$labels['flagged'] = 'ОтбелÑзано';
+$labels['unanswered'] = 'Без отговор';
$labels['withattachment'] = 'С прикачен файл';
-$labels['deleted'] = 'Ð’Ñички изтрити';
-$labels['undeleted'] = 'Които не Ñа изтрити';
-$labels['invert'] = 'Които не Ñа избрани';
+$labels['deleted'] = 'Изтрито';
+$labels['undeleted'] = 'Ðе е изтрит';
+$labels['invert'] = 'Инвертирай';
$labels['filter'] = 'Филтър';
$labels['list'] = 'СпиÑък';
-$labels['threads'] = 'КореÑпонденции';
-$labels['expand-all'] = 'Разгъни вÑички';
-$labels['expand-unread'] = 'Разгъни непрочетените';
-$labels['collapse-all'] = 'Сгъни вÑички';
-$labels['threaded'] = 'Групирани по кореÑпонденции';
-$labels['autoexpand_threads'] = 'Разгъни кореÑпонденции';
-$labels['do_expand'] = 'вÑички кореÑпонденции';
-$labels['expand_only_unread'] = 'Ñамо Ñ Ð½ÐµÐ¿Ñ€Ð¾Ñ‡ÐµÑ‚ÐµÐ½Ð¸ пиÑма';
-$labels['fromto'] = 'От/Получател';
-$labels['flag'] = 'ОтбелÑзано';
+$labels['threads'] = 'СъобщениÑ';
+$labels['expand-all'] = 'ОтварÑне на вÑички';
+$labels['expand-unread'] = 'ОтварÑне на непрочетени';
+$labels['collapse-all'] = 'ЗатварÑне на вÑички';
+$labels['threaded'] = 'Ð¡ÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð¾Ñ‚Ð³Ð¾Ð²Ð¾Ñ€Ð¸';
+
+$labels['autoexpand_threads'] = 'ОтварÑне на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ отговори';
+$labels['do_expand'] = 'вÑички отговори';
+$labels['expand_only_unread'] = 'Ñамо Ñ Ð½ÐµÐ¿Ñ€Ð¾Ñ‡ÐµÑ‚ÐµÐ½Ð¸ ÑъобщениÑ';
+$labels['fromto'] = 'Изпращащ/Получаващ';
+$labels['flag'] = 'Флаг';
$labels['attachment'] = 'Прикачен файл';
-$labels['nonesort'] = 'ÐÑма';
+$labels['nonesort'] = 'Ðикакъв';
$labels['sentdate'] = 'Дата на изпращане';
-$labels['arrival'] = 'Дата на получаване';
-$labels['asc'] = 'нараÑтваща';
-$labels['desc'] = 'намалÑваща';
-$labels['listcolumns'] = 'Колони на ÑпиÑък';
-$labels['listsorting'] = 'Подреди по колона';
-$labels['listorder'] = 'ПоÑока на подреждане';
-$labels['listmode'] = 'Изглед на ÑпиÑък';
+$labels['arrival'] = 'Дата на приÑтигане';
+$labels['asc'] = 'възходÑщ';
+$labels['desc'] = 'низходÑщ';
+$labels['listcolumns'] = 'Колони за ÑпиÑък';
+$labels['listsorting'] = 'Колона за Ñортиране';
+$labels['listorder'] = 'Режим на Ñортиране';
+$labels['listmode'] = 'Кратък ÑпиÑък';
+
$labels['folderactions'] = 'ДейÑÑ‚Ð²Ð¸Ñ Ð·Ð° папки...';
-$labels['compact'] = 'Уплътни данни';
+$labels['compact'] = 'Свиване';
$labels['empty'] = 'Изпразни';
-$labels['importmessages'] = 'Импорт на пиÑма';
+
$labels['quota'] = 'Използвано мÑÑто';
$labels['unknown'] = 'нÑма информациÑ';
-$labels['unlimited'] = 'без ограничение';
+$labels['unlimited'] = 'нÑма ограничение';
+
$labels['quicksearch'] = 'Бързо Ñ‚ÑŠÑ€Ñене';
-$labels['resetsearch'] = 'ИзчиÑти филтър и покажи вÑичко';
-$labels['searchmod'] = 'Филтър по';
-$labels['msgtext'] = 'ЦÑлото пиÑмо';
+$labels['resetsearch'] = 'ИзчиÑти Ñ‚ÑŠÑ€Ñенето и покажи вÑички пиÑма';
+$labels['searchmod'] = 'ТърÑене във';
+$labels['msgtext'] = 'ЦÑлото Ñъобщение';
$labels['body'] = 'ОÑновен текÑÑ‚';
-$labels['type'] = 'Тип';
-$labels['namex'] = 'Име';
+
$labels['openinextwin'] = 'Отвори в нов прозорец';
$labels['emlsave'] = 'Изтегли като .eml';
-$labels['changeformattext'] = 'Покажи в текÑтов формат';
+$labels['changeformattext'] = 'Покажи в опроÑтен текÑтов формат';
$labels['changeformathtml'] = 'Покажи в HTML формат';
-$labels['editasnew'] = 'Редактирай като ново';
-$labels['send'] = 'Изпрати';
+
+// message compose
+$labels['editasnew'] = 'Промени като ново';
+$labels['send'] = 'Изпращане';
$labels['sendmessage'] = 'Изпрати пиÑмото';
$labels['savemessage'] = 'Запиши в Чернови';
-$labels['addattachment'] = 'Прикачване на файл';
-$labels['charset'] = 'Кодова таблица';
+$labels['addattachment'] = 'Прикачи файл';
+$labels['charset'] = 'Кодировка';
$labels['editortype'] = 'Вид редактор';
$labels['returnreceipt'] = 'Обратна разпиÑка';
-$labels['dsn'] = 'ÐÐ¾Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ доÑтавка';
+$labels['dsn'] = 'Информиране при доÑтавка';
$labels['mailreplyintro'] = 'Ðа $date, $sender напиÑа:';
-$labels['originalmessage'] = 'Оригинално пиÑмо';
-$labels['editidents'] = 'Промени ÑамоличноÑти';
-$labels['spellcheck'] = 'ПравопиÑ';
-$labels['checkspelling'] = 'Проверка на правопиÑа';
+$labels['originalmessage'] = 'Първоначалното Ñъобщение';
+
+$labels['editidents'] = 'Редактиране на ÑамоличноÑти';
+$labels['spellcheck'] = 'Спелуване';
+$labels['checkspelling'] = 'Провери правопиÑа';
$labels['resumeediting'] = 'Продължи черновата';
$labels['revertto'] = 'Върни Ñе към';
-$labels['responses'] = 'Отговори';
-$labels['insertresponse'] = 'Вмъкване на отговори';
-$labels['manageresponses'] = 'ÐаÑтройка на отговори';
-$labels['savenewresponse'] = 'Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° нов отговор';
-$labels['editresponses'] = 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° отговори';
-$labels['editresponse'] = 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° отговор';
-$labels['responsename'] = 'Име';
-$labels['responsetext'] = 'ТекÑÑ‚ на отговор';
-$labels['attach'] = 'Прикачи';
+
+$labels['attach'] = 'Прикачване';
$labels['attachments'] = 'Прикачени файлове';
$labels['upload'] = 'Качи';
$labels['uploadprogress'] = '$percent ($current от $total)';
$labels['close'] = 'Затвори';
-$labels['messageoptions'] = 'ÐаÑтройки на пиÑма...';
+$labels['messageoptions'] = 'ÐаÑтройки на ÑъобщениÑ...';
+
$labels['low'] = 'ÐиÑък';
$labels['lowest'] = 'Ðай-ниÑък';
$labels['normal'] = 'Ðормален';
$labels['high'] = 'ВиÑок';
$labels['highest'] = 'Ðай-виÑок';
+
$labels['nosubject'] = '(нÑма заглавие)';
$labels['showimages'] = 'Показвай изображениÑ';
-$labels['alwaysshow'] = 'Винаги показвай Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ‚ $sender';
-$labels['isdraft'] = 'Това е чернова';
-$labels['andnmore'] = 'още $nr...';
-$labels['togglemoreheaders'] = 'Покажи още заглавни блокове';
-$labels['togglefullheaders'] = 'Изходни заглавни блокове';
+$labels['alwaysshow'] = 'Винаги показвай Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ‚ $';
+$labels['isdraft'] = 'Това Ñъобщение е чернова';
+$labels['andnmore'] = '$nr повече...';
+$labels['togglemoreheaders'] = 'Показва още ÑъобщениÑ';
+$labels['togglefullheaders'] = 'Само новите ÑъобщениÑ';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ТекÑтово';
-$labels['savesentmessagein'] = 'Запази Ñлед изпращане в';
-$labels['dontsave'] = 'не запазвай';
-$labels['maxuploadsize'] = 'МакÑимален размер на файл е $size';
+$labels['savesentmessagein'] = 'Запази Ñъобщението в';
+$labels['dontsave'] = 'Ðе ÑъхранÑвай';
+$labels['maxuploadsize'] = 'МакÑимално позволен размер $size';
+
$labels['addcc'] = 'Копие до';
$labels['addbcc'] = 'Скрито копие до';
-$labels['addreplyto'] = 'Отговор до';
-$labels['addfollowupto'] = 'Препращане към';
-$labels['mdnrequest'] = 'ПодателÑÑ‚ е поиÑкал да бъде уведомен, че Ñте го прочели това пиÑмо. Желаете ли да изпратите обратна разпиÑка?';
+$labels['addreplyto'] = 'Отговор на';
+$labels['addfollowupto'] = 'ДобавÑне на препращане към';
+
+// mdn
+$labels['mdnrequest'] = 'ПодателÑÑ‚ на пиÑмото е пожелал да бъде уведомен, че Ñте го прочели. Желаете ли да изпратите обратна разпиÑка?';
$labels['receiptread'] = 'Обратна разпиÑка (прочетено)';
-$labels['yourmessage'] = 'Това е обратна разпиÑка отноÑно пиÑмото Ви';
-$labels['receiptnote'] = 'Забележка: Тази разпиÑка потвърждава Ñамо, че пиÑмото е било визуализирано на екрана на получателÑÑ‚. ÐÑма никаква гаранциÑ, че той е разбрал и/или дори прочел неговото Ñъдържание.';
+$labels['yourmessage'] = 'Това е обратна разпиÑка за пиÑмото Ви';
+$labels['receiptnote'] = 'Забележка: Тази разпиÑка потвърждава Ñамо, че пиÑмото е било показано на компютъра на получателÑÑ‚. ÐÑма никаква гаранциÑ, че получателÑÑ‚ е прочел и/или разбрал Ñъдържанието на пиÑмото.';
+
+// address boook
$labels['name'] = 'Екранно име';
$labels['firstname'] = 'Име';
$labels['surname'] = 'ФамилиÑ';
$labels['middlename'] = 'Презиме';
-$labels['nameprefix'] = 'Титла';
-$labels['namesuffix'] = 'ÐаÑтавка';
+$labels['nameprefix'] = 'ПредÑтавка (Титла)';
+$labels['namesuffix'] = 'ÐаÑтавка (Титла)';
$labels['nickname'] = 'ПÑевдоним';
$labels['jobtitle'] = 'ДлъжноÑÑ‚';
$labels['department'] = 'Отдел';
$labels['gender'] = 'Пол';
-$labels['maidenname'] = 'Бащино име';
-$labels['email'] = 'E-mail';
+$labels['maidenname'] = 'Бащино фамилиÑ';
+$labels['email'] = 'E-Mail';
$labels['phone'] = 'Телефон';
$labels['address'] = 'ÐдреÑ';
$labels['street'] = 'Улица';
@@ -256,99 +287,108 @@ $labels['zipcode'] = 'ПощенÑки код';
$labels['region'] = 'ОблаÑÑ‚';
$labels['country'] = 'Държава';
$labels['birthday'] = 'Рожден ден';
-$labels['anniversary'] = 'Дата годишнина';
+$labels['anniversary'] = 'Годишнина';
$labels['website'] = 'Сайт';
-$labels['instantmessenger'] = 'Чат';
+$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'Бележки';
-$labels['male'] = 'мъж';
-$labels['female'] = 'жена';
+$labels['male'] = 'Мъж';
+$labels['female'] = 'Жена';
$labels['manager'] = 'Мениджър';
$labels['assistant'] = 'ÐÑиÑтент';
$labels['spouse'] = 'Съпруг(а)';
$labels['allfields'] = 'Ð’Ñички полета';
$labels['search'] = 'ТърÑене';
$labels['advsearch'] = 'Разширено Ñ‚ÑŠÑ€Ñене';
-$labels['advanced'] = 'ТърÑи';
+$labels['advanced'] = 'Разширени';
$labels['other'] = 'Други';
-$labels['typehome'] = 'Домашен';
-$labels['typework'] = 'Служебен';
-$labels['typeother'] = 'Друг';
-$labels['typemobile'] = 'Мобилен';
-$labels['typemain'] = 'ОÑновен';
+
+$labels['typehome'] = 'Ðачало';
+$labels['typework'] = 'Работа';
+$labels['typeother'] = 'Други';
+$labels['typemobile'] = 'Мобилни';
+$labels['typemain'] = 'Главни';
$labels['typehomefax'] = 'Домашен факÑ';
$labels['typeworkfax'] = 'Служебен факÑ';
-$labels['typecar'] = 'В колата';
+$labels['typecar'] = 'Ðвтомобил';
$labels['typepager'] = 'Пейджър';
-$labels['typevideo'] = 'Ð¡ÑŠÑ Ð²Ð¸Ð´ÐµÐ¾';
-$labels['typeassistant'] = 'Ðа аÑиÑтент';
-$labels['typehomepage'] = 'Личен';
+$labels['typevideo'] = 'Видео';
+$labels['typeassistant'] = 'ÐÑиÑтент';
+$labels['typehomepage'] = 'Ðачална Ñтраница';
$labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профил';
-$labels['addfield'] = 'Друго поле...';
-$labels['addcontact'] = 'Добави нов контакт';
-$labels['editcontact'] = 'Редактирай контакт';
+
+$labels['addfield'] = 'Добави поле';
+$labels['addcontact'] = 'ДобавÑне';
+$labels['editcontact'] = 'ПромÑна';
$labels['contacts'] = 'Контакти';
-$labels['contactproperties'] = 'Данни на контакт';
+$labels['contactproperties'] = 'СвойÑтва на контакт';
$labels['personalinfo'] = 'Лична информациÑ';
+
$labels['edit'] = 'Редактирай';
$labels['cancel'] = 'Отказ';
-$labels['save'] = 'ЗапиÑ';
+$labels['save'] = 'Запиши';
$labels['delete'] = 'Изтрий';
$labels['rename'] = 'Преименувай';
$labels['addphoto'] = 'Добави';
$labels['replacephoto'] = 'Замени';
$labels['uploadphoto'] = 'Качване на Ñнимка';
+
$labels['newcontact'] = 'Ðов контакт';
-$labels['deletecontact'] = 'Изтрий избраните контакти';
+$labels['deletecontact'] = 'Изтрий маркираните контакти';
$labels['composeto'] = 'Ðапиши пиÑмо до';
$labels['contactsfromto'] = 'Контакти $from до $to от $count';
-$labels['print'] = 'Печат';
-$labels['export'] = 'ЕкÑпорт';
-$labels['exportall'] = 'ЕкÑпортиране на вÑичко';
+$labels['print'] = 'Разпечатай';
+$labels['export'] = 'ИзнаÑÑне';
+$labels['exportall'] = 'ЕкÑпортиране';
$labels['exportsel'] = 'ЕкÑпортиране на избраното';
-$labels['exportvcards'] = 'ЕкÑпорт във vCard формат';
-$labels['newcontactgroup'] = 'Ðова група контракти';
-$labels['grouprename'] = 'Преименувай групата';
-$labels['groupdelete'] = 'Изтрий групата';
-$labels['groupremoveselected'] = 'Премахни избраните контакти от групата';
-$labels['previouspage'] = 'Предишна Ñтраница';
+$labels['exportvcards'] = 'ИзнаÑÑне във vCard формат';
+$labels['newcontactgroup'] = 'Създаване на нова група';
+$labels['grouprename'] = 'Преименувай група';
+$labels['groupdelete'] = 'Изтриване на група';
+$labels['groupremoveselected'] = 'Премахване на избраните контакти от група';
+
+$labels['previouspage'] = 'Предна Ñтраница';
$labels['firstpage'] = 'Първа Ñтраница';
$labels['nextpage'] = 'Следваща Ñтраница';
$labels['lastpage'] = 'ПоÑледна Ñтраница';
+
$labels['group'] = 'Група';
$labels['groups'] = 'Групи';
-$labels['listgroup'] = 'Покажи членове на групата';
$labels['personaladrbook'] = 'Лични адреÑи';
-$labels['searchsave'] = 'Запази филтър';
-$labels['searchdelete'] = 'Изтрий филтър';
-$labels['import'] = 'Импорт';
-$labels['importcontacts'] = 'Импортиране на контакти';
-$labels['importfromfile'] = 'Импорт от файл:';
-$labels['importtarget'] = 'Добави контакти към';
-$labels['importreplace'] = 'Замени цÑлата адреÑна книга';
-$labels['importgroups'] = 'Импорт на задачи на група';
-$labels['importgroupsall'] = 'Ð’Ñички (Ñъздава групи ако е необходимо)';
-$labels['importgroupsexisting'] = 'Само за ÑъщеÑтвуващите групи';
-$labels['importdesc'] = 'Можете да качвате контакти от ÑъщеÑтвуваща адреÑна книга.<br/>Ð’ момента поддържаме импорт на адреÑи от файловите формати <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> или CSV (comma-separated).';
-$labels['done'] = 'Готово';
+
+$labels['searchsave'] = 'Запази Ñ‚ÑŠÑ€Ñенето';
+$labels['searchdelete'] = 'Изтрий Ñ‚ÑŠÑ€Ñенето';
+
+$labels['import'] = 'ВнаÑÑне';
+$labels['importcontacts'] = 'ВнаÑÑне';
+$labels['importfromfile'] = 'ВнаÑÑне от файл';
+$labels['importtarget'] = 'Добави нови контакти в книгата Ñ Ð°Ð´Ñ€ÐµÑи';
+$labels['importreplace'] = 'Замени цÑлата книга Ñ Ð°Ð´Ñ€ÐµÑи';
+$labels['importdesc'] = 'Можете да качвате контакти от ÑъщеÑтвуваща адреÑна книга.<br/>Ð’ момента поддържаме внаÑÑне на адреÑи от файловите формати <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> или CSV (comma-separated).';
+$labels['done'] = 'Извършено';
+
+// settings
$labels['settingsfor'] = 'ÐаÑтройки за';
$labels['about'] = 'ОтноÑно';
$labels['preferences'] = 'ÐаÑтройки';
$labels['userpreferences'] = 'ПотребителÑки наÑтройки';
$labels['editpreferences'] = 'Редактирай потребителÑките наÑтройки';
-$labels['identities'] = 'СамоличноÑти';
-$labels['manageidentities'] = 'ÐаÑтройка на ÑамоличноÑти за този акаунт';
+
+$labels['identities'] = 'СамоличноÑÑ‚';
+$labels['manageidentities'] = 'ПромÑна на ÑамоличноÑтите за този акаунт';
$labels['newidentity'] = 'Ðова ÑамоличноÑÑ‚';
+
$labels['newitem'] = 'Ðова ÑамоличноÑÑ‚';
-$labels['edititem'] = 'Редактирай ÑамоличноÑÑ‚';
-$labels['preferhtml'] = 'Покажи първо HTML верÑиÑ';
-$labels['defaultcharset'] = 'Кодова таблица по подразбиране';
-$labels['htmlmessage'] = 'HTML пиÑмо';
+$labels['edititem'] = 'Редактиране на ÑамоличноÑÑ‚';
+
+$labels['preferhtml'] = 'Показвай първо HTML верÑиÑ';
+$labels['defaultcharset'] = 'Подразбиращо Ñе кодиране';
+$labels['htmlmessage'] = 'HTML Ñъобщение';
$labels['messagepart'] = 'ЧаÑÑ‚';
$labels['digitalsig'] = 'Показва подпиÑ';
-$labels['dateformat'] = 'Формат на дати';
-$labels['timeformat'] = 'Формат на време';
-$labels['prettydate'] = 'Удобни дати';
+$labels['dateformat'] = 'Формат на датата';
+$labels['timeformat'] = 'Формат на времето';
+$labels['prettydate'] = 'Кратки дати';
$labels['setdefault'] = 'По подразбиране';
$labels['autodetect'] = 'Ðвтоматично';
$labels['language'] = 'Език';
@@ -356,120 +396,126 @@ $labels['timezone'] = 'ЧаÑова зона';
$labels['pagesize'] = 'Редове на Ñтраница';
$labels['signature'] = 'ПодпиÑ';
$labels['dstactive'] = 'Маркирай при лÑтно време';
-$labels['showinextwin'] = 'ОтварÑй пиÑмата в отделен прозорец';
-$labels['composeextwin'] = 'ПиÑане на ново пиÑмо в отделен прозорец';
-$labels['htmleditor'] = 'ПиÑане на ново пиÑмо като HTML';
-$labels['htmlonreply'] = 'Ñамо при отговор на HTML пиÑмо';
-$labels['htmlonreplyandforward'] = 'Ñамо при препращане или отговор на HTML пиÑмо';
+$labels['showinextwin'] = 'ОтварÑне на Ñъобщението в нов прозорец';
+$labels['composeextwin'] = 'Ðово пиÑмо в прозорец';
+$labels['htmleditor'] = 'ПиÑане на Ñъобщениe като HTML';
+$labels['htmlonreply'] = 'Ñамо при отговор на HTML ÑъбощениÑ';
+$labels['htmlonreplyandforward'] = 'Ñамо при препращане или отговор на HTML Ñъобщение';
$labels['htmlsignature'] = 'HTML подпиÑ';
$labels['showemail'] = 'Показва email Ð°Ð´Ñ€ÐµÑ Ñ ÐµÐºÑ€Ð°Ð½Ð½Ð¾Ñ‚Ð¾ име';
-$labels['previewpane'] = 'Показване на панел за преглед';
-$labels['skin'] = 'Изглед на потребителÑки интерфейÑ';
-$labels['logoutclear'] = 'При изход изтрий вÑичко от Кошче';
-$labels['logoutcompact'] = 'При изход уплътни данни във Вх. поща';
+$labels['previewpane'] = 'Панел за преглед';
+$labels['skin'] = 'СмÑна изгледа на интерфейÑа';
+$labels['logoutclear'] = 'ИзчиÑти кошчето при изход';
+$labels['logoutcompact'] = 'Упллътни ВходÑщи при изход';
$labels['uisettings'] = 'ПотребителÑки интерфейÑ';
$labels['serversettings'] = 'ÐаÑтройки на Ñървъра';
-$labels['mailboxview'] = 'Изглед на пощенÑка кутиÑ';
-$labels['mdnrequests'] = 'При иÑкане за обратна разпиÑка';
-$labels['askuser'] = 'задай въпроÑ';
-$labels['autosend'] = 'изпрати автоматично винаги';
-$labels['autosendknown'] = 'изпрати автоматично Ñамо на моите контакти, иначе задай въпроÑ';
-$labels['autosendknownignore'] = 'изпрати автоматично Ñамо на моите контакти, иначе отхвърли';
-$labels['ignore'] = 'отхвърли';
-$labels['readwhendeleted'] = 'Маркирай като прочетено при изтриване';
-$labels['flagfordeletion'] = 'Отбележи пиÑмото за изтриване';
-$labels['skipdeleted'] = 'Ðе показвай изтритите пиÑма';
-$labels['deletealways'] = 'При неуÑпешно меÑтене на пиÑмо в Кошче, изтрий директно';
-$labels['deletejunk'] = 'Ð’ папка Спам изтривай пиÑмата без меÑтене в Кошче';
-$labels['showremoteimages'] = 'Покажи вградени изображениÑ';
-$labels['fromknownsenders'] = 'от познати податели';
-$labels['always'] = 'винаги';
-$labels['showinlineimages'] = 'Покажи прикачените Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñлед пиÑмото';
+$labels['mailboxview'] = 'Преглед на КутиÑ';
+$labels['mdnrequests'] = 'Уведомление на подателÑ';
+$labels['askuser'] = 'Задай въпроÑ';
+$labels['autosend'] = 'Изпрати автоматично';
+$labels['autosendknown'] = 'да Ñе изпрати обратна разпиÑка на моите контакти и да Ñе пита при външни контакти';
+$labels['autosendknownignore'] = 'да Ñе изпрати обратна разпиÑка на моите контакти, а на външни не';
+$labels['ignore'] = 'Отхвърли';
+$labels['readwhendeleted'] = 'Отбележи като прочетено при изтриване';
+$labels['flagfordeletion'] = 'Отбележи Ñъобщението за изтриване';
+$labels['skipdeleted'] = 'Ðе показвай изтритите ÑъобщениÑ';
+$labels['deletealways'] = 'При неуÑпешно премеÑтване на Ñъобщение в Кошчето, да Ñе изтрие';
+$labels['deletejunk'] = 'МеÑтене на изтритите ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² кошчето';
+$labels['showremoteimages'] = 'Покажи блокираните изображениÑ';
+$labels['fromknownsenders'] = 'Oт познати податели';
+$labels['always'] = 'Винаги';
+$labels['showinlineimages'] = 'Покажи прикачените Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñлед Ñъобщението';
$labels['autosavedraft'] = 'Ðвтоматично запиÑвай чернова';
-$labels['everynminutes'] = 'през $n минути';
-$labels['refreshinterval'] = 'ПроверÑвай за нова поща';
+$labels['everynminutes'] = 'вÑеки $n минути';
+$labels['refreshinterval'] = 'ОпреÑнÑване (проверка за нови ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ Ñ‚.н.)';
$labels['never'] = 'никога';
-$labels['immediately'] = 'веднага';
-$labels['messagesdisplaying'] = 'Показване на пиÑма';
-$labels['messagescomposition'] = 'ПиÑане на пиÑма';
-$labels['mimeparamfolding'] = 'Имена на прикачени файлове';
+$labels['immediately'] = 'Веднага';
+$labels['messagesdisplaying'] = 'Показване на ÑъбщениÑта';
+$labels['messagescomposition'] = 'ПиÑане на ÑъобщениÑ';
+$labels['mimeparamfolding'] = 'ДобавÑне име на прикрепените файлове';
$labels['2231folding'] = 'Според RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Според RFC 2047 (други)';
$labels['force7bit'] = 'Използване на MIME кодиране за 8-битови Ñимволи';
-$labels['advancedoptions'] = 'Разширени наÑтройки';
+$labels['advancedoptions'] = 'ÐаÑтройки за напреднали';
$labels['focusonnewmessage'] = 'Премигване на прозореца при ново пиÑмо';
-$labels['checkallfolders'] = 'Проверка за нови пиÑма във вÑички папки ';
-$labels['displaynext'] = 'След изтриване/премеÑтване на пиÑмо покажи Ñледващото в ÑпиÑъка';
-$labels['defaultfont'] = 'Шрифт по подразбиране за HTML пиÑма';
+$labels['checkallfolders'] = 'Провери вÑички папки за нови пиÑма';
+$labels['displaynext'] = 'След изтриване / премини към Ñледващото пиÑмо';
+$labels['defaultfont'] = 'Шрифт по подразбиране за HTML ÑъобщениÑта';
$labels['mainoptions'] = 'ОÑновни наÑтройки';
-$labels['browseroptions'] = 'ÐаÑтройки на текущ браузър';
+$labels['browseroptions'] = 'ÐаÑтройки на четеца';
$labels['section'] = 'СекциÑ';
-$labels['maintenance'] = 'Поддръжка папки';
-$labels['newmessage'] = 'Ðови пиÑма';
+$labels['maintenance'] = 'Поддръжка';
+$labels['newmessage'] = 'Ðово Ñъобщение';
$labels['signatureoptions'] = 'ÐаÑтройки на подпиÑ';
-$labels['whenreplying'] = 'При отговор на пиÑмо';
-$labels['replyempty'] = 'не цитирай оригиналното пиÑмо';
-$labels['replytopposting'] = 'започни новото пиÑмо над цитата (top-posting)';
-$labels['replybottomposting'] = 'започни новото пиÑмо Ñлед цитата (bottom-posting)';
-$labels['replyremovesignature'] = 'При отговор на пиÑмо премахни Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ';
-$labels['autoaddsignature'] = 'Ðвтоматично добавÑй подпиÑ';
-$labels['newmessageonly'] = 'Ñамо на нови пиÑма';
+$labels['whenreplying'] = 'При отговор';
+$labels['replyempty'] = 'да не Ñе цитира оригиналното Ñъобщение';
+$labels['replytopposting'] = 'започване на ново Ñъобщение преди Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚';
+$labels['replybottomposting'] = 'започване на ново Ñъобщение Ñлед Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚';
+$labels['replyremovesignature'] = 'Премахване на Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ Ñъобщението при отговор';
+$labels['autoaddsignature'] = 'Ðвтоматично добавÑне на подпиÑ';
+$labels['newmessageonly'] = 'Ñамо на нови ÑъобщениÑ';
$labels['replyandforwardonly'] = 'Ñамо на отговори и препратени';
$labels['insertsignature'] = 'Вмъкване на подпиÑ';
-$labels['previewpanemarkread'] = 'Маркиране на прегледаните пиÑма като прочетени';
+$labels['previewpanemarkread'] = 'Маркиране на прегледаните ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚Ð¾ прочетени';
$labels['afternseconds'] = 'Ñлед $n Ñекунди';
-$labels['reqmdn'] = 'Винаги изиÑквай обратна разпиÑка';
-$labels['reqdsn'] = 'Винаги изиÑквай ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾Ñтавка на пиÑмото';
-$labels['replysamefolder'] = 'ПоÑтави отговор в папка на пиÑмото, на което Ñе отговарÑ';
+$labels['reqmdn'] = 'Винаги връщай обратна разпиÑка';
+$labels['reqdsn'] = 'Винаги изиÑквай отговор при доÑтавка на Ñъобщение';
+$labels['replysamefolder'] = 'ПоÑтави отговора в папката на Ñъобщението, на което Ñе отговарÑ';
$labels['defaultabook'] = 'ÐдреÑна книга по подразбиране';
-$labels['autocompletesingle'] = 'ПропуÑни алтернативни e-mail адреÑи при автоматично попълване';
-$labels['listnamedisplay'] = 'Форматирай ÑпиÑък Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð¸ като';
-$labels['spellcheckbeforesend'] = 'Провери за правопиÑни грешки преди изпращане на пиÑмото';
+$labels['autocompletesingle'] = 'ПропуÑни алтернативните email адреÑи при автоматично попълване';
+$labels['listnamedisplay'] = 'Показване на контактите като';
+$labels['spellcheckbeforesend'] = 'Провери за правопиÑни грешки преди изпращане на Ñъобщението';
$labels['spellcheckoptions'] = 'ÐаÑтройки на проверката за правопиÑ';
$labels['spellcheckignoresyms'] = 'Игнорирай думи Ñъдържащи Ñимволи';
$labels['spellcheckignorenums'] = 'Игнорирай думи Ñъдържащи чиÑла';
$labels['spellcheckignorecaps'] = 'Игнорирай думи Ñъдържащи единÑтвено главни букви';
$labels['addtodict'] = 'Добави в речника';
-$labels['mailtoprotohandler'] = 'РегиÑтрирай RoundCube като интернет приложение, което обработва mailto: връзките в браузъра';
-$labels['standardwindows'] = 'Обработва изÑкачащи прозорци като Ñтандартни прозорци';
-$labels['forwardmode'] = 'Препращай пиÑмата';
-$labels['inline'] = 'цитирани в пиÑмото';
+$labels['mailtoprotohandler'] = 'РегиÑтриран протокол за mailto: връзките';
+$labels['forwardmode'] = 'Препращане на ÑъобщениÑ';
+$labels['inline'] = 'вградено';
$labels['asattachment'] = 'като прикачен файл';
+
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Име на папката';
-$labels['subscribed'] = 'Ðбониран';
+$labels['subscribed'] = 'Използвай';
$labels['messagecount'] = 'ПиÑма';
$labels['create'] = 'Създай';
-$labels['createfolder'] = 'Ðова папка';
-$labels['managefolders'] = 'Управление на папките';
+$labels['createfolder'] = 'Ðаправи нова папка';
+$labels['managefolders'] = 'ÐаÑтройки на папките';
$labels['specialfolders'] = 'Служебни папки';
-$labels['properties'] = 'Данни';
+$labels['properties'] = 'СвойÑтва';
$labels['folderproperties'] = 'СвойÑтва на папката';
-$labels['parentfolder'] = 'ОÑновна папка';
+$labels['parentfolder'] = 'РодителÑка папка';
$labels['location'] = 'МеÑтоположение';
$labels['info'] = 'ИнформациÑ';
-$labels['getfoldersize'] = 'Щракни за размер на папката';
+$labels['getfoldersize'] = 'Щракни за големина на папката';
$labels['changesubscription'] = 'Щракни за промÑна на абонамент';
$labels['foldertype'] = 'Вид на папката';
$labels['personalfolder'] = 'Лична папка';
$labels['otherfolder'] = 'Папка на друг потребител';
$labels['sharedfolder'] = 'Публична папка';
+
$labels['sortby'] = 'Сортирай по';
-$labels['sortasc'] = 'Сортирай нараÑтващо';
-$labels['sortdesc'] = 'Сортирай намалÑващо';
+$labels['sortasc'] = 'Сортирай възходÑщо';
+$labels['sortdesc'] = 'Сортирай низходÑщо';
$labels['undo'] = 'Отмени';
+
$labels['installedplugins'] = 'ИнÑталирани добавки';
$labels['plugin'] = 'Добавки';
$labels['version'] = 'ВерÑиÑ';
$labels['source'] = 'Източник';
$labels['license'] = 'Лиценз';
$labels['support'] = 'Поддръжка';
+
+// units
$labels['B'] = 'Б';
$labels['KB'] = 'КБ';
$labels['MB'] = 'МБ';
$labels['GB'] = 'ГБ';
+
+// character sets
$labels['unicode'] = 'Уникод';
$labels['english'] = 'ÐнглийÑки';
$labels['westerneuropean'] = 'Западна Европа';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'ВиетнамÑки';
$labels['japanese'] = 'ЯпонÑки';
$labels['korean'] = 'КорейÑки';
$labels['chinese'] = 'КитайÑки';
+
?>
diff --git a/program/localization/bg_BG/messages.inc b/program/localization/bg_BG/messages.inc
index 48e1fbcc0..219772e74 100644
--- a/program/localization/bg_BG/messages.inc
+++ b/program/localization/bg_BG/messages.inc
@@ -15,161 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Възникна грешка!';
-$messages['loginfailed'] = 'ÐеуÑпешно уÑтановÑване на ÑамоличноÑÑ‚.';
-$messages['cookiesdisabled'] = 'ВашиÑÑ‚ браузър не приема cookies.';
-$messages['sessionerror'] = 'Ðевалидна или изтекла ÑеÑиÑ.';
-$messages['storageerror'] = 'ÐеуÑпешно Ñвързване към Ñървър Ñ Ð´Ð°Ð½Ð½Ð¸.';
-$messages['servererror'] = 'Сървърна грешка!';
+$messages['loginfailed'] = 'ÐеуÑпешен вход';
+$messages['cookiesdisabled'] = 'ВашиÑÑ‚ браузър не приема cookies';
+$messages['sessionerror'] = 'Ðевалидна или изтекла ÑеÑиÑ';
+$messages['storageerror'] = 'ÐеуÑпешно Ñвързване към IMAP Ñървъра';
+$messages['servererror'] = 'Грешка!';
$messages['servererrormsg'] = 'Сървърна грешка: $msg';
-$messages['dberror'] = 'Грешка в база данни!';
-$messages['requesttimedout'] = 'Изтекло време за изпълнение на заÑвката';
-$messages['errorreadonly'] = 'Ðевъзможно изпълнение на операциÑта. Папката е Ñ Ð¿Ñ€Ð°Ð²Ð° Ñамо за четене.';
-$messages['errornoperm'] = 'Ðевъзможно изпълнение на операциÑта. Отказани права за доÑтъп.';
-$messages['erroroverquota'] = 'Ðевъзможно извършване на операциÑта. ÐÑма доÑтатъчно Ñвободно диÑково проÑтранÑтво.';
-$messages['erroroverquotadelete'] = 'ÐÑма доÑтатъчно Ñвободно диÑково проÑтранÑтво. Ползвайте Shift+Del за да изтриете пиÑма.';
+$messages['dberror'] = 'Грешка Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни!';
+$messages['requesttimedout'] = 'ЗаÑвката е Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð¾ време';
+$messages['errorreadonly'] = 'ОперациÑта не може да бъде изпълнена. Папката е Ñ Ð¿Ñ€Ð°Ð²Ð° Ñамо за четене';
+$messages['errornoperm'] = 'ОперациÑта не може да бъде изпълнена. Отказани права за доÑтъп';
+$messages['erroroverquota'] = 'Ðевъзможно извършване на дейÑтвието, нÑма доÑтатъчно Ñвободно диÑково проÑтранÑтво.';
+$messages['erroroverquotadelete'] = 'ÐÑма доÑтатъчно Ñвободно диÑково проÑтранÑтво. Ползвайте SHIFT+DEL за да изтриете Ñъобщение.';
$messages['invalidrequest'] = 'Ðевалидна заÑвка! Данните не Ñа Ñъхранени.';
-$messages['invalidhost'] = 'Ðевалидно име на Ñървър.';
-$messages['nomessagesfound'] = 'ÐÑма пиÑма.';
-$messages['loggedout'] = 'СеÑиÑта е прекратена уÑпешно. Довиждане до ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð¿ÑŠÑ‚!';
-$messages['mailboxempty'] = 'ПощенÑката ÐºÑƒÑ‚Ð¸Ñ Ðµ празна.';
-$messages['refreshing'] = 'ОбновÑване...';
+$messages['invalidhost'] = 'Ðевалидно име на Ñървър';
+$messages['nomessagesfound'] = 'ÐÑма ÑъобщениÑ';
+$messages['loggedout'] = 'Довиждане!';
+$messages['mailboxempty'] = 'КутиÑта е празна';
+$messages['refreshing'] = 'ОпреÑнÑване...';
$messages['loading'] = 'Зареждане...';
-$messages['uploading'] = 'Качване на файл...';
-$messages['uploadingmany'] = 'Качване на файлове...';
+$messages['uploading'] = 'Качване на файла...';
+$messages['uploadingmany'] = 'Качване на файловете...';
$messages['loadingdata'] = 'Зареждане на данни...';
$messages['checkingmail'] = 'Проверка за нови пиÑма...';
-$messages['sendingmessage'] = 'Изпращане на пиÑмо...';
-$messages['messagesent'] = 'ПиÑмото е изпратено уÑпешно.';
-$messages['savingmessage'] = 'ЗапиÑване на пиÑмо...';
-$messages['messagesaved'] = 'ПиÑмото е запиÑано в Чернови.';
-$messages['successfullysaved'] = 'УÑпешен запиÑ.';
-$messages['savingresponse'] = 'ЗапиÑване текÑÑ‚ на отговор...';
-$messages['deleteresponseconfirm'] = 'Желаете ли да изтриете текÑÑ‚ за отговор?';
-$messages['addedsuccessfully'] = 'Контактът е добавен в адреÑната книга.';
-$messages['contactexists'] = 'Вече ÑъщеÑтвува контакт Ñ Ñ‚Ð¾Ð·Ð¸ e-mail адреÑ.';
-$messages['contactnameexists'] = 'Вече ÑъщеÑтвува контакт Ñ Ñ‚Ð¾Ð²Ð° име.';
+$messages['sendingmessage'] = 'Изпращане на пиÑмото...';
+$messages['messagesent'] = 'ПиÑмото е изпратено уÑпешно';
+$messages['savingmessage'] = 'ЗапиÑване на пиÑмото...';
+$messages['messagesaved'] = 'ПиÑмото е запиÑано в Чернови';
+$messages['successfullysaved'] = 'ЗапиÑано';
+$messages['addedsuccessfully'] = 'Контакта е добавен в адреÑната книга';
+$messages['contactexists'] = 'Контакт Ñ Ñ‚Ð¾Ð·Ð¸ e-mail Ð°Ð´Ñ€ÐµÑ Ð²ÐµÑ‡Ðµ ÑъщеÑтува';
+$messages['contactnameexists'] = 'Контакт ÑÑŠÑ Ñъщото име вече ÑъщеÑтвува';
$messages['blockedimages'] = 'С оглед на Вашата ÑигурноÑÑ‚, изображениÑта в това пиÑмо Ñа блокирани.';
$messages['encryptedmessage'] = 'Това е кодирано пиÑмо и не може да бъде показано. СъжалÑваме!';
-$messages['nocontactsfound'] = 'ÐÑма намерени контакти.';
-$messages['contactnotfound'] = 'ТърÑениÑÑ‚ контакт не е намерен.';
-$messages['contactsearchonly'] = 'Използвайте полето за да Ñ‚ÑŠÑ€Ñите контакти';
-$messages['sendingfailed'] = 'ÐеуÑпешно изпращане на пиÑмо.';
-$messages['senttooquickly'] = 'ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ $sec Ñекунди преди да изпратите пиÑмото.';
-$messages['errorsavingsent'] = 'Възникна грешка при запиÑване на изпратеното пиÑмо.';
-$messages['errorsaving'] = 'Възникна грешка при запиÑването.';
-$messages['errormoving'] = 'ПиÑмото не може да бъде премеÑтено.';
-$messages['errorcopying'] = 'ПиÑмото не може да бъде копирано.';
-$messages['errordeleting'] = 'ПиÑмото не може да бъде изтрито.';
-$messages['errormarking'] = 'ПиÑмото не може да бъде маркирано.';
-$messages['deletecontactconfirm'] = 'Желаете ли да изтриете маркираните контакти?';
-$messages['deletegroupconfirm'] = 'Желаете ли да изтриете избраната група?';
-$messages['deletemessagesconfirm'] = 'Желаете ли да изтриете маркираните пиÑма?';
-$messages['deletefolderconfirm'] = 'Желаете ли да изтриете тази папка?';
-$messages['purgefolderconfirm'] = 'Желаете ли да изтриете вÑички пиÑма в тази папка?';
-$messages['contactdeleting'] = 'Изтриване на контакти...';
+$messages['nocontactsfound'] = 'ÐÑма намерени контакти';
+$messages['contactnotfound'] = 'ИÑканиÑÑ‚ контакт не е намерен';
+$messages['contactsearchonly'] = 'Въведете нещо в полето за Ñ‚ÑŠÑ€Ñене за да Ñ‚ÑŠÑ€Ñите контакти';
+$messages['sendingfailed'] = 'Изпращането неуÑпешно';
+$messages['senttooquickly'] = 'МолÑ, изчакайте $sec Ñекунда(и) преди да изпратите Ñъобщението';
+$messages['errorsavingsent'] = 'Възникна грешка при запиÑването на Ñъобщението';
+$messages['errorsaving'] = 'Възникна грешка при запиÑването';
+$messages['errormoving'] = 'ПиÑмото не може да бъде премеÑтено';
+$messages['errorcopying'] = 'СъобщениÑта не могат да бъдат копирани';
+$messages['errordeleting'] = 'ПиÑмото не може да бъде изтрито';
+$messages['errormarking'] = 'Съобщението не може да бъде маркирано';
+$messages['deletecontactconfirm'] = 'ИÑкате ли да изтриете маркираните контакти?';
+$messages['deletegroupconfirm'] = 'ИÑкате ли да изтриете избраната група?';
+$messages['deletemessagesconfirm'] = 'ИÑкате ли да изтриете маркираните ÑъобщениÑ?';
+$messages['deletefolderconfirm'] = 'ИÑкате ли да изтриете тази папка?';
+$messages['purgefolderconfirm'] = 'ИÑкате ли да изтриете вÑички пиÑма в тази папка?';
+$messages['contactdeleting'] = 'Изтриване на контакт(и)...';
$messages['groupdeleting'] = 'Изтриване на група...';
$messages['folderdeleting'] = 'Изтриване на папка...';
$messages['foldermoving'] = 'ПремеÑтване на папка...';
-$messages['foldersubscribing'] = 'Ðбониране за папка...';
-$messages['folderunsubscribing'] = 'ОтпиÑване от папка...';
-$messages['formincomplete'] = 'Ðе Ñте попълнили вÑички полета.';
-$messages['noemailwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ валиден e-mail адреÑ.';
-$messages['nonamewarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име.';
-$messages['nopagesizewarning'] = 'Въведете брой редове на Ñтраница.';
-$messages['nosenderwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ валиден e-mail Ð°Ð´Ñ€ÐµÑ Ð½Ð° подателÑ.';
-$messages['norecipientwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ поне един получател.';
-$messages['nosubjectwarning'] = 'Полето "Заглавие" е празно. Желаете ли да въведете заглавие Ñега?';
+$messages['foldersubscribing'] = 'Ðбониране...';
+$messages['folderunsubscribing'] = 'ОтпиÑване на папка...';
+$messages['formincomplete'] = 'Ðе Ñте попълнили вÑички полета';
+$messages['noemailwarning'] = 'МолÑ, въведете валиден e-mail адреÑ';
+$messages['nonamewarning'] = 'МолÑ, въведете име';
+$messages['nopagesizewarning'] = 'Въведете брой редове на Ñтраница';
+$messages['nosenderwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ валиден e-mail Ð°Ð´Ñ€ÐµÑ Ð½Ð° подателÑ';
+$messages['norecipientwarning'] = 'Въведете поне един получател';
+$messages['nosubjectwarning'] = 'Полето "Заглавие" е празно. ИÑкате ли да въведете заглавие?';
$messages['nobodywarning'] = 'Изпрати това пиÑмо без текÑÑ‚?';
-$messages['notsentwarning'] = 'ПиÑмото не е изпратено. Желаете ли да бъде унищожено?';
-$messages['noldapserver'] = 'Изберете LDAP Ñървър за Ñ‚ÑŠÑ€Ñене.';
-$messages['nosearchname'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име на контакта или e-mail адреÑ.';
+$messages['notsentwarning'] = 'ПиÑмото не е изпратено. ИÑкате ли да бъде унищожено?';
+$messages['noldapserver'] = 'Изберете LDAP Ñървър за Ñ‚ÑŠÑ€Ñене';
+$messages['nosearchname'] = 'МолÑ, въведете Име на контакта или e-mail адреÑ';
$messages['notuploadedwarning'] = 'Ð’Ñе още не Ñа качени вÑички прикачени файлове. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ или откажете качването.';
-$messages['searchsuccessful'] = '$nr пиÑма намерени.';
-$messages['contactsearchsuccessful'] = '$nr контакта намерени.';
-$messages['searchnomatch'] = 'ÐÑма ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñ‚ÑŠÑ€Ñенето.';
+$messages['searchsuccessful'] = '$nr намерени пиÑма';
+$messages['contactsearchsuccessful'] = '$nr намерени контакти.';
+$messages['searchnomatch'] = 'ТърÑенето не откри ÑъвпадениÑ';
$messages['searching'] = 'ТърÑене...';
$messages['checking'] = 'Проверка...';
-$messages['nospellerrors'] = 'Ðе Ñа открити правопиÑни грешки.';
-$messages['folderdeleted'] = 'Папката е изтрита уÑпешно.';
-$messages['foldersubscribed'] = 'Ðбонирането за папката е уÑпешно.';
-$messages['folderunsubscribed'] = 'ОтпиÑването от папката е уÑпешно.';
-$messages['folderpurged'] = 'Папката е изпразнена уÑпешно.';
-$messages['folderexpunged'] = 'УплътнÑване данни на папката е уÑпешно.';
-$messages['deletedsuccessfully'] = 'Изтриването е уÑпешно.';
-$messages['converting'] = 'Премахване форматиране на пиÑмото...';
-$messages['messageopenerror'] = 'Ðевъзможно зареждане на пиÑмото от Ñървъра.';
-$messages['fileuploaderror'] = 'Грешка при качване на файл.';
-$messages['filesizeerror'] = 'ПрикачениÑÑ‚ файл надвишава лимита от $size.';
-$messages['copysuccess'] = 'УÑпешно копирани $nr контакта.';
-$messages['movesuccess'] = 'УÑпешно премеÑтени $nr контакта.';
-$messages['copyerror'] = 'Ðевъзможно копиране на контакти.';
-$messages['moveerror'] = 'Ðевъзможно премеÑтване на контакти.';
-$messages['sourceisreadonly'] = 'Този източник на адреÑи е Ñамо за четене.';
-$messages['errorsavingcontact'] = 'Грешка при запиÑване на адреÑа.';
-$messages['movingmessage'] = 'ПремеÑтване на пиÑма...';
-$messages['copyingmessage'] = 'Копиране на пиÑма...';
-$messages['copyingcontact'] = 'Копиране на контакти...';
-$messages['movingcontact'] = 'ПремеÑтване на контакти...';
-$messages['deletingmessage'] = 'Изтриване на пиÑма...';
-$messages['markingmessage'] = 'Маркиране на пиÑма...';
-$messages['addingmember'] = 'ДобавÑне на контакти в групата...';
-$messages['removingmember'] = 'Премахване на контакти от групата...';
-$messages['receiptsent'] = 'Обратната разпиÑка е изпратена уÑпешно.';
-$messages['errorsendingreceipt'] = 'Ðевъзможно изпращането на обратна разпиÑка.';
+$messages['nospellerrors'] = 'Ðе Ñа открити правопиÑни грешки';
+$messages['folderdeleted'] = 'Папката е изтрита';
+$messages['foldersubscribed'] = 'Ðбонирането уÑпешно';
+$messages['folderunsubscribed'] = 'ОтпиÑването уÑпешно';
+$messages['folderpurged'] = 'Папката е изпразнена';
+$messages['folderexpunged'] = 'УплътнÑването уÑпешно';
+$messages['deletedsuccessfully'] = 'Изтриването е уÑпешно';
+$messages['converting'] = 'Премахване форматирането на пиÑмото...';
+$messages['messageopenerror'] = 'ПиÑмото не може да бъде заредено от Ñървъра';
+$messages['fileuploaderror'] = 'Грешка при прикачването на файла';
+$messages['filesizeerror'] = 'ПрикачениÑÑ‚ файл надвишава лимита от $size';
+$messages['copysuccess'] = 'УÑпешно копирани $nr адреÑа';
+$messages['copyerror'] = 'Грешка при копирането на адреÑите';
+$messages['sourceisreadonly'] = 'Този източник на адреÑи е Ñамо за четене';
+$messages['errorsavingcontact'] = 'Грешка при запиÑването на адреÑа';
+$messages['movingmessage'] = 'ПремеÑтване на Ñъобщение...';
+$messages['copyingmessage'] = 'Копиране на Ñъобщение(Ñ)...';
+$messages['copyingcontact'] = 'Копиране на контакт(и)...';
+$messages['deletingmessage'] = 'Изтриване на Ñъобщение(Ñ)...';
+$messages['markingmessage'] = 'Маркиране на Ñъобщение(Ñ)...';
+$messages['addingmember'] = 'ДобавÑне на контакт(и) в групата...';
+$messages['removingmember'] = 'Премахване на контакт(и) от групата...';
+$messages['receiptsent'] = 'Обратната разпиÑка е изпратена.';
+$messages['errorsendingreceipt'] = 'Грешка при изпращането на обратна разпиÑка.';
$messages['deleteidentityconfirm'] = 'ÐаиÑтина ли желаете да изтриете тази ÑамоличноÑÑ‚?';
-$messages['nodeletelastidentity'] = 'Ðевъзможно изтриване на тази ÑамоличноÑÑ‚, Ñ‚Ñ€Ñбва да имате поне една.';
-$messages['forbiddencharacter'] = 'Името на папка Ñъдържа непозволени Ñимволи.';
-$messages['selectimportfile'] = 'ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ файл за качване.';
-$messages['addresswriterror'] = 'Избраната адреÑна книга не може да бъде модифицирана.';
-$messages['contactaddedtogroup'] = 'Контактите бÑха добавени към групата уÑпешно.';
-$messages['contactremovedfromgroup'] = 'Контактите бÑха премахнати от групата уÑпешно.';
-$messages['nogroupassignmentschanged'] = 'ÐÑма променени групови задачи.';
-$messages['importwait'] = 'Импортиране, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...';
-$messages['importformaterror'] = 'ÐеуÑпешен импорт! Данните в качениÑÑ‚ файл не Ñа във валиден формат.';
+$messages['nodeletelastidentity'] = 'Ðе можете да изтриете тази ÑамоличноÑÑ‚, Ñ‚Ñ€Ñбва да имате поне една.';
+$messages['forbiddencharacter'] = 'Името на папката Ñъдържа непозволени Ñимволи';
+$messages['selectimportfile'] = 'ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ файл за качване';
+$messages['addresswriterror'] = 'Избраната адреÑна книга не може да бъде запиÑвана';
+$messages['contactaddedtogroup'] = 'Контактите бÑха уÑпешно добавени към групата';
+$messages['contactremovedfromgroup'] = 'Контактите бÑха уÑпешно премахнати от групата';
+$messages['nogroupassignmentschanged'] = 'ÐÑма променени групи.';
+$messages['importwait'] = 'Импорт, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...';
+$messages['importformaterror'] = 'Импорта пропадна! КачениÑÑ‚ файл не е Ñ Ð²Ð°Ð»Ð¸Ð´Ð½Ð¸ данни.';
$messages['importconfirm'] = '<b>УÑпешно Ñа импортирани $inserted контакта, вече ÑъщеÑтвуващите $skipped контакта Ñа пропуÑнати</b>:<p><em>$names</em></p>';
-$messages['importconfirmskipped'] = '<b>ПропуÑнати Ñа $skipped ÑъщеÑтвуващи запиÑи</b>';
-$messages['importmessagesuccess'] = 'УÑпешно импортирани $nr пиÑма';
-$messages['importmessageerror'] = 'ÐеуÑпешен импорт! КачениÑÑ‚ файл не е валиден файл на пиÑма или пощенÑка кутиÑ';
-$messages['opnotpermitted'] = 'Ðепозволена операциÑ!';
-$messages['nofromaddress'] = 'ЛипÑва e-mail Ð°Ð´Ñ€ÐµÑ Ð·Ð° избраната ÑамоличноÑÑ‚.';
-$messages['editorwarning'] = 'Превключването на редактора в текÑтов режим ще доведе до загуба на форматирането на текÑта. Сигурни ли Ñте, че желаете да продължите?';
-$messages['httpreceivedencrypterror'] = 'Фатална конфигурационна грешка. ÐœÐ¾Ð»Ñ Ñвържете Ñе Ñ Ð’Ð°ÑˆÐ¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратор. <b>ПиÑмото не може да бъде изпратено.</b>';
-$messages['smtpconnerror'] = 'SMTP грешка ($code): ÐÑма връзка ÑÑŠÑ Ñървъра.';
-$messages['smtpautherror'] = 'SMTP грешка ($code): Грешни потребител/парола.';
-$messages['smtpfromerror'] = 'SMTP грешка ($code): Ðе може да бъде изпратено пиÑмо от "$from" ($msg).';
-$messages['smtptoerror'] = 'SMTP грешка ($code): Ðе може да бъде изпратено пиÑмо до "$to" ($msg).';
-$messages['smtprecipientserror'] = 'SMTP грешка: Ðе може да бъде обработен ÑпиÑъка Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ð¸.';
+$messages['importconfirmskipped'] = 'b>СъщеÑтвуващите запиÑи $skipped Ñа пропуÑнати</b>';
+$messages['opnotpermitted'] = 'ОперациÑта не е позволена!';
+$messages['nofromaddress'] = 'ЛипÑва e-mail Ð°Ð´Ñ€ÐµÑ Ð·Ð° избраната ÑамоличноÑÑ‚';
+$messages['editorwarning'] = 'Превключването на редактора в текÑтов режим ще доведе до загуба на форматирането на текÑа. Сигурни ли Ñте, че иÑкате да продължите?';
+$messages['httpreceivedencrypterror'] = 'Фатална конфигурационна грешка. МолÑ, Ñвържете Ñе веднага Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора. <b>Съобщението Ви не може да бъде изпратено.</b>';
+$messages['smtpconnerror'] = 'SMTP грешка ($code): ÐÑма връзка ÑÑŠÑ Ñървъра';
+$messages['smtpautherror'] = 'SMTP грешка ($code): Грешни потребител/парола';
+$messages['smtpfromerror'] = 'SMTP грешка ($code): Ðе може да бъде изпратено пиÑмо от "$from" ($msg)';
+$messages['smtptoerror'] = 'SMTP грешка ($code): Ðе може да бъде изпратено пиÑмо до "$to" ($msg)';
+$messages['smtprecipientserror'] = 'SMTP грешка: Ðе може да бъде обработен ÑпиÑъка Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ð¸';
$messages['smtperror'] = 'SMTP грешка: $msg';
$messages['emailformaterror'] = 'Ðевалиден e-mail адреÑ: $email';
$messages['toomanyrecipients'] = 'Прекалено много адреÑи за изпращане (макÑимум: $max).';
-$messages['maxgroupmembersreached'] = 'БроÑÑ‚ на членовете на групата е повече от макÑималниÑ: $max.';
-$messages['internalerror'] = 'Възникна вътрешна грешка. ÐœÐ¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ отново.';
-$messages['contactdelerror'] = 'Ðевъзможно изтриване на контакти.';
-$messages['contactdeleted'] = 'Контактът беше изтрит уÑпешно.';
-$messages['contactrestoreerror'] = 'ÐеуÑпешно възÑтановÑване на изтрите контакти.';
-$messages['contactrestored'] = 'Контактът е възÑтановен уÑпешно.';
-$messages['groupdeleted'] = 'Групата беше изтрита уÑпешно.';
-$messages['grouprenamed'] = 'Групата беше преименувана уÑпешно.';
-$messages['groupcreated'] = 'Групата беше Ñъздадена уÑпешно.';
-$messages['savedsearchdeleted'] = 'Запазаните филтри Ñа изтрити уÑпешно.';
-$messages['savedsearchdeleteerror'] = 'Ðевъзможно изтриване на запазените филтри.';
-$messages['savedsearchcreated'] = 'Запазените филтри Ñа Ñъздадени уÑпешно.';
-$messages['savedsearchcreateerror'] = 'Ðевъзможно Ñъздаване на запазен филтър.';
-$messages['messagedeleted'] = 'ПиÑмото е изтрито уÑпешно.';
-$messages['messagemoved'] = 'ПиÑмото е премеÑтено уÑпешно.';
-$messages['messagecopied'] = 'ПиÑмото е копирано уÑпешно.';
-$messages['messagemarked'] = 'ПиÑмото е маркирано уÑпешно.';
-$messages['autocompletechars'] = 'Въведете минимум $min знака, за да започне автоматичното попълване.';
-$messages['autocompletemore'] = 'Ðамерените ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ñа прекалено много. ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ повече текÑÑ‚.';
-$messages['namecannotbeempty'] = 'Полето за име не може да бъде празно.';
-$messages['nametoolong'] = 'Името е прекалено дълго.';
-$messages['folderupdated'] = 'Папката е модифицирана уÑпешно.';
-$messages['foldercreated'] = 'Папката е Ñъздадена уÑпешно.';
-$messages['invalidimageformat'] = 'Ðевалиден формат на изображението.';
-$messages['mispellingsfound'] = 'Ð’ пиÑмото Ñа намерени правопиÑни грешки.';
-$messages['parentnotwritable'] = 'ÐеуÑпешно Ñъздаването/премеÑтването на папка в избраната оÑновна папка. ÐÑма права за доÑтъп.';
-$messages['messagetoobig'] = 'ПиÑмото е прекалено голÑмо, за да бъде обработено.';
-$messages['attachmentvalidationerror'] = 'Ð’ÐИМÐÐИЕ! ПрикачениÑÑ‚ файл е опаÑен, защото типът му не Ñъвпада Ñ Ñ‚Ð¾Ð·Ð¸, който е деклариран в пиÑмото.<br/><br/><em>Очакван тип: $expected; открит тип: $detected</em>';
-$messages['noscriptwarning'] = 'Ð’ÐИМÐÐИЕ! Тази пощенÑка уÑлуга изиÑква JavaScript за да функционира коректно. ÐœÐ¾Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÑ‚Ðµ поддръжката на JavaScript в наÑтройките на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€.';
+$messages['maxgroupmembersreached'] = 'Ð‘Ñ€Ð¾Ñ Ð½Ð° членовете на групата е повече от макÑималниÑ: $max.';
+$messages['internalerror'] = 'Възникна вътрешна грешка. ÐœÐ¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ отново';
+$messages['contactdelerror'] = 'Ðе мога да Ð¸Ð·Ñ‚Ñ€Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð°';
+$messages['contactdeleted'] = 'Контактът беше изтрит';
+$messages['contactrestoreerror'] = 'ÐеуÑпешно възÑтановÑване на изтрите контакт(и).';
+$messages['contactrestored'] = 'Контактът(-ите) Ñа възÑтановени уÑпешно';
+$messages['groupdeleted'] = 'Групата беше изтрита';
+$messages['grouprenamed'] = 'Групата беше преименувана';
+$messages['groupcreated'] = 'Групата беше Ñъздадена';
+$messages['savedsearchdeleted'] = 'Запазаните Ñ‚ÑŠÑ€ÑÐµÐ½Ð¸Ñ Ñа изтрити уÑпешно.';
+$messages['savedsearchdeleteerror'] = 'Изтриването на запазените Ñ‚ÑŠÑ€ÑÐµÐ½Ð¸Ñ Ðµ неуÑпешно.';
+$messages['savedsearchcreated'] = 'Запазените Ñ‚ÑŠÑ€ÑÐµÐ½Ð¸Ñ Ñа Ñъздадени уÑпешно.';
+$messages['savedsearchcreateerror'] = 'Създаването на запазено Ñ‚ÑŠÑ€Ñене е неуÑпешно';
+$messages['messagedeleted'] = 'Съобщението беше изтрито';
+$messages['messagemoved'] = 'Съобщението беше премеÑтено';
+$messages['messagecopied'] = 'Съобщението беше копирано';
+$messages['messagemarked'] = 'Съобщението беше маркирано';
+$messages['autocompletechars'] = 'Въведете минимум $min знака, за да започне автоматичното попълване';
+$messages['autocompletemore'] = 'Ðамерените ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ñа прекалено много. ÐœÐ¾Ð»Ñ Ð½Ð°Ð¿Ð¸ÑˆÐµÑ‚Ðµ още Ñимволи.';
+$messages['namecannotbeempty'] = 'Полето за име не може да бъде празно';
+$messages['nametoolong'] = 'Името е прекалено дълго';
+$messages['folderupdated'] = 'Папката е обновена';
+$messages['foldercreated'] = 'Папката е Ñъздадена';
+$messages['invalidimageformat'] = 'Ðевалиден формат на изображението';
+$messages['mispellingsfound'] = 'Ð’ Ñъобщението Ñа намерени правопиÑни грешки.';
+$messages['parentnotwritable'] = 'Създаването/премеÑтването на папка в избраната родителÑка папка е неуÑпешно. ÐÑма права за доÑтъп.';
+$messages['messagetoobig'] = 'Съобщението е прекалено голÑмо, за да бъде обработено.';
+$messages['attachmentvalidationerror'] = 'Ð’ÐИМÐÐИЕ! ПрикачениÑÑ‚ файл е опаÑен, защото типа му не Ñъвпада Ñ Ñ‚Ð¾Ð·Ð¸ деклариран в Ñъобщението.<br/><br/><em>Очакван: $expected; открит: $detected</em>';
+$messages['noscriptwarning'] = 'Ð’ÐИМÐÐИЕ! Тази пощенÑка уÑлуга изиÑква JavaScript за да функционира, Ð¼Ð¾Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÑ‚Ðµ поддръжката на JavaScript в наÑтройките на браузъра Ви.';
+
?>
diff --git a/program/localization/bn_BD/labels.inc b/program/localization/bn_BD/labels.inc
index c0b7ad3a7..a0866a3a7 100644
--- a/program/localization/bn_BD/labels.inc
+++ b/program/localization/bn_BD/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'সà§à¦¬à¦¾à¦—তম';
$labels['username'] = 'গà§à¦°à¦¾à¦¹à¦• নাম (username)';
$labels['password'] = 'গোপোন শবà§à¦¦ (password)';
$labels['server'] = 'সারভার';
$labels['login'] = 'পà§à¦°à¦¬à§‡à¦¶';
+
+// taskbar
$labels['logout'] = 'পà§à¦°à¦¸à§à¦¥à¦¾à¦¨';
$labels['mail'] = 'ই-মেইল';
$labels['settings'] = 'বà§à¦¯à¦¾à¦•à§à¦¤à¦¿à¦—ত খà§à¦Ÿà¦¿à¦¨à¦¾à¦Ÿà¦¿';
$labels['addressbook'] = 'ঠিকানার বই';
+
+// mailbox names
$labels['inbox'] = 'পà§à¦°à¦§à¦¾à¦¨ বাকà§à¦¸';
$labels['drafts'] = 'খসড়া';
$labels['sent'] = 'পà§à¦°à§‡à¦°à¦¿à¦¤(পাঠানো মেইল)';
$labels['trash'] = 'ডাসà§à¦Ÿà¦¬à¦¿à¦¨';
$labels['junk'] = 'আজেবাজে মেইল';
+
+// message listing
$labels['subject'] = 'বিষয়';
$labels['from'] = 'পà§à¦°à§‡à¦°à¦•';
+$labels['sender'] = 'Sender';
$labels['to'] = 'পà§à¦°à¦¾à¦ªà¦•';
$labels['cc'] = 'অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা';
$labels['bcc'] = 'নাজানিয়ে অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা';
$labels['replyto'] = 'উতà§à¦¤à¦° পাঠানোর ঠিকানা';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'তারিখ';
$labels['size'] = 'সাইজ';
$labels['priority'] = 'গà§à¦°à§à¦¤à§à¦¬';
$labels['organization'] = 'কোমà§à¦ªà¦¾à¦¨à¦¿';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸';
$labels['messagesfromto'] = '$count মেইলের মধà§à¦¯à§‡, $from হতে $to দেখানো হচà§à¦›à§‡';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = '$nr #মেইল/চিঠি , $count à¦à¦° মধà§à¦¯à§‡';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা';
+$labels['move'] = 'Move';
$labels['moveto'] = 'সরিয়ে ফেলà§à¦¨..';
$labels['download'] = 'ডাউনলোড';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ফাইলের নাম';
$labels['filesize'] = 'ফাইলের সাইজ';
+
$labels['addtoaddressbook'] = 'ঠিকানার বইতে ঢà§à¦•à¦¾à¦¨';
+
+// weekdays short
$labels['sun'] = 'রবি';
$labels['mon'] = 'সোম';
$labels['tue'] = 'মঙà§à¦—ল';
@@ -55,6 +81,8 @@ $labels['wed'] = 'বà§à¦§';
$labels['thu'] = 'বৃহ:';
$labels['fri'] = 'শà§à¦•à§à¦°';
$labels['sat'] = 'শনি';
+
+// weekdays long
$labels['sunday'] = 'রবিবার';
$labels['monday'] = 'সোমবার';
$labels['tuesday'] = 'মঙà§à¦—লবার';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'বà§à¦§à¦¬à¦¾à¦°';
$labels['thursday'] = 'বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°';
$labels['friday'] = 'শà§à¦•à§à¦°à¦¬à¦¾à¦°';
$labels['saturday'] = 'শনিবার';
+
+// months short
$labels['jan'] = 'জানà§à§Ÿà¦¾à¦°à¦¿';
$labels['feb'] = 'ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿';
$labels['mar'] = 'মারà§à¦š';
@@ -74,6 +104,8 @@ $labels['sep'] = 'সেপà§à¦¤à§‡à¦®à¦¬à¦¾à¦°';
$labels['oct'] = 'অষà§à¦Ÿà¦¬à¦¾à¦°';
$labels['nov'] = 'নবেমবার';
$labels['dec'] = 'দিশেমবার';
+
+// months long
$labels['longjan'] = 'জানà§à§Ÿà¦¾à¦°à¦¿';
$labels['longfeb'] = 'ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿';
$labels['longmar'] = 'মারà§à¦š';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'সেপà§à¦¤à§‡à¦®à¦¬à¦¾à¦° (September)';
$labels['longoct'] = 'অষà§à¦Ÿà¦¬à¦¾à¦° (October)';
$labels['longnov'] = 'নবেমবার (November)';
$labels['longdec'] = 'দিশেমবার (December)';
+
$labels['today'] = 'আজকে';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'দেখà§à¦¨ নতà§à¦¨ কোনো মেইল/চিঠি à¦à¦²à§‹ কিনা';
$labels['compose'] = 'নতà§à¦¨ মেইল/চিঠি লিখà§à¦¨';
$labels['writenewmessage'] = 'নতà§à¦¨ মেইল/চিঠি লিখà§à¦¨';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'শà§à¦§à§ পà§à¦°à§‡à¦°à¦•à§‡à¦° কাছে উতà§à¦¤à¦° পাঠান';
$labels['replytoallmessage'] = 'পà§à¦°à§‡à¦°à¦• ও à¦à¦‡ চিঠির অনà§à¦¯à¦¾à¦¨à§à¦¯ পà§à¦°à¦¾à¦ªà¦•à¦¦à§‡à¦° কাছে উতà§à¦¤à¦° পাঠান';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'মেইল/চিঠি à¦à¦—িয়ে দিন';
$labels['deletemessage'] = 'মেইল/চিঠি ছিড়ে ফেলà§à¦¨';
$labels['movemessagetotrash'] = 'মেইল/চিঠি ডাসà§à¦Ÿà¦¬à¦¿à¦¨à§‡ ফেলà§à¦¨';
@@ -102,98 +144,250 @@ $labels['nextmessage'] = 'পরের মেইল/চিঠিটি দà
$labels['lastmessage'] = 'শেষ মেইল/চিঠিটি দেখà§à¦¨';
$labels['backtolist'] = 'মেইল/চিঠির তালিকায় ফিরে যান';
$labels['viewsource'] = 'মূল উৎসদেখà§à¦¨';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'মেইল/চিঠি (গà§à¦²à§‹)';
$labels['markread'] = 'পড়া শেষ (read)';
$labels['markunread'] = 'নাদেখা (unread)';
$labels['markflagged'] = 'দাগানো (flagged)';
$labels['markunflagged'] = 'দাগহীন (unflagged)';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'বেছেনিন';
$labels['all'] = 'সবগà§à¦²à§‹';
$labels['none'] = 'কোনোটাই না';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'নাদেখা (unread)';
$labels['flagged'] = 'দাগানো (flagged)';
$labels['unanswered'] = 'উতà§à¦¤à¦° না দেওয়া গà§à¦²à§‹';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
$labels['filter'] = 'ছাকনি';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'কোনোটাই না';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'টাইটকরà§à¦¨';
$labels['empty'] = 'খালিকরà§à¦¨';
+
$labels['quota'] = 'ডিসà§à¦• ঠখালি যায়গা';
$labels['unknown'] = 'অজানা';
$labels['unlimited'] = 'সীমাহীন';
+
$labels['quicksearch'] = 'à¦à¦Ÿà¦•à¦°à§‡ খোজা';
$labels['resetsearch'] = 'নতà§à¦¨à¦•à¦°à§‡ খà§à¦œà§à¦¨';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'নতà§à¦¨ উইনà§à¦¡à§‹ তে দেখà§à¦¨';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'à¦à¦–à§à¦¨à¦¿ মেইল / চিঠিটি পাঠান';
$labels['savemessage'] = 'খসড়া হিসাবে জমা করে রাখà§à¦¨';
$labels['addattachment'] = 'à¦à¦•à¦Ÿà¦¾ ফাইল জà§à§œà§‡ দিন চিঠির সাথে';
$labels['charset'] = 'Charset';
$labels['editortype'] = 'Editor type';
$labels['returnreceipt'] = 'ফিরতি রসিদ';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Check spelling';
$labels['resumeediting'] = 'Resume editing';
$labels['revertto'] = 'Revert to';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'জà§à§œà§‡ দেওয়া ফাইল (Attachments)';
$labels['upload'] = 'উঠায় দেন';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'বনà§à¦§ করà§à¦¨';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Low';
$labels['lowest'] = 'Lowest';
$labels['normal'] = 'Normal';
$labels['high'] = 'High';
$labels['highest'] = 'Highest';
+
$labels['nosubject'] = '(বিষয়হীন)';
$labels['showimages'] = 'ছবি দেখান';
$labels['alwaysshow'] = 'সবসময় $sender à¦à¦° কাছে থেকে পাওয়া ছবিগà§à¦²à§‹ দেখানো হোক';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'খালি লেখা দেখà§à¦¨';
$labels['savesentmessagein'] = 'পাঠানো চিঠি/মেইল জমা করà§à¦¨ >>';
$labels['dontsave'] = 'জমিয়ে রাখা লাগবে না';
$labels['maxuploadsize'] = 'ফাইল উঠানোর সরà§à¦¬à§‹à¦šà§à¦š সাইজ $size';
+
$labels['addcc'] = 'অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা ঢà§à¦•à¦¾à¦¨';
$labels['addbcc'] = 'নাজানিয়ে অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা ঢà§à¦•à¦¾à¦¨';
$labels['addreplyto'] = 'উতà§à¦¤à¦° পাঠানোর ঠিকানা ঢà§à¦•à¦¾à¦¨';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'পà§à¦°à¦¾à¦ªà¦• আপনার কাছে মেইল/চিঠিটা যে পেয়েছেন তার ফিরতি রসিদ চেয়েছেন। আপনি কি ফিরতি রসিদ টা পাঠাবেন?';
$labels['receiptread'] = 'মেইল/চিঠি যে পেয়েছেন তার ফিরতি রসিদ';
$labels['yourmessage'] = 'নিচে রয়েছে আপনার চিঠিটা যে পà§à¦°à¦¾à¦ªà¦• পেয়েছেন তার রসিদ';
$labels['receiptnote'] = 'à¦à¦‡ রসিদ খালি à¦à¦¤à¦Ÿà§à¦•à§ পà§à¦°à¦®à¦¾à¦¨ করে যে পà§à¦°à¦¾à¦ªà¦• চিঠিটি পেয়েছেন। কিনà§à¦¤à§ তিনি ঠিকমতো পড়তে পেরেছেন কিনা অথবা তিনি পড়ে বà§à¦à¦¤à§‡ পেরেছেন কিনা তার কোনো পà§à¦°à¦®à¦¾à¦¨ নেই।';
+
+// address boook
$labels['name'] = 'নাম';
$labels['firstname'] = 'নামের পà§à¦°à¦¥à¦®à¦¾à¦‚শ';
$labels['surname'] = 'নামের শেষাংশ';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'ই-মেইল/চিঠি';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'নতà§à¦¨ ঠিকানা ঢà§à¦•à¦¾à¦¨';
$labels['editcontact'] = 'à¦à¦•à¦Ÿà¦¾ ঠিকানা বদলান';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'বদলান';
$labels['cancel'] = 'বাতিল';
$labels['save'] = 'জমা দিন';
$labels['delete'] = 'ফেলে দিন';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'à¦à¦•à¦Ÿà¦¾ নতà§à¦¨ ঠিকানার কারà§à¦¡ বানান';
$labels['deletecontact'] = 'বেছে নেওয়া ঠিকানা গà§à¦²à§‹ ফেলে দিন';
$labels['composeto'] = 'চিঠি পাঠাবেন কার কাছে?';
$labels['contactsfromto'] = '$count ঠিকানার মধà§à¦¯à§‡ $from থেকে $to টা';
$labels['print'] = 'পà§à¦°à¦¿à¦¨à§à¦Ÿ করà§à¦¨';
$labels['export'] = 'রপà§à¦¤à¦¾à¦¨à¦¿ করà§à¦¨';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'রপà§à¦¤à¦¾à¦¨à¦¿ করà§à¦¨ vCard আকারে';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'আগের গà§à¦²à§‹ দেখান';
$labels['firstpage'] = 'পà§à¦°à¦¥à¦® গà§à¦²à§‹ দেখান';
$labels['nextpage'] = 'পরের গà§à¦²à§‹ দেখান';
$labels['lastpage'] = 'শেষের গà§à¦²à§‹ দেখান';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'গà§à¦°à§à¦ª';
$labels['personaladrbook'] = 'নিজের ঠিকানা';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'আমদানি করà§à¦¨';
$labels['importcontacts'] = 'ঠিকানা আমদানি করà§à¦¨';
$labels['importfromfile'] = 'ফাইলের থেকে ঠিকানা আমদানি করà§à¦¨';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'পà§à¦°à§‹ ঠিকানার বইটি খালি করে নতà§à¦¨ ঠিকানা গà§à¦²à§‹ ভরà§à¦¨';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'শেষ';
+
+// settings
$labels['settingsfor'] = 'খà§à¦Ÿà¦¿à¦¨à¦¾à¦Ÿà¦¿';
+$labels['about'] = 'About';
$labels['preferences'] = 'পছনà§à¦¦';
$labels['userpreferences'] = 'গà§à¦°à¦¾à¦¹à¦• পছনà§à¦¦';
$labels['editpreferences'] = 'গà§à¦°à¦¾à¦¹à¦• পছনà§à¦¦ বদলান';
+
$labels['identities'] = 'পরিচিতি';
$labels['manageidentities'] = 'à¦à¦‡ অà§à¦¯à¦¾à¦•à¦‰à¦¨à§à¦Ÿà§‡à¦° "পরচিতি" বদলান';
$labels['newidentity'] = 'নতà§à¦¨ পরিচিতি';
+
$labels['newitem'] = 'নতà§à¦¨ জিনিষ';
$labels['edititem'] = 'জিনিষ বদলান';
+
$labels['preferhtml'] = 'HTML ঠদেখি';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML মেইল/চিঠি';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'তারিখ ভালো করে দেখা যাবে';
$labels['setdefault'] = 'à¦à¦‡à¦Ÿà¦¾à¦‡ আসল';
$labels['autodetect'] = 'কমà§à¦ªà§à¦Ÿà¦¾à¦° নিজেনিজি বেছে নেবে';
@@ -202,8 +396,13 @@ $labels['timezone'] = 'সময়ভিতà§à¦¤à¦¿à¦• à¦à¦²à¦¾à¦•à¦¾';
$labels['pagesize'] = 'পà§à¦°à¦¤à¦¿ পৃষà§à¦ à¦¾à§Ÿ লাইন সংখà§à¦¯à¦¾';
$labels['signature'] = 'সà§à¦¬à¦¾à¦•à§à¦·à¦°';
$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML ঠমেইল/চিঠি লিখà§à¦¨';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML ঠসà§à¦¬à¦¾à¦•à§à¦·à¦°';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'ছোটোকরে দেখার জায়গা';
$labels['skin'] = 'মেইলবকà§à¦¸ à¦à¦° পà§à¦°à§‹à¦Ÿà¦¾à¦° চেহারা';
$labels['logoutclear'] = 'বেরহবার সময় ডাসà§à¦Ÿà¦¬à¦¿à¦¨ অটোমেটিক খালি হবে';
@@ -214,26 +413,69 @@ $labels['mailboxview'] = 'মেইলবকà§à¦¸ দেখার কায়দà
$labels['mdnrequests'] = 'পà§à¦°à§‡à¦°à¦• নোটিশ পাঠালে কি করা হবে?';
$labels['askuser'] = 'আমি গà§à¦°à¦¾à¦¹à¦•, আমাকে জিজà§à¦žà¦¾à¦¸à¦¾ করà§à¦¨';
$labels['autosend'] = 'কমà§à¦ªà§à¦Ÿà¦¾à¦° নিজেনিজি ফিরতি নোটিশ পাঠায় দেবে';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'পাতà§à¦¤à¦¾ দেওয়া হবেনা';
$labels['readwhendeleted'] = 'ফেলে দেবার সময় মেইল/চিঠি পড়া হয়ে গেছে হিসাবে ধরে নেওয়া হবে';
$labels['flagfordeletion'] = 'à¦à¦•à§‡à¦¬à¦¾à¦°à§‡à¦‡ ফেলে না দিয়ে মেইল/চিঠি গà§à¦²à§‹à¦•à§‡ দাগিয়ে রাখà§à¦¨ ফেলে দেবার জনà§à¦¯à§‡';
$labels['skipdeleted'] = 'ফেলে দেওয়া মেইল/চিঠি দেখানোর দরকার নেই';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'মেইলে অনà§à¦¯ ওয়েবসাইট থেকে আসা ছবি থাকলে তা দেখা যাবে';
$labels['fromknownsenders'] = 'পরিচিত পà§à¦°à§‡à¦°à¦• à¦à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡';
$labels['always'] = 'সবসময়';
$labels['showinlineimages'] = 'মেইলের সাথে জোড়া লাগানো ছবি, মেইলের নিচে দেখা যাবে';
$labels['autosavedraft'] = 'নিজেনিজি খসড়া জমা হয়ে যাবে';
$labels['everynminutes'] = 'পà§à¦°à¦¤à¦¿ $n মিনিটে';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'কখোনোই না';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'মেইল/চিঠি দেখা যাচà§à¦›à§‡';
$labels['messagescomposition'] = 'মেইল/চিঠি লেখা হচà§à¦›à§‡';
$labels['mimeparamfolding'] = 'জà§à§œà§‡ দেওয়া জিনিষের নাম';
$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'জটিল বিষয়';
$labels['focusonnewmessage'] = 'নতà§à¦¨ মেইল à¦à¦²à§‡à¦‡ তা হাইলাইট হয়ে যাবে';
$labels['checkallfolders'] = 'সবগà§à¦²à§‹ মেইলবকà§à¦¸à§‡ নতà§à¦¨ চিঠি খোজা হবে';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸';
$labels['folders'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸';
$labels['foldername'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ à¦à¦° নাম';
@@ -243,11 +485,54 @@ $labels['create'] = 'পà§à¦°à¦¸à§à¦¤à§à¦¤ করà§à¦¨';
$labels['createfolder'] = 'নতà§à¦¨ ফোলà§à¦¡à¦¾à¦° / মেইলবকà§à¦¸ পà§à¦°à¦¸à§à¦¤à§à¦¤ করà§à¦¨';
$labels['managefolders'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ গà§à¦²à§‹ কে গà§à¦›à¦¾à¦¨';
$labels['specialfolders'] = 'বিশেষ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'সাজান';
$labels['sortasc'] = 'কম থেকে বেশি হিসাবে সাজান';
$labels['sortdesc'] = 'বেশি থেকে কম হিসাবে সাজান';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'বাইট';
$labels['KB'] = 'কিলোবাইট';
$labels['MB'] = 'মেগাবাইট';
$labels['GB'] = 'গিগাবাইট';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/bn_BD/messages.inc b/program/localization/bn_BD/messages.inc
index ac744edee..44d5fcc60 100644
--- a/program/localization/bn_BD/messages.inc
+++ b/program/localization/bn_BD/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'ঢোকা গেল না';
$messages['cookiesdisabled'] = 'আপনার বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°, কà§à¦•à¦¿ গà§à¦°à¦¹à¦¨ করে না';
$messages['sessionerror'] = 'আপনার সেশন শেষ';
$messages['storageerror'] = 'মেইল সারভার à¦à¦° সাথে যোগাযোগ করা গেল না';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'à¦à¦‡ মেইলবকà§à¦¸à§‡ কোনো চিঠি নাই';
$messages['loggedout'] = 'আপনের সেশন ঠিকঠাক মতো শেষ হইছে। শà§à¦­à¦¬à¦¿à¦¦à¦¾à§Ÿà¥¤';
$messages['mailboxempty'] = 'মেইলবকà§à¦¸ খালি';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'কমà§à¦ªà§à¦Ÿà¦¾à¦° কাজ করতেছে . .';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'কমà§à¦ªà§à¦Ÿà¦¾à¦° তথà§à¦¯ আনছে আপনার জনà§à¦¯..';
$messages['checkingmail'] = 'নতà§à¦¨ চিঠি আসছে কিনা তা দেখা হচà§à¦›à§‡';
$messages['sendingmessage'] = 'চিঠি পাঠায় দেওয়া হচà§à¦›à§‡';
@@ -32,20 +48,31 @@ $messages['messagesaved'] = 'চিঠি খসড়া হিসাবে জম
$messages['successfullysaved'] = 'ঠিকঠাকমতো জমা হয়ে গিয়েছে';
$messages['addedsuccessfully'] = 'নতà§à¦¨ ঠিকানা ঠিকঠাক মতো ঢোকানো হয়ে গেছে';
$messages['contactexists'] = 'à¦à¦•à¦‡ ই-মেইল ঠআরেকটা নাম ঠিকানা তালিকায় আছে';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'আপনার গোপনীয়তা রকà§à¦·à¦¾à¦° জনà§à¦¯ আমরা ছবি গà§à¦²à§‹ সরিয়ে রেখেছি';
$messages['encryptedmessage'] = 'à¦à¦Ÿà¦¾ à¦à¦•à¦Ÿà¦¿ গোপন (encrypted) চিঠি। à¦à¦Ÿà¦¾ আপনাকে দেখানো যাবে না। দà§à§à¦ƒà¦–িত।';
$messages['nocontactsfound'] = 'কোনো ঠিকানা পাওয়া গেলনা। দà§à§à¦ƒà¦–িত।';
$messages['contactnotfound'] = 'আপনি যে ঠিকানা খà§à¦œà¦›à§‡à¦¨ সেটা পাওয়া গেল না';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'চিঠি পাঠানো গেলনা';
$messages['senttooquickly'] = 'à¦à¦‡ চিঠি পাঠানোর আগে, দয়া করে $sec সেকেনà§à¦¡';
+$messages['errorsavingsent'] = 'পà§à¦°à§‡à¦°à¦¿à¦¤ চিঠি হিসাবে জমা রাখার সময় à¦à¦•à¦Ÿà¦¾ à¦à¦¾à¦®à§‡à¦²à¦¾ হয়েছে';
+$messages['errorsaving'] = 'জমা করার সময় à¦à¦•à¦Ÿà¦¾ à¦à¦¾à¦®à§‡à¦²à¦¾ হয়েছে';
$messages['errormoving'] = 'চিঠিটা সরানো গেলো না';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'চিঠিটা ফেলানো গেলো না';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'আপনি কি আসলেই à¦à¦‡ ঠিকানা(গà§à¦²à§‹) ফেলো দিতে চান?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'আপনি কি আসলেই à¦à¦‡ চিঠি(গà§à¦²à§‹) ফেলো দিতে চান?';
$messages['deletefolderconfirm'] = 'আপনি কি আসলেই à¦à¦‡ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ফেলো দিতে চান?';
$messages['purgefolderconfirm'] = 'আপনি কি আসলেই à¦à¦‡ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ à¦à¦° সব চিঠি ফেলো দিতে চান?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ফেলে দেওয়া হচà§à¦›à§‡';
$messages['foldermoving'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ সরানো হচà§à¦›à§‡';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'আপনি সবগà§à¦²à§‹ জিনিষ লেখেননি';
$messages['noemailwarning'] = 'à¦à¦•à¦Ÿà¦¿ সঠিক ই-মেইল লিখà§à¦¨';
$messages['nonamewarning'] = 'দয়া করে নামটি লিখà§à¦¨';
@@ -57,29 +84,88 @@ $messages['nobodywarning'] = 'কোনো কিছৠনা লিখেই à
$messages['notsentwarning'] = 'চিঠি পাঠানো হয়নি। চিঠিটা কি বাতিল করে দেবেন?';
$messages['noldapserver'] = 'দয়া করে à¦à¦•à¦Ÿà¦¿ à¦à¦²à§à¦¡à¦¾à¦ª সারভার বেছে নিন সারà§à¦š করার জনà§à¦¯à§‡';
$messages['nosearchname'] = 'দয়া করে à¦à¦•à¦œà¦¨à§‡à¦° নাম অথবা ই-মেইল লিখà§à¦¨';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr টা চিঠি পাওয়া গেছে';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'খà§à¦œà§‡ কিছৠপাওয়া গেলোনা';
$messages['searching'] = 'খà§à¦œà¦›à¦¿ ....';
$messages['checking'] = 'দেখছি ...';
$messages['nospellerrors'] = 'No spelling errors found';
$messages['folderdeleted'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ঠিকঠাকমতো ফেলানো হয়ে গেছে';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'ঠিকঠাকমতো ফেলানো হয়ে গেছে';
$messages['converting'] = 'বিনà§à¦¯à¦¾à¦¸ (formatting) সরানো হচà§à¦›à§‡ ..';
$messages['messageopenerror'] = 'সারভার থেকে চিঠি আনা গেলোনা';
$messages['fileuploaderror'] = 'ফাইলটা সারভারে উঠানো গেলোনা';
$messages['filesizeerror'] = 'যে ফাইলটা উঠানোর চেষà§à¦Ÿà¦¾ করলেন সেটি সরà§à¦¬à§‹à¦šà§à¦š সাইজ $size à¦à¦° থেকে বেশি';
+$messages['copysuccess'] = 'ঠিকঠাকমতো $nr ঠিকানা নকল করে নেওয়া গেছে';
+$messages['copyerror'] = 'কোনো ঠিকানা তোলা গেলোনা';
$messages['sourceisreadonly'] = 'à¦à¦‡à¦ à¦¿à¦•à¦¾à¦¨à¦¾à¦Ÿà¦¾ খালি পড়ার জনà§à¦¯à§‡';
$messages['errorsavingcontact'] = 'ঠিকানা জমা রাখা গেলোনা';
$messages['movingmessage'] = 'চিঠি সরানো হচà§à¦›à§‡..';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'ঠিকঠাক মতো ফিরতি রশিদ পাঠানো হয়েছে';
$messages['errorsendingreceipt'] = 'রশিদ পাঠানো গেলোনা';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'আপনি à¦à¦‡ পরিচিতি ফেলতে পারবেন না কারন à¦à¦‡à¦Ÿà¦¾à§Ÿ বরà§à¦¤à¦®à¦¾à¦¨à§‡ আপনার à¦à¦•à¦®à¦¾à¦¤à§à¦° পরিচিতি।';
$messages['forbiddencharacter'] = 'ফোলà§à¦¡à¦¾à¦° à¦à¦° নামের মধà§à¦¯à§‡ নিষিদà§à¦§ অকà§à¦·à¦° আছে';
$messages['selectimportfile'] = 'à¦à¦•à¦Ÿà¦¾ ফাইল বেছে নিন তোলার জনà§à¦¯';
$messages['addresswriterror'] = 'বেছে নেওয়া ঠিকানার বইটিতে লেখাযায় না';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'আমদানি করা হচà§à¦›à§‡à¥¤ à¦à¦•à¦Ÿà§ অপেকà§à¦·à¦¾ করà§à¦¨...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>ঠিকমতো $inserted ঠিকানা আমদানি করা গেছে, $skipped ঠিকানা আগের থেকেই ছিলো বলে তাদের টা যা ছিলো তাই রাখা হয়েছে</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'à¦à¦‡ কাজটা করার অনà§à¦®à¦¤à¦¿ নাই আপনার';
$messages['nofromaddress'] = 'বেছে নেওয়া যে পরিচিতিটা, তাতে ই-মেইল নেই';
$messages['editorwarning'] = 'যদি আপনি শà§à¦§à§ লেখার সà§à¦Ÿà¦¾à¦‡à¦²à§‡ যান তাহলে বরà§à¦¤à¦®à¦¾à¦¨à§‡à¦° কোনো বিনà§à¦¯à¦¾à¦¸ হারিয়ে যাবে';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/br/labels.inc b/program/localization/br/labels.inc
index d503d1f4c..537a887df 100644
--- a/program/localization/br/labels.inc
+++ b/program/localization/br/labels.inc
@@ -15,46 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Degemer mat war $product';
$labels['username'] = 'Anv an arveriad';
$labels['password'] = 'Ger-Tremen';
$labels['server'] = 'Dafariad';
$labels['login'] = 'Kennaskañ';
+
+// taskbar
$labels['logout'] = 'Digennaskañ';
$labels['mail'] = 'Postel elektronek';
$labels['settings'] = 'Arventennoù';
$labels['addressbook'] = 'Karned chomlec\'hioù';
+
+// mailbox names
$labels['inbox'] = 'Boest degemer';
$labels['drafts'] = 'Brouilhedoù';
$labels['sent'] = 'Kaset';
$labels['trash'] = 'Pod-lastez';
$labels['junk'] = 'Stroboù';
+
+// message listing
$labels['subject'] = 'Sujed';
$labels['from'] = 'Eus';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Da';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Cci';
$labels['replyto'] = 'Respont-da';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Deiz';
$labels['size'] = 'Ment';
$labels['priority'] = 'Kentwir';
$labels['organization'] = 'Aozadur';
$labels['readstatus'] = 'Stad al lenn';
$labels['listoptions'] = 'Dibarzhioù ar roll...';
+
$labels['mailboxlist'] = 'Teuliadoù';
$labels['messagesfromto'] = 'Kemennadoù eus $from da $to war $count';
$labels['threadsfromto'] = 'Sujedoù $from da $to war $count';
$labels['messagenrof'] = 'Kemennad $nr war $count';
$labels['fromtoshort'] = '$from - $to war $count';
+
$labels['copy'] = 'Eilañ';
$labels['move'] = 'Dilec\'hiañ';
$labels['moveto'] = 'Dilec\'hiañ da...';
$labels['download'] = 'Pellgargañ';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Diskouez';
$labels['showanyway'] = 'Diskouez anezhañ memestra';
+
$labels['filename'] = 'Anv ar restr';
$labels['filesize'] = 'Ment ar restr';
+
$labels['addtoaddressbook'] = 'Ouzhpennañ er c\'harned chomlec\'hioù';
+
+// weekdays short
$labels['sun'] = 'Sul';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Meu';
@@ -62,6 +81,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Yao';
$labels['fri'] = 'Gwe';
$labels['sat'] = 'Sad';
+
+// weekdays long
$labels['sunday'] = 'Sul';
$labels['monday'] = 'Lun';
$labels['tuesday'] = 'Meurzh';
@@ -69,6 +90,8 @@ $labels['wednesday'] = 'Merc\'her';
$labels['thursday'] = 'Yaou';
$labels['friday'] = 'Gwener';
$labels['saturday'] = 'Sadorn';
+
+// months short
$labels['jan'] = 'Gen';
$labels['feb'] = 'C\'hwe';
$labels['mar'] = 'Meu';
@@ -81,6 +104,8 @@ $labels['sep'] = 'Gwe';
$labels['oct'] = 'Her';
$labels['nov'] = 'Du';
$labels['dec'] = 'Ker';
+
+// months long
$labels['longjan'] = 'Genver';
$labels['longfeb'] = 'C\'hwevrer';
$labels['longmar'] = 'Meurzh';
@@ -93,7 +118,10 @@ $labels['longsep'] = 'Gwengolo';
$labels['longoct'] = 'Here';
$labels['longnov'] = 'Du';
$labels['longdec'] = 'Kerzu';
+
$labels['today'] = 'Hiziv';
+
+// toolbar buttons
$labels['refresh'] = 'Azgrenaat';
$labels['checkmail'] = 'Gwiriañ kemennadoù nevez';
$labels['compose'] = 'Skrivañ ur c\'hemennad nevez';
@@ -103,8 +131,12 @@ $labels['replytomessage'] = 'Respont d\'ar kaser';
$labels['replytoallmessage'] = 'Respont d\'an holl';
$labels['replyall'] = 'Respont d\'an holl';
$labels['replylist'] = 'Respont d\'ar roll';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Treuzkas ar c\'hemennad';
$labels['deletemessage'] = 'Dilec\'hiañ ar c\'hemennad er pod-lastez';
+$labels['movemessagetotrash'] = 'Move message to trash';
$labels['printmessage'] = 'Moulañ ar c\'hemennad-se';
$labels['previousmessage'] = 'Gwelout ar c"hemennad a-raok';
$labels['firstmessage'] = 'Gwelout ar c\'hemennad kentañ';
@@ -112,93 +144,395 @@ $labels['nextmessage'] = 'Gwelout ar c\'hemennad da heul';
$labels['lastmessage'] = 'Gwelout ar c\'hemennad diwezhañ';
$labels['backtolist'] = 'Distreiñ el listenn kemennadoù';
$labels['viewsource'] = 'Gwelout an tarzh';
+$labels['mark'] = 'Mark';
+$labels['markmessages'] = 'Mark messages';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'Diuzañ';
$labels['all'] = 'An holl';
$labels['none'] = 'Ebet';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Na lennet';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'Ebet';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Stummaat';
$labels['empty'] = 'Skarzhañ';
+
$labels['quota'] = 'Implijadur pladenn';
$labels['unknown'] = 'Dianav';
$labels['unlimited'] = 'didermen';
+
$labels['quicksearch'] = 'Klask prim';
$labels['resetsearch'] = 'Aderaouekaat ar glask';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Kas ar c\'hemennad diouzhtu';
$labels['savemessage'] = 'Gwarediñ ar brouilhed-se';
$labels['addattachment'] = 'Stagañ ur restr';
$labels['charset'] = 'Engodadur';
$labels['editortype'] = 'Furmad aozer';
$labels['returnreceipt'] = 'Testeni degemer';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Gwiriañ ar reizhskrivadur';
$labels['resumeediting'] = 'Distreiñ en aozer';
$labels['revertto'] = 'Distreiñ en/r';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Restroù staget';
$labels['upload'] = 'Stagañ';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Serriñ';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Izel';
$labels['lowest'] = 'An izelañ';
$labels['normal'] = 'Reizh';
$labels['high'] = 'Uhel';
$labels['highest'] = 'An uhelañ';
+
$labels['nosubject'] = '(n\'eus ket sujed)';
$labels['showimages'] = 'Diskouez ar skeudennoù';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'testenn kriz';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
$labels['name'] = 'Anv da ziskouez';
$labels['firstname'] = 'Raganv';
$labels['surname'] = 'Anv';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'Postel elektronek';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Ouzhpennañ an darempred diuzet en hor c\'harned chomlec\'hioù';
$labels['editcontact'] = 'Cheñch an darempred';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Cheñch';
$labels['cancel'] = 'Nullañ';
$labels['save'] = 'Gwarediñ';
$labels['delete'] = 'Dilemel';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Krouiñ un darempred nevez';
$labels['deletecontact'] = 'Dilemel an darempredoù diuzet';
$labels['composeto'] = 'Skrivañ ur c\'hemennad ouzh';
$labels['contactsfromto'] = 'Darempredoù eus $from ouzh $to war $count';
$labels['print'] = 'Moulañ';
$labels['export'] = 'Ezporzhiañ';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Diskouez pajenn a-raok';
$labels['firstpage'] = 'Gwelout ar bajenn gentañ';
$labels['nextpage'] = 'Diskouez pajenn da heul';
$labels['lastpage'] = 'Gwelout ar bajenn diwezhañ';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Strolladoù';
$labels['personaladrbook'] = 'Chomlec\'h personel';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'Arventennoù evit';
+$labels['about'] = 'About';
$labels['preferences'] = 'Dibarzhioù';
$labels['userpreferences'] = 'Dibarzhioù implijer';
$labels['editpreferences'] = 'Cheñch dibarzhioù implijer';
+
$labels['identities'] = 'Identelezhioù';
$labels['manageidentities'] = 'Merañ an identelezhioù evit ar c\'hont-se';
$labels['newidentity'] = 'Identelezh nevez';
+
$labels['newitem'] = 'Elfenn nevez';
$labels['edititem'] = 'Cheñch an elfenn';
+
$labels['preferhtml'] = 'Diskouez en HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Kemennad en HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Diskouez berr deizioù';
$labels['setdefault'] = 'Arventennoù dre ziouer';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Yezh';
$labels['timezone'] = 'Gwerzhid-eur';
$labels['pagesize'] = 'Niver a linenn dre bajenn';
$labels['signature'] = 'Sinadur';
$labels['dstactive'] = 'Eur an hañv';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Sevel ur c\'hemennad er furmad HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Sinadur HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Diskouez panel alberz';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'Gwarediñ emgefre brouilhedoù';
$labels['everynminutes'] = 'Bep $n munutoù';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'ebet';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Renkell';
$labels['folders'] = 'Teuliadoù';
$labels['foldername'] = 'Anv ar renkell';
$labels['subscribed'] = 'Koumananer';
+$labels['messagecount'] = 'Messages';
$labels['create'] = 'Krouiñ';
$labels['createfolder'] = 'Krouiñ ur renkell nevez';
$labels['managefolders'] = 'Aozañ ar renkelloù';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Rummañ dre';
$labels['sortasc'] = 'Rumm diagentad';
$labels['sortdesc'] = 'Rumm diskennad';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/br/messages.inc b/program/localization/br/messages.inc
index 7f724a24d..c1988577d 100644
--- a/program/localization/br/messages.inc
+++ b/program/localization/br/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Degouezhet ez eus bet ur fazi !';
$messages['loginfailed'] = 'C\'hwitadenn war kennaskañ';
$messages['cookiesdisabled'] = 'N\'eus ket c\'hoant toupinoù Hor merder';
@@ -23,10 +25,20 @@ $messages['storageerror'] = 'C\'hwitadenn war kennaskañ ouzh an dafariad mirout
$messages['servererror'] = 'Fazi dafariad !';
$messages['servererrormsg'] = 'Fazi dafariad : $msg';
$messages['dberror'] = 'Fazi stlennvon !';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Kemennadoù ebet er voest lizhiri';
$messages['loggedout'] = 'Digevreet hoc\'h eus mat. Kenavo !';
$messages['mailboxempty'] = 'Boest lizhiri dileun';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'O kargañ...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'O kargañ roadennoù...';
$messages['checkingmail'] = 'O Gwiriañ kemennadoù nevez...';
$messages['sendingmessage'] = 'O kas ar c\'hemennad...';
@@ -36,38 +48,124 @@ $messages['messagesaved'] = 'Kemennad gwaredet dindan Brouilhedoù';
$messages['successfullysaved'] = 'Gwarediñ graet';
$messages['addedsuccessfully'] = 'Darempred ouzhpennet er c\'harned chomlec\'hioù';
$messages['contactexists'] = 'Bout a ra un darempred gant memes postel elektronek';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Evit gwarantiñ hoc\'h buhez prevez, stanket eo bet skeudennoù pell er c\'hemennad-se.';
$messages['encryptedmessage'] = 'Rineget eo ar c\'hemennad, ha ne c\'hall ket bezañ diskouez. Ma Digarezit !';
$messages['nocontactsfound'] = 'N\'eo ket bet kavet darempred ebet';
$messages['contactnotfound'] = 'N\'eo ket bet kavet an darempred goulennet';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'N\'eo ket bet kaset ar c\'hemennad';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Fazi en deus graet reuz en hoc\'h gwarediñ';
$messages['errormoving'] = 'N\'eus ket tu da zilec\'hiañ ar c\'hemennad';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'N\'eus ket tu da zilemel ar c\'hemennad';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'C\'hoant hoc\'h eus da zilemel an darempred(où) diuzet ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'C\'hoant hoc\'h eus da zilemel ar c\'hemennad(où) diuzet ?';
$messages['deletefolderconfirm'] = 'C\'hoant hoc\'h eus da skarzhañ ar renkell-se ?';
$messages['purgefolderconfirm'] = 'C\'hoant hoc\'h eus da skarzhañ an holl kemennad eus ar renkell-se ?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'N\'eo ket leuniet ar furmskrid penn-da-benn';
$messages['noemailwarning'] = 'Termenit ur postel elektronek mat mar plij ganeoc\'h';
$messages['nonamewarning'] = 'Termenit un anv mar plij ganeoc\'h';
$messages['nopagesizewarning'] = 'Termenit ur ment pajenn mar plij ganeoc\'h';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Ouzhpennit ur resever da nebeutañ mar plij ganeoc\'h';
$messages['nosubjectwarning'] = 'Dileun eo ar maezienn « Sujed » . C\'hoant hoc\'h eus da leuniañ anezhiñ diouzhtu ?';
$messages['nobodywarning'] = 'Kas ar c\'hemennad hep testenn ?';
$messages['notsentwarning'] = 'N\'eo ket bet kaset ar c\'hemennad. C\'hoant hoc\'h eus dilezel ar c\'hemennad-se ?';
$messages['noldapserver'] = 'Dizuit ur servijer LDAP evit ar glask';
$messages['nosearchname'] = 'Skrivit un anv darempred pe ur postel elektronek';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr kemennad kavet';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Disoc\'h ebet gant ar glask';
$messages['searching'] = 'O klask...';
$messages['checking'] = 'O gwiriañ...';
$messages['nospellerrors'] = 'Fazi ebet kavet';
$messages['folderdeleted'] = 'Renkell skarzhet';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'Dilemet mat';
$messages['converting'] = 'O tilemel furmaozañ...';
$messages['messageopenerror'] = 'N\'us ket tu da gargañ ar c\'hemennad adalek ar servijer';
$messages['fileuploaderror'] = 'Fazi o treuzkas ar restr';
$messages['filesizeerror'] = 'Re vras eo ar restr treuzkaset $size';
+$messages['copysuccess'] = 'Kopiañ mat $nr chomlec\'h';
+$messages['copyerror'] = 'Ne c\'hall ket kopiañ chomlec\'hioù';
$messages['sourceisreadonly'] = 'Lenn hepken eo an tarzh chomlec\'h se';
$messages['errorsavingcontact'] = 'Ne c\'haller ket gwarediñ chomlec\'h darempred';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/bs_BA/labels.inc b/program/localization/bs_BA/labels.inc
index df58d8d60..5afdcad1f 100644
--- a/program/localization/bs_BA/labels.inc
+++ b/program/localization/bs_BA/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Dobrodošli u $product';
$labels['username'] = 'Korisnik';
$labels['password'] = 'Å ifra';
$labels['server'] = 'Server';
$labels['login'] = 'Prijava';
+
+// taskbar
$labels['logout'] = 'Odjava';
$labels['mail'] = 'Email';
$labels['settings'] = 'Podešavanja';
$labels['addressbook'] = 'Adresar';
+
+// mailbox names
$labels['inbox'] = 'SanduÄe';
$labels['drafts'] = 'Skice';
$labels['sent'] = 'Poslano';
$labels['trash'] = 'Smeće';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Prikaži prava imena specijalnih foldera';
+
+// message listing
$labels['subject'] = 'Naslov';
$labels['from'] = 'Od';
$labels['sender'] = 'Pošiljalac';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organizacija';
$labels['readstatus'] = 'Status poruke';
$labels['listoptions'] = 'Izlistaj opcije...';
+
$labels['mailboxlist'] = 'Folderi';
$labels['messagesfromto'] = 'Poruke od $from do $to od ukupno $count';
$labels['threadsfromto'] = 'Teme od $from do $to od ukupno $count';
$labels['messagenrof'] = 'Poruka broj $nr od $count';
$labels['fromtoshort'] = '$from – $to od ukupno $count';
+
$labels['copy'] = 'Kopiraj';
$labels['move'] = 'Premjesti';
$labels['moveto'] = 'Premjesti u...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Preuzmi';
$labels['open'] = 'Otvori';
$labels['showattachment'] = 'Prikaži';
$labels['showanyway'] = 'Ipak prikaži';
+
$labels['filename'] = 'Ime datoteke';
$labels['filesize'] = 'VeliÄina datoteke';
+
$labels['addtoaddressbook'] = 'Dodaj u adresar';
+
+// weekdays short
$labels['sun'] = 'Ned';
$labels['mon'] = 'Pon';
$labels['tue'] = 'Uto';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Sri';
$labels['thu'] = 'ÄŒet';
$labels['fri'] = 'Pet';
$labels['sat'] = 'Sub';
+
+// weekdays long
$labels['sunday'] = 'Nedjelja';
$labels['monday'] = 'Ponedjeljak';
$labels['tuesday'] = 'Utorak';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Srijeda';
$labels['thursday'] = 'ÄŒetvrtak';
$labels['friday'] = 'Petak';
$labels['saturday'] = 'Subota';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'Mart';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Septembar';
$labels['longoct'] = 'Oktobar';
$labels['longnov'] = 'Novembar';
$labels['longdec'] = 'Decembar';
+
$labels['today'] = 'Danas';
+
+// toolbar buttons
$labels['refresh'] = 'Osvježi';
$labels['checkmail'] = 'Provjeri ima li novih poruka';
$labels['compose'] = 'Nova poruka';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Više akcija...';
$labels['more'] = 'Više';
$labels['back'] = 'Nazad';
$labels['options'] = 'Opcije';
+
$labels['select'] = 'Odaberi';
$labels['all'] = 'Sve';
$labels['none'] = 'Ništa';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Proširi sve';
$labels['expand-unread'] = 'ProÅ¡iri neproÄitane';
$labels['collapse-all'] = 'Zatvori sve';
$labels['threaded'] = 'Teme';
+
$labels['autoexpand_threads'] = 'Proširi teme poruka';
$labels['do_expand'] = 'sve teme';
$labels['expand_only_unread'] = 'samo sa neproÄitanim porukama';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Lista kolona';
$labels['listsorting'] = 'Sortiranje kolona';
$labels['listorder'] = 'Raspored sortiranja';
$labels['listmode'] = 'NaÄin prikaza liste';
+
$labels['folderactions'] = 'Akcije za foldere...';
$labels['compact'] = 'Optimiziraj';
$labels['empty'] = 'Isprazni';
-$labels['importmessages'] = 'Uvezi poruke';
+
$labels['quota'] = 'Zauzeće diska';
$labels['unknown'] = 'nepoznato';
$labels['unlimited'] = 'neograniÄeno';
+
$labels['quicksearch'] = 'Brza pretraga';
$labels['resetsearch'] = 'Resetuj pretragu';
$labels['searchmod'] = 'Modifikacija pretrage';
$labels['msgtext'] = 'Cijela poruka';
$labels['body'] = 'Tijelo';
-$labels['type'] = 'Vrsta';
-$labels['namex'] = 'Ime';
+
$labels['openinextwin'] = 'Otvori u novom prozoru';
$labels['emlsave'] = 'Preuzmi (.eml)';
$labels['changeformattext'] = 'Prikaži kao obiÄni tekst';
$labels['changeformathtml'] = 'Prikaži kao HTML';
+
+// message compose
$labels['editasnew'] = 'Uredi kao novo';
$labels['send'] = 'Pošalji';
$labels['sendmessage'] = 'Pošalji poruku';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Potvrda o prispijeću poruke';
$labels['dsn'] = 'Obavještenje o statusu dostave';
$labels['mailreplyintro'] = '$date, $sender je napisao/la:';
$labels['originalmessage'] = 'Originalna poruka';
+
$labels['editidents'] = 'Uredi identitete';
-$labels['spellcheck'] = 'Pravopis';
+$labels['spellcheck'] = 'Spelovanje';
$labels['checkspelling'] = 'Provjera pravopisa';
$labels['resumeediting'] = 'Nastavi uređivanje';
$labels['revertto'] = 'Vrati na';
+
$labels['attach'] = 'Priloži';
$labels['attachments'] = 'Prilozi';
$labels['upload'] = 'Dodaj';
$labels['uploadprogress'] = '$percent ($current od $total)';
$labels['close'] = 'Zatvori';
$labels['messageoptions'] = 'Opcije poruke...';
+
$labels['low'] = 'Nizak';
$labels['lowest'] = 'Najniži';
$labels['normal'] = 'Normalan';
$labels['high'] = 'Visok';
$labels['highest'] = 'Najveći';
+
$labels['nosubject'] = '(bez naslova)';
$labels['showimages'] = 'Prikaži slike';
$labels['alwaysshow'] = 'Uvijek prikaži slike od $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Ovo je skica.';
$labels['andnmore'] = 'još $nr...';
$labels['togglemoreheaders'] = 'Prikaži još zaglavlja poruka';
$labels['togglefullheaders'] = 'Aktiviranje izvornih zaglavlja poruka';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ObiÄni tekst';
$labels['savesentmessagein'] = 'SaÄuvaj poslane poruke u';
$labels['dontsave'] = 'ne snimaj';
$labels['maxuploadsize'] = 'Maksimalna dozvoljena veliÄina datoteke je $size';
+
$labels['addcc'] = 'Dodaj Cc';
$labels['addbcc'] = 'Dodaj Bcc';
$labels['addreplyto'] = 'Dodaj odgovor na';
$labels['addfollowupto'] = 'Dodaj praćenje za';
+
+// mdn
$labels['mdnrequest'] = 'PoÅ¡iljaoc ove poruke je tražio da bude obavijeÅ¡ten kada proÄitate ovu poruku. Želite li obavijestiti poÅ¡iljaoca?';
$labels['receiptread'] = 'Povratnica (proÄitano)';
$labels['yourmessage'] = 'Ovo je povratnica vaše poruke';
$labels['receiptnote'] = 'Napomena: Ova povratnica samo potvrÄ‘uje da je poruka bila prikazana na raÄunaru primaoca. Nema garancija da je primaoc proÄitao ili razumio sadržaj poruke.';
+
+// address boook
$labels['name'] = 'Ime za prikaz';
$labels['firstname'] = 'Ime';
$labels['surname'] = 'Prezime';
@@ -262,6 +301,7 @@ $labels['search'] = 'Pretraga';
$labels['advsearch'] = 'Napredna pretraga';
$labels['advanced'] = 'Napredno';
$labels['other'] = 'Ostalo';
+
$labels['typehome'] = 'Kućni broj';
$labels['typework'] = 'Poslovni broj';
$labels['typeother'] = 'Ostalo';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Pomoćnik';
$labels['typehomepage'] = 'PoÄetna stranica';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Dodaj polje...';
$labels['addcontact'] = 'Dodaj novi kontakt';
$labels['editcontact'] = 'Uredi kontakt';
$labels['contacts'] = 'Kontakti';
$labels['contactproperties'] = 'Svojstva kontakta';
$labels['personalinfo'] = 'LiÄni podaci';
+
$labels['edit'] = 'Uredi';
$labels['cancel'] = 'Otkaži';
$labels['save'] = 'SaÄuvaj';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Preimenuj';
$labels['addphoto'] = 'Dodaj';
$labels['replacephoto'] = 'Zamijeni';
$labels['uploadphoto'] = 'Dodaj fotografiju';
+
$labels['newcontact'] = 'Dodaj novi kontakt';
$labels['deletecontact'] = 'Obriši odabrane kontakte';
$labels['composeto'] = 'Napiši email za';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Kreiraj novu grupu kontakata';
$labels['grouprename'] = 'Preimenuj grupu';
$labels['groupdelete'] = 'Obriši grupu';
$labels['groupremoveselected'] = 'Ukloni odabrane kontakte iz grupe';
+
$labels['previouspage'] = 'Prikaži prethodnu stranicu';
$labels['firstpage'] = 'Prikaži prvu stranicu';
$labels['nextpage'] = 'Prikaži sljedeću stranicu';
$labels['lastpage'] = 'Prikaži zadnju stranicu';
+
$labels['group'] = 'Grupa';
$labels['groups'] = 'Grupe';
-$labels['listgroup'] = 'Izlistaj Älanove grupe';
$labels['personaladrbook'] = 'LiÄne adrese';
+
$labels['searchsave'] = 'SaÄuvaj pretragu';
$labels['searchdelete'] = 'Obriši pretragu';
+
$labels['import'] = 'Uvoz';
$labels['importcontacts'] = 'Uvoz kontakata';
$labels['importfromfile'] = 'Uvoz iz datoteke:';
-$labels['importtarget'] = 'Dodaj kontakte u';
+$labels['importtarget'] = 'Dodaj novi kontakt u adresar:';
$labels['importreplace'] = 'Zamijeni cijeli adresar';
-$labels['importgroups'] = 'Uvezi grupne zadatke';
-$labels['importgroupsall'] = 'Sve (kreiraj grupe ako je potrebno)';
-$labels['importgroupsexisting'] = 'Samo za postojeće grupe';
$labels['importdesc'] = 'Kontakte možete dodati iz postojećeg adresara.<br/>Trenutno podržavamo uvoz adresara u formatima <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ili CSV (comma-separated).';
$labels['done'] = 'Završeno';
+
+// settings
$labels['settingsfor'] = 'Podešavanja za';
$labels['about'] = 'Informacije';
$labels['preferences'] = 'Podešavanja';
$labels['userpreferences'] = 'KorisniÄke opcije';
$labels['editpreferences'] = 'Uredi korisniÄke opcije';
+
$labels['identities'] = 'Identiteti';
$labels['manageidentities'] = 'Podesi identitete za ovaj raÄun';
$labels['newidentity'] = 'Dodaj identitet';
+
$labels['newitem'] = 'Nova stavka';
$labels['edititem'] = 'Uredi stavku';
+
$labels['preferhtml'] = 'Prikaži HTML';
$labels['defaultcharset'] = 'Glavni skup znakova';
$labels['htmlmessage'] = 'HTML poruke';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Zanemari rijeÄi sa brojevima';
$labels['spellcheckignorecaps'] = 'Zanemari rijeÄi napisane velikim slovima';
$labels['addtodict'] = 'Dodaj u rjeÄnik';
$labels['mailtoprotohandler'] = 'Registruj upravljaÄ protokola za mailto: linkovi';
-$labels['standardwindows'] = 'Tretiraj popup-ove kao standardne prozore';
$labels['forwardmode'] = 'Prosljeđivanje poruka';
$labels['inline'] = 'u istom redu';
$labels['asattachment'] = 'kao prilog';
+
$labels['folder'] = 'Folder';
$labels['folders'] = 'Folderi';
$labels['foldername'] = 'Naziv foldera';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Vrsta foldera';
$labels['personalfolder'] = 'Privatni folder';
$labels['otherfolder'] = 'Folder drugog korisnika';
$labels['sharedfolder'] = 'Javni folder';
+
$labels['sortby'] = 'Sortiraj po';
$labels['sortasc'] = 'Sortiraj uzlazno';
$labels['sortdesc'] = 'Sortiraj silazno';
$labels['undo'] = 'Nazad';
+
$labels['installedplugins'] = 'Instalirani plugini';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Verzija';
$labels['source'] = 'Izvorni kod';
$labels['license'] = 'Licenca';
$labels['support'] = 'Podrška';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unikod';
$labels['english'] = 'engleski';
$labels['westerneuropean'] = 'Zapadna Evropa';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'vijetnamski';
$labels['japanese'] = 'japanski';
$labels['korean'] = 'korejski';
$labels['chinese'] = 'kineski';
+
?>
diff --git a/program/localization/bs_BA/messages.inc b/program/localization/bs_BA/messages.inc
index 9e0f083ff..7a1b26168 100644
--- a/program/localization/bs_BA/messages.inc
+++ b/program/localization/bs_BA/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Desila se greška!';
$messages['loginfailed'] = 'Prijava nije uspjela.';
$messages['cookiesdisabled'] = 'VaÅ¡ preglednik ne prihvata kolaÄiće.';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Uklanjam formatiranje...';
$messages['messageopenerror'] = 'Nije moguće uÄitati poruku sa servera.';
$messages['fileuploaderror'] = 'Dodavanje datoteke nije uspjelo.';
$messages['filesizeerror'] = 'Datoteka je prevelika. Maksimalna veliÄina je $size.';
-$messages['copysuccess'] = 'Uspješno kopirano $nr kontakata.';
-$messages['movesuccess'] = 'Uspješno premješteno $nr kontakata.';
-$messages['copyerror'] = 'Nije moguće kopirati kontakte.';
-$messages['moveerror'] = 'Nije moguće premjestiti kontakte.';
+$messages['copysuccess'] = 'Uspješno kopirano $n adresa.';
+$messages['copyerror'] = 'Nije moguće kopirati adrese.';
$messages['sourceisreadonly'] = 'Ovaj izvor adresa je samo za Äitanje.';
$messages['errorsavingcontact'] = 'Nije moguće saÄuvati kontakt adresu.';
$messages['movingmessage'] = 'Premještam poruke...';
$messages['copyingmessage'] = 'Kopiram poruke...';
$messages['copyingcontact'] = 'Kopiram kontakte...';
-$messages['movingcontact'] = 'Premještam kontakte...';
$messages['deletingmessage'] = 'Brišem poruke...';
$messages['markingmessage'] = 'OznaÄavam poruke...';
$messages['addingmember'] = 'Dodajem kontakte u grupu...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Uvoz u toku, molimo saÄekajte...';
$messages['importformaterror'] = 'Uvoz nije uspio! Dodana datoteka nije u ispravnom formatu za uvoz podataka.';
$messages['importconfirm'] = '<b>Uspješno je uvezeno $inserted kontakata</b>';
$messages['importconfirmskipped'] = '<b>PreskoÄeno $skipped postojećih unosa</b>';
-$messages['importmessagesuccess'] = 'Uspješno uvezeno $nr poruka';
-$messages['importmessageerror'] = 'Uvoz nije uspio! Dodana datoteke nije ispravna datoteka sa porukama';
$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
$messages['nofromaddress'] = 'U odabrani identitet nije upisana email adresa.';
$messages['editorwarning'] = 'Prebacivanje u obiÄni tekstualni ureÄ‘ivaÄ Ä‡e prouzrokovati gubljenje formatiranja teksta. Želite li nastaviti?';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'Nije moguće kreirati/premjestiti folder u oda
$messages['messagetoobig'] = 'Dio poruke je prevelik za procesiranje.';
$messages['attachmentvalidationerror'] = 'UPOZORENJE! Ovaj prilog je sumnjiv zbog toga Å¡to se njegov tip ne poklapa s tipom navedenim u poruci. Ako nemate povjerenja u poÅ¡iljaova, ne biste trebali da otvarate ovaj prilog u vaÅ¡em browseru jer bi on mogao da sadrži zlonamjerni sadržaj.<br/><br/><em>OÄekivano: $expected; pronaÄ‘eno: $detected</em>';
$messages['noscriptwarning'] = 'Upozorenje! Ovom webmail servisu je potreban Javascript! Da biste ga mogli koristiti, prvo je potrebno da omogućite Javascript u postavkama vašeg browsera.';
+
?>
diff --git a/program/localization/ca_ES/labels.inc b/program/localization/ca_ES/labels.inc
index a93b18434..3be753b68 100644
--- a/program/localization/ca_ES/labels.inc
+++ b/program/localization/ca_ES/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Benvingut a $product';
$labels['username'] = 'Nom d\'usuari';
$labels['password'] = 'Contrasenya';
$labels['server'] = 'Servidor';
$labels['login'] = 'Entra';
+
+// taskbar
$labels['logout'] = 'Tanca sessió';
$labels['mail'] = 'Correu';
$labels['settings'] = 'Configuració';
$labels['addressbook'] = 'Contactes';
+
+// mailbox names
$labels['inbox'] = 'Safata d\'entrada';
$labels['drafts'] = 'Esborranys';
$labels['sent'] = 'Enviats';
$labels['trash'] = 'Paperera';
$labels['junk'] = 'Correu brossa';
-$labels['show_real_foldernames'] = 'Mostra els noms reals a les carpetes especials';
+
+// message listing
$labels['subject'] = 'Assumpte';
$labels['from'] = 'Remitent';
$labels['sender'] = 'Remitent';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritat';
$labels['organization'] = 'Organització';
$labels['readstatus'] = 'Estat de lectura';
$labels['listoptions'] = 'Llista d\'opcions...';
+
$labels['mailboxlist'] = 'Carpetes';
$labels['messagesfromto'] = 'Missatges des de $from a $to de $count';
$labels['threadsfromto'] = 'Fils $from a $to de $count';
$labels['messagenrof'] = 'Missatge $nr de $count';
$labels['fromtoshort'] = '$from - $to de $count';
+
$labels['copy'] = 'Copia';
$labels['move'] = 'Mou';
$labels['moveto'] = 'Mou a...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Descarrega';
$labels['open'] = 'Obre';
$labels['showattachment'] = 'Mostra';
$labels['showanyway'] = 'Mostra-ho de totes maneres';
+
$labels['filename'] = 'Nom del fitxer';
$labels['filesize'] = 'Mida del fitxer';
+
$labels['addtoaddressbook'] = 'Afegeix a contactes';
+
+// weekdays short
$labels['sun'] = 'Diu';
$labels['mon'] = 'Dll';
$labels['tue'] = 'Dmt';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Dmc';
$labels['thu'] = 'Dij';
$labels['fri'] = 'Div';
$labels['sat'] = 'Dis';
+
+// weekdays long
$labels['sunday'] = 'Diumenge';
$labels['monday'] = 'Dilluns';
$labels['tuesday'] = 'Dimarts';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Dimecres';
$labels['thursday'] = 'Dijous';
$labels['friday'] = 'Divendres';
$labels['saturday'] = 'Dissabte';
+
+// months short
$labels['jan'] = 'gen';
$labels['feb'] = 'feb';
$labels['mar'] = 'mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'set';
$labels['oct'] = 'oct';
$labels['nov'] = 'nov';
$labels['dec'] = 'des';
+
+// months long
$labels['longjan'] = 'gener';
$labels['longfeb'] = 'febrer';
$labels['longmar'] = 'març';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'setembre';
$labels['longoct'] = 'octubre';
$labels['longnov'] = 'novembre';
$labels['longdec'] = 'desembre';
+
$labels['today'] = 'Avui';
+
+// toolbar buttons
$labels['refresh'] = 'Actualitza';
$labels['checkmail'] = 'Recupera missatges nous';
$labels['compose'] = 'Escriu un missatge';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Més accions...';
$labels['more'] = 'Més';
$labels['back'] = 'Torna';
$labels['options'] = 'Opcions';
+
$labels['select'] = 'Selecciona';
$labels['all'] = 'Tots';
$labels['none'] = 'Cap';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandeix tots';
$labels['expand-unread'] = 'Expandeix No llegits';
$labels['collapse-all'] = 'Redueix tots';
$labels['threaded'] = 'Encadenat';
+
$labels['autoexpand_threads'] = 'Expandeix els missatges encadenats';
$labels['do_expand'] = 'tots els fils de discusió';
$labels['expand_only_unread'] = 'només amb missatges no llegits';
@@ -163,26 +189,29 @@ $labels['listcolumns'] = 'Llista les columnes';
$labels['listsorting'] = 'Columna d\'ordenació';
$labels['listorder'] = 'Ordre d\'ordenació';
$labels['listmode'] = 'Mode de vista de llista';
+
$labels['folderactions'] = 'Accions de carpeta';
$labels['compact'] = 'Compacta';
$labels['empty'] = 'Buida';
-$labels['importmessages'] = 'Importa missatges';
+
$labels['quota'] = 'Ús del disc';
$labels['unknown'] = 'desconegut';
$labels['unlimited'] = 'il·limitat';
+
$labels['quicksearch'] = 'Cerca ràpida';
$labels['resetsearch'] = 'Neteja cerca';
$labels['searchmod'] = 'Cerca modificadors';
$labels['msgtext'] = 'Missatge sencer';
$labels['body'] = 'Cos';
-$labels['type'] = 'Tipus';
-$labels['namex'] = 'Nom';
+
$labels['openinextwin'] = 'Obre a una nova finestra';
$labels['emlsave'] = 'Descarrega (.eml)';
$labels['changeformattext'] = 'Mostra en format de text net';
$labels['changeformathtml'] = 'Mostra en format HTML';
+
+// message compose
$labels['editasnew'] = 'Edita com a nou';
-$labels['send'] = 'Envia';
+$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Envia el missatge';
$labels['savemessage'] = 'Desa aquest esborrany';
$labels['addattachment'] = 'Adjunta un fitxer';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Confirmació de recepció';
$labels['dsn'] = 'Notificació d\'estat de lliurament';
$labels['mailreplyintro'] = 'A $date, $sender escrigué:';
$labels['originalmessage'] = 'Missatge Original';
+
$labels['editidents'] = 'Edita identitats';
$labels['spellcheck'] = 'Ortografia';
$labels['checkspelling'] = 'Comprova l\'ortografia';
$labels['resumeediting'] = 'Reprèn l\'edició';
$labels['revertto'] = 'Torna a';
+
$labels['attach'] = 'Adjunta';
$labels['attachments'] = 'Adjuncions';
$labels['upload'] = 'Afegeix';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Tanca';
$labels['messageoptions'] = 'Opcions de missatge...';
+
$labels['low'] = 'Baixa';
$labels['lowest'] = 'La més baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'La més alta';
+
$labels['nosubject'] = '(sense assumpte)';
$labels['showimages'] = 'Mostra les imatges';
$labels['alwaysshow'] = 'Mostra sempre les imatges de $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Aquest és un missatge esborrany.';
$labels['andnmore'] = '$nr més...';
$labels['togglemoreheaders'] = 'Mostra més capçaleres del missatge';
$labels['togglefullheaders'] = 'Conmuta les capçaleres de text cru';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Text net';
$labels['savesentmessagein'] = 'Desa el missatge enviat a';
$labels['dontsave'] = 'no ho desis';
$labels['maxuploadsize'] = 'El mida màxima del fitxer és $size';
+
$labels['addcc'] = 'Afegeix Cc';
$labels['addbcc'] = 'Afegeix Bcc';
$labels['addreplyto'] = 'Afegeix Respon-A';
$labels['addfollowupto'] = 'Afegir Seguiment-A';
+
+// mdn
$labels['mdnrequest'] = 'El remitent d\'aquest missatge ha demanat ser notificat quan llegiu aquest missatge. Voleu notificar al remitent?';
$labels['receiptread'] = 'Confirmació de recepció';
$labels['yourmessage'] = 'Això és una confirmació de recepció per al vostre missatge';
$labels['receiptnote'] = 'Nota: Aquesta confirmació només indica que el missatge ha estat mostrat a l\'ordinador del destinatari. No hi ha garantia que el destinatari hagi llegit o entès el contingut del missatge.';
+
+// address boook
$labels['name'] = 'Nom a mostrar';
$labels['firstname'] = 'Nom';
$labels['surname'] = 'Cognom';
@@ -262,6 +301,7 @@ $labels['search'] = 'Cerca';
$labels['advsearch'] = 'Cerca Avançada';
$labels['advanced'] = 'Paràmetres avançats';
$labels['other'] = 'Un altre';
+
$labels['typehome'] = 'Casa';
$labels['typework'] = 'Feina';
$labels['typeother'] = 'Un altre';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Pàgina Inicial';
$labels['typeblog'] = 'Bloc';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Afegeix camp...';
$labels['addcontact'] = 'Afegeix un nou contacte';
$labels['editcontact'] = 'Edita el contacte';
$labels['contacts'] = 'Contactes';
$labels['contactproperties'] = 'Propietats del contacte';
$labels['personalinfo'] = 'Informació personal';
+
$labels['edit'] = 'Edita';
$labels['cancel'] = 'Cancel·la';
$labels['save'] = 'Desa';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Reanomena';
$labels['addphoto'] = 'Afegeix';
$labels['replacephoto'] = 'Reemplaça';
$labels['uploadphoto'] = 'Puja una fotografia';
+
$labels['newcontact'] = 'Crea un nou contacte';
$labels['deletecontact'] = 'Suprimeix els contactes seleccionats';
$labels['composeto'] = 'Redacta correu per a';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Crea un nou grup de contactes';
$labels['grouprename'] = 'Reanomena el grup';
$labels['groupdelete'] = 'Suprimeix el grup';
$labels['groupremoveselected'] = 'Suprimeix els contactes seleccionats del grup';
+
$labels['previouspage'] = 'Mostra la pàgina anterior';
$labels['firstpage'] = 'Mostra la primera pàgina';
$labels['nextpage'] = 'Mostra la pàgina següent';
$labels['lastpage'] = 'Mostra la darrera pàgina';
+
$labels['group'] = 'Grup';
$labels['groups'] = 'Grups';
-$labels['listgroup'] = 'Llista els membres del grup';
$labels['personaladrbook'] = 'Llibreta d\'adreces';
+
$labels['searchsave'] = 'Desa la cerca';
$labels['searchdelete'] = 'Suprimeix la cerca';
+
$labels['import'] = 'Importa';
$labels['importcontacts'] = 'Importa contactes';
$labels['importfromfile'] = 'Importa des d\'un fitxer:';
-$labels['importtarget'] = 'Afegeix contactes a';
+$labels['importtarget'] = 'Afegeix contactes nous a la llibreta d\'adreces:';
$labels['importreplace'] = 'Reemplaça la llibreta d\'adreçes sencera';
-$labels['importgroups'] = 'Importa assignacions de grup';
-$labels['importgroupsall'] = 'Tot (crea grups si és necessari)';
-$labels['importgroupsexisting'] = 'Només per a grups existents';
$labels['importdesc'] = 'Podeu carregar contactes des d\'una llibreta de direccions.<br/>Actualment donem suport a la importació d\'adreces des de fitxers de tipus <a href="http://ca.wikipedia.org/wiki/VCard">vCard</a> o CSV (valors separats per comes).';
$labels['done'] = 'Fet';
+
+// settings
$labels['settingsfor'] = 'Configuració per a';
$labels['about'] = 'Quant a';
$labels['preferences'] = 'Preferències';
$labels['userpreferences'] = 'Preferències de l\'usuari';
$labels['editpreferences'] = 'Edita les preferències de l\'usuari';
+
$labels['identities'] = 'Identitats';
$labels['manageidentities'] = 'Gestiona les identitats per a aquest compte';
$labels['newidentity'] = 'Nova identitat';
+
$labels['newitem'] = 'Nou element';
$labels['edititem'] = 'Edita l\'element';
+
$labels['preferhtml'] = 'Mostra HTML';
$labels['defaultcharset'] = 'Joc de caràcters per defecte';
$labels['htmlmessage'] = 'Missatge HTML';
@@ -348,13 +396,13 @@ $labels['timezone'] = 'Fus horari';
$labels['pagesize'] = 'Files per pàgina';
$labels['signature'] = 'Signatura';
$labels['dstactive'] = 'Horari d\'estiu';
-$labels['showinextwin'] = 'Obre el missatge en una nova finestra';
-$labels['composeextwin'] = 'Redacta en una nova finestra';
+$labels['showinextwin'] = 'Obrir el missatge en una nova finestra';
+$labels['composeextwin'] = 'Redactar en una nova finestra';
$labels['htmleditor'] = 'Escriu missatges en HTML';
$labels['htmlonreply'] = 'només en resposta a missatges en HTML';
$labels['htmlonreplyandforward'] = 'en reenviament o resposta a missatge HTML';
$labels['htmlsignature'] = 'Signatura en HTML';
-$labels['showemail'] = 'Mostra l\'adreça electrònica amb el nom';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Mostra el panell de previsualització';
$labels['skin'] = 'Aparença d\'interfície';
$labels['logoutclear'] = 'Buida la paperera al tancar la sessió';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignora paraules amb números';
$labels['spellcheckignorecaps'] = 'Ignora paraules amb lletres capitalitzades';
$labels['addtodict'] = 'Afegeix al diccionari';
$labels['mailtoprotohandler'] = 'Registra controlador de protocol pels enllaços mailto:';
-$labels['standardwindows'] = 'Gestiona les finestres emergents com si fossin finestres normals';
$labels['forwardmode'] = 'Reenviament de missatges';
$labels['inline'] = 'en línia';
$labels['asattachment'] = 'com adjunt';
+
$labels['folder'] = 'Carpeta';
$labels['folders'] = 'Carpetes';
$labels['foldername'] = 'Nom de la carpeta';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Tipus de Carpeta';
$labels['personalfolder'] = 'Carpeta privada';
$labels['otherfolder'] = 'Carpeta d\'un altre usuari';
$labels['sharedfolder'] = 'Carpeta pública';
+
$labels['sortby'] = 'Ordena per';
$labels['sortasc'] = 'Ordena ascendentment';
$labels['sortdesc'] = 'Ordena descendentment';
$labels['undo'] = 'Desfés';
+
$labels['installedplugins'] = 'Connectors Instal·lats';
$labels['plugin'] = 'Complement';
$labels['version'] = 'Versió';
$labels['source'] = 'Font';
$labels['license'] = 'Llicència';
$labels['support'] = 'Obtingueu ajuda';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Anglès';
$labels['westerneuropean'] = 'Europeu occidental';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonès';
$labels['korean'] = 'Coreà';
$labels['chinese'] = 'Xinès';
+
?>
diff --git a/program/localization/ca_ES/messages.inc b/program/localization/ca_ES/messages.inc
index 5f5854de8..70c3fbd0c 100644
--- a/program/localization/ca_ES/messages.inc
+++ b/program/localization/ca_ES/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Hi ha hagut un error!';
$messages['loginfailed'] = 'L\'accés ha fallat.';
$messages['cookiesdisabled'] = 'El vostre navegador no accepta cookies.';
@@ -54,8 +56,8 @@ $messages['contactnotfound'] = 'No s\'ha trobat el contacte sol·licitat.';
$messages['contactsearchonly'] = 'Introduïu termes de cerca per trobar contactes';
$messages['sendingfailed'] = 'Error enviant el missatge.';
$messages['senttooquickly'] = 'Si us plau, espereu $sec segon(s) abans d\'enviar aquest missatge.';
-$messages['errorsavingsent'] = 'S\'ha produït un error mentre es desava el missatge enviat.';
-$messages['errorsaving'] = 'S\'ha produït un error mentre es desava.';
+$messages['errorsavingsent'] = 'Hi ha hagut un error mentre es desava el missatge enviat.';
+$messages['errorsaving'] = 'Hi ha hagut un error mentre s\'estava desant.';
$messages['errormoving'] = 'No s\'ha pogut moure el(s) missatge(s).';
$messages['errorcopying'] = 'No s\'ha pogut copiar el(s) missatge(s).';
$messages['errordeleting'] = 'No s\'ha pogut suprimir el(s) missatge(s).';
@@ -99,16 +101,13 @@ $messages['converting'] = 'S\'està traient el format del missatge...';
$messages['messageopenerror'] = 'No s\'ha pogut carregar el missatge del servidor.';
$messages['fileuploaderror'] = 'La pujada del fitxer ha fallat.';
$messages['filesizeerror'] = 'El fitxer pujat excedeix la mida màxima de $size.';
-$messages['copysuccess'] = 'S\'han copiat $nr contactes correctament.';
-$messages['movesuccess'] = 'S\'han mogut $nr contactes correctament.';
-$messages['copyerror'] = 'No s\'ha pogut copiar cap contacte.';
-$messages['moveerror'] = 'No s\'ha pogut moure cap contacte.';
+$messages['copysuccess'] = 'S\'han copiat $nr adreces correctament.';
+$messages['copyerror'] = 'No s\'ha pogut copiar cap adreça.';
$messages['sourceisreadonly'] = 'Aquesta adreça és només de lectura.';
$messages['errorsavingcontact'] = 'No s\'ha pogut desar l\'adreça de contacte.';
$messages['movingmessage'] = 'S\'està movent missatge(s)...';
$messages['copyingmessage'] = 'S\'està copiant missatge(s)...';
$messages['copyingcontact'] = 'S\'està copiant contacte(s)...';
-$messages['movingcontact'] = 'S\'estan movent els contacte(s)...';
$messages['deletingmessage'] = 'S\'està suprimint missatge(s)...';
$messages['markingmessage'] = 'S\'està marcant missatge(s)...';
$messages['addingmember'] = 'S\'està afegint contacte(s) al grup...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'S\'està important, espereu si us plau...';
$messages['importformaterror'] = 'La importació ha fallat. El fitxer pujat no és un fitxer de dades vàlid.';
$messages['importconfirm'] = '<b>S\'han importat $inserted contactes correctament</b>';
$messages['importconfirmskipped'] = '<b>S\'han descartat $skipped entrades ja existents</b>';
-$messages['importmessagesuccess'] = '<b>S\'han importat $nr missatges correctament</b>';
-$messages['importmessageerror'] = 'La importació ha fallat. El fitxer que heu pujat no és un fitxer de missatges vàlid o no és un fitxer de bústia.';
$messages['opnotpermitted'] = 'Operació no permesa!';
$messages['nofromaddress'] = 'Falta l\'adreça de correu a la identitat seleccionada.';
$messages['editorwarning'] = 'Si canvieu a l\'editor de text pla perdreu tot el format del text. Voleu continuar?';
@@ -142,7 +139,7 @@ $messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'Adreça de correu no vàlida: $email';
$messages['toomanyrecipients'] = 'Massa destinataris. Reduïu el nombre de destinataris a $max.';
$messages['maxgroupmembersreached'] = 'El nombre de membres del grup excedeix el màxim de $max.';
-$messages['internalerror'] = 'S\'ha produït un error intern. Si us plau torneu-ho a provar.';
+$messages['internalerror'] = 'Hi ha hagut un error intern. Si us plau torneu-ho a provar.';
$messages['contactdelerror'] = 'No s\'han pogut suprimir el(s) contacte(s).';
$messages['contactdeleted'] = 'Contacte(s) suprimit(s) correctament.';
$messages['contactrestoreerror'] = 'No s\'ha pogut restaurar el(s) contacte(s) suprimit(s).';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'No s\'ha pogut crear/moure la carpeta dins de
$messages['messagetoobig'] = 'La part del missatge és massa gran per processar-la.';
$messages['attachmentvalidationerror'] = 'ATENCIÓ! Aquest adjunt és sospitós perquè el seu tipus no coincideix amb el tipus declarat al missatge. Si no confieu en l\'emissor, no l\'hauríeu d\'obrir al navegador perquè pot contenir elements maliciosos. <br/><br/><em>S\'esperava: $expected; s\'ha trobat: $detected</em>';
$messages['noscriptwarning'] = 'Atenció: Aquest client de correu necessita Javascript! Per a poder fer-lo servir, heu d\'activar Javascript a les opcions del navegador.';
+
?>
diff --git a/program/localization/cs_CZ/labels.inc b/program/localization/cs_CZ/labels.inc
index aac514ec5..8fb7ffade 100644
--- a/program/localization/cs_CZ/labels.inc
+++ b/program/localization/cs_CZ/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Vítejte v $product';
$labels['username'] = 'Uživatel';
$labels['password'] = 'Heslo';
$labels['server'] = 'Server';
$labels['login'] = 'Přihlásit';
+
+// taskbar
$labels['logout'] = 'Odhlásit';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Nastavení';
$labels['addressbook'] = 'Adresář';
+
+// mailbox names
$labels['inbox'] = 'Příchozí pošta';
$labels['drafts'] = 'Rozepsané';
$labels['sent'] = 'Odeslané';
$labels['trash'] = 'Koš';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Zobrazit skuteÄná jména speciálních složek';
+
+// message listing
$labels['subject'] = 'Předmět';
$labels['from'] = 'Odesílatel';
$labels['sender'] = 'Odesílatel';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorita';
$labels['organization'] = 'Organizace';
$labels['readstatus'] = 'PÅ™eÄteno';
$labels['listoptions'] = 'Seznam možností ...';
+
$labels['mailboxlist'] = 'Složky';
$labels['messagesfromto'] = 'Zprávy $from až $to z celkem $count';
$labels['threadsfromto'] = 'Konverzace $from až $to z celkem $count';
$labels['messagenrof'] = 'Zpráva $nr z $count';
$labels['fromtoshort'] = '$from - $to z $count';
+
$labels['copy'] = 'Kopírovat';
$labels['move'] = 'Přesunout';
$labels['moveto'] = 'přesunout do...';
@@ -56,9 +67,13 @@ $labels['download'] = 'stáhnout';
$labels['open'] = 'Otevřít';
$labels['showattachment'] = 'Zobrazit';
$labels['showanyway'] = 'Přesto zobrazit';
+
$labels['filename'] = 'Jméno přílohy';
$labels['filesize'] = 'Velikost přílohy';
+
$labels['addtoaddressbook'] = 'Přidat do adresáře';
+
+// weekdays short
$labels['sun'] = 'Ne';
$labels['mon'] = 'Po';
$labels['tue'] = 'Út';
@@ -66,6 +81,8 @@ $labels['wed'] = 'St';
$labels['thu'] = 'ÄŒt';
$labels['fri'] = 'Pá';
$labels['sat'] = 'So';
+
+// weekdays long
$labels['sunday'] = 'Neděle';
$labels['monday'] = 'Pondělí';
$labels['tuesday'] = 'Úterý';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Středa';
$labels['thursday'] = 'ÄŒtvrtek';
$labels['friday'] = 'Pátek';
$labels['saturday'] = 'Sobota';
+
+// months short
$labels['jan'] = 'Led';
$labels['feb'] = 'Úno';
$labels['mar'] = 'Bře';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Zář';
$labels['oct'] = 'Říj';
$labels['nov'] = 'Lis';
$labels['dec'] = 'Pro';
+
+// months long
$labels['longjan'] = 'Leden';
$labels['longfeb'] = 'Únor';
$labels['longmar'] = 'Březen';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Září';
$labels['longoct'] = 'Říjen';
$labels['longnov'] = 'Listopad';
$labels['longdec'] = 'Prosinec';
+
$labels['today'] = 'Dnes';
+
+// toolbar buttons
$labels['refresh'] = 'Obnovit';
$labels['checkmail'] = 'Zkontrolovat nové zprávy';
$labels['compose'] = 'Napsat zprávu';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Další akce...';
$labels['more'] = 'Více';
$labels['back'] = 'Zpět';
$labels['options'] = 'Možnosti';
+
$labels['select'] = 'Vybrat';
$labels['all'] = 'VÅ¡e';
$labels['none'] = 'Nic';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Rozbalit všechny';
$labels['expand-unread'] = 'Rozbalit nepÅ™eÄtené';
$labels['collapse-all'] = 'Sbalit všechny';
$labels['threaded'] = 'Spojovat do konverzací';
+
$labels['autoexpand_threads'] = 'Rozbalit konverzace';
$labels['do_expand'] = 'všechny konverzace';
$labels['expand_only_unread'] = 'pouze s nepÅ™eÄtenými zprávami';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Seznam sloupců';
$labels['listsorting'] = 'Třídění sloupců';
$labels['listorder'] = 'Uspořádání';
$labels['listmode'] = 'Režim zobrazení seznamu';
+
$labels['folderactions'] = 'Akce se složkou...';
$labels['compact'] = 'Zmenšit';
$labels['empty'] = 'Vymazat';
-$labels['importmessages'] = 'Import zpráv';
+
$labels['quota'] = 'Využití schránky';
$labels['unknown'] = 'neznámý';
$labels['unlimited'] = 'neomezený';
+
$labels['quicksearch'] = 'Rychlé vyhledávání';
$labels['resetsearch'] = 'Zrušit vyhledávání';
$labels['searchmod'] = 'Parametry hledání';
$labels['msgtext'] = 'Celá zpráva';
$labels['body'] = 'Tělo';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Jméno';
+
$labels['openinextwin'] = 'Otevřít v novém okně';
$labels['emlsave'] = 'Stáhnout (.eml)';
$labels['changeformattext'] = 'Zobrazit v textovém formátu';
$labels['changeformathtml'] = 'Zobrazit v HTML formátu';
+
+// message compose
$labels['editasnew'] = 'Upravit jako novou';
$labels['send'] = 'Odeslat';
$labels['sendmessage'] = 'Odeslat zprávu nyní';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'DoruÄenka';
$labels['dsn'] = 'Stav doruÄení';
$labels['mailreplyintro'] = 'Dne $date, $sender napsal:';
$labels['originalmessage'] = 'Původní zpráva';
+
$labels['editidents'] = 'Editovat identity';
$labels['spellcheck'] = 'Pravopis';
$labels['checkspelling'] = 'Zkontrolovat pravopis';
$labels['resumeediting'] = 'PokraÄovat v úpravách';
$labels['revertto'] = 'Přejít na';
-$labels['responses'] = 'Odpovědi';
-$labels['insertresponse'] = 'Vložit odpověd';
-$labels['manageresponses'] = 'Spravovat odpovědí';
-$labels['savenewresponse'] = 'Uložit novou odpovÄ›Ä';
-$labels['editresponses'] = 'Upravit odpovědi';
-$labels['editresponse'] = 'Upravit odpovÄ›Ä';
-$labels['responsename'] = 'Název';
-$labels['responsetext'] = 'Text odpovědi';
+
$labels['attach'] = 'Přiložit';
$labels['attachments'] = 'Přílohy';
$labels['upload'] = 'Nahrát';
$labels['uploadprogress'] = '$percent ($current z $total)';
$labels['close'] = 'Zavřít';
$labels['messageoptions'] = 'Nastavení zprávy...';
+
$labels['low'] = 'Nízká';
$labels['lowest'] = 'Nejnižší';
$labels['normal'] = 'Normální';
$labels['high'] = 'Vysoká';
$labels['highest'] = 'Nejvyšší';
+
$labels['nosubject'] = '(bez predmetu)';
$labels['showimages'] = 'Zobrazit obrázky';
$labels['alwaysshow'] = 'Vždy ukazovat obrázky od $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Toto je šablona zprávy.';
$labels['andnmore'] = '$nr dalších...';
$labels['togglemoreheaders'] = 'Zobrazit více hlaviÄek zprávy';
$labels['togglefullheaders'] = 'PÅ™epnout skuteÄné hlaviÄky zprávy';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Prostý text';
$labels['savesentmessagein'] = 'Ukládat odeslané zprávy v';
$labels['dontsave'] = 'neukládat';
$labels['maxuploadsize'] = 'Maximální povolená velikost souboru je $size';
+
$labels['addcc'] = 'Přidat pole "Kopie';
$labels['addbcc'] = 'Přidat pole "Skrytá kopie';
$labels['addreplyto'] = 'PÅ™idat pole "OdpovÄ›Ä';
$labels['addfollowupto'] = 'Přidat pole "Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Odesílatel této zprávy si přeje být upozorněn na to, že jste zprávu obdrželi. Chcete přijetí zprávy potvrdit?';
$labels['receiptread'] = 'Potvrzení o přijetí zprávy';
$labels['yourmessage'] = 'Toto je potvrzení o přijetí Vaší zprávy';
$labels['receiptnote'] = 'Poznámka: Toto potvrzení negarantuje, že zpráva byla příjemce pÅ™eÄtena a že porozumÄ›l jejímu obsahu.';
+
+// address boook
$labels['name'] = 'Zobrazit jméno';
$labels['firstname'] = 'Jméno';
$labels['surname'] = 'Příjmení';
@@ -270,6 +301,7 @@ $labels['search'] = 'Hledat';
$labels['advsearch'] = 'PokroÄilé vyhledávání';
$labels['advanced'] = 'PokroÄilé';
$labels['other'] = 'Ostatní';
+
$labels['typehome'] = 'Domací';
$labels['typework'] = 'Pracovní';
$labels['typeother'] = 'Ostatní';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'Domácí stránka';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Přidat položku';
$labels['addcontact'] = 'Přidat kontakt';
$labels['editcontact'] = 'Upravit kontakt';
$labels['contacts'] = 'Kontakty';
$labels['contactproperties'] = 'Vlastnosti kontaktu';
$labels['personalinfo'] = 'Osobní informace';
+
$labels['edit'] = 'Upravit';
$labels['cancel'] = 'Konec';
$labels['save'] = 'Uložit';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Přejmenovat';
$labels['addphoto'] = 'Přidat';
$labels['replacephoto'] = 'Změnit';
$labels['uploadphoto'] = 'Nahrát fotku';
+
$labels['newcontact'] = 'Vytvořit nový kontakt';
$labels['deletecontact'] = 'Smazat vybrané kontakty';
$labels['composeto'] = 'Poslat e-mail';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Vytvořit novou skupinu kontaktů';
$labels['grouprename'] = 'Přejmenovat skupinu';
$labels['groupdelete'] = 'Smazat skupinu';
$labels['groupremoveselected'] = 'Odstranit oznaÄené kontakty ze skupiny';
+
$labels['previouspage'] = 'Předchozí';
$labels['firstpage'] = 'Zobrazit první zprávy';
$labels['nextpage'] = 'Další';
$labels['lastpage'] = 'Zobrazit poslední zprávy';
+
$labels['group'] = 'Skupina';
$labels['groups'] = 'Skupiny';
-$labels['listgroup'] = ' Seznam Älenů skupiny';
$labels['personaladrbook'] = 'Osobní kontakty';
+
$labels['searchsave'] = 'Uložit hledání';
$labels['searchdelete'] = 'Smazat hledání';
+
$labels['import'] = 'Import';
$labels['importcontacts'] = 'Importovat kontakty';
$labels['importfromfile'] = 'Importovat ze souboru';
-$labels['importtarget'] = 'Přidat kontakty k';
+$labels['importtarget'] = 'Přidat nové kontakty do seznamu kontaktů:';
$labels['importreplace'] = 'Nahradit celý seznam kontaktů';
-$labels['importgroups'] = 'Importovat přiřazení do skupin';
-$labels['importgroupsall'] = 'Vše (vytvořit skupiny v případě potřeby)';
-$labels['importgroupsexisting'] = 'Pouze pro existující skupiny';
$labels['importdesc'] = 'Můžete nahrát kontakty z existujícího adresáře kontaktů.<br/>Momentálně podporujeme kontakty ve formátu <a href="http://cs.wikipedia.org/wiki/VCard">vCard</a> nebo CSV (comma-separated).';
$labels['done'] = 'Hotovo';
+
+// settings
$labels['settingsfor'] = 'Nastavení pro';
$labels['about'] = 'O programu';
$labels['preferences'] = 'Vlastnosti';
$labels['userpreferences'] = 'Vlastnosti uživatele';
$labels['editpreferences'] = 'Upravit vlastnosti uživatele';
+
$labels['identities'] = 'Profily';
$labels['manageidentities'] = 'Spravovat profily u tohoto úÄtu';
$labels['newidentity'] = 'Nový profil';
+
$labels['newitem'] = 'Nová položka';
$labels['edititem'] = 'Upravit položku';
+
$labels['preferhtml'] = 'Upřednostňovat HTML zobrazení';
$labels['defaultcharset'] = 'Výchozí kódování';
$labels['htmlmessage'] = 'HTML zpráva';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'Vytvářet HTML zprávy';
$labels['htmlonreply'] = 'jen při odpovědi na HTML zprávy';
$labels['htmlonreplyandforward'] = 'při přeposlání nebo odpovědi na HTML zprávu';
$labels['htmlsignature'] = 'HTML podpis';
-$labels['showemail'] = 'Zobrazit e-mailovou adresu se skuteÄným jménem';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Zobrazit panel náhledu';
$labels['skin'] = 'Vzhled';
$labels['logoutclear'] = 'Vyprázdnit koš při odhlášení';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorovat slova obsahující Äísla';
$labels['spellcheckignorecaps'] = 'Ignorovat slova psaná velkými písmeny';
$labels['addtodict'] = 'Přidat do slovníku';
$labels['mailtoprotohandler'] = 'Zaregistrovat handler pro odkazy „mailto:“';
-$labels['standardwindows'] = 'Zacházet s vyskakovacími okny jako se standardními okny';
$labels['forwardmode'] = 'Přeposlat zprávu';
$labels['inline'] = 'vloženě';
$labels['asattachment'] = 'jako přílohu';
+
$labels['folder'] = 'Složka';
$labels['folders'] = 'Složky';
$labels['foldername'] = 'Jméno složky';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Typ složky';
$labels['personalfolder'] = 'Soukromá složka';
$labels['otherfolder'] = 'Složky ostatních uživatelů';
$labels['sharedfolder'] = 'Sdílená složka';
+
$labels['sortby'] = 'Seřadit podle';
$labels['sortasc'] = 'Seřadit vzestupně';
$labels['sortdesc'] = 'Seřadit sestupně';
$labels['undo'] = 'Vrátit zpět';
+
$labels['installedplugins'] = 'Nainstalované pluginy';
$labels['plugin'] = 'Zásuvný modul';
$labels['version'] = 'Verze';
$labels['source'] = 'Zdroj';
$labels['license'] = 'Licence';
$labels['support'] = 'Podpora';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'AngliÄtina';
$labels['westerneuropean'] = 'Západní Evropa';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamština';
$labels['japanese'] = 'Japonština';
$labels['korean'] = 'Korejština';
$labels['chinese'] = 'Čínština';
+
?>
diff --git a/program/localization/cs_CZ/messages.inc b/program/localization/cs_CZ/messages.inc
index 2e3a75c52..9800b2412 100644
--- a/program/localization/cs_CZ/messages.inc
+++ b/program/localization/cs_CZ/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Došlo k chybě!';
$messages['loginfailed'] = 'Přihlášení selhalo';
$messages['cookiesdisabled'] = 'Váš prohlížeÄ nepodporuje cookies, které jsou pro pÅ™ihlášení nezbytné';
@@ -22,7 +24,7 @@ $messages['sessionerror'] = 'Vaše přihlášení je neplatné nebo vypršelo';
$messages['storageerror'] = 'Připojení na IMAP server selhalo';
$messages['servererror'] = 'Chyba serveru!';
$messages['servererrormsg'] = 'Chyba serveru: $msg';
-$messages['dberror'] = 'Chyba databáze!';
+$messages['dberror'] = 'Chyba v databázi!';
$messages['requesttimedout'] = 'Došlo k vypršení požadavku';
$messages['errorreadonly'] = 'Příkaz nelze provést, složka je urÄena jen ke Ätení.';
$messages['errornoperm'] = 'Příkaz nelze provést, nemáte oprávnění.';
@@ -31,7 +33,7 @@ $messages['erroroverquotadelete'] = 'Není volné místo na disku. Použijte SHI
$messages['invalidrequest'] = 'Nesprávný požadavek. Data nebyla uložena.';
$messages['invalidhost'] = 'Špatné jméno serveru.';
$messages['nomessagesfound'] = 'Ve schránce nebyla nalezena žádná zpráva';
-$messages['loggedout'] = 'Byli jste úspěšně odhlášeni. Na shledanou!';
+$messages['loggedout'] = 'Byli jste úspěšně odhlášeni. Nashledanou!';
$messages['mailboxempty'] = 'Schránka je prázdná';
$messages['refreshing'] = 'Obnovuji...';
$messages['loading'] = 'NaÄítám...';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Zpráva byla odeslána';
$messages['savingmessage'] = 'Ukládám zprávu...';
$messages['messagesaved'] = 'Zpráva uložena do Rozepsané';
$messages['successfullysaved'] = 'Uloženo';
-$messages['savingresponse'] = 'Ukládám text odpovědi...';
-$messages['deleteresponseconfirm'] = 'Opravdu chcete odstranit tento text odpovědi?';
$messages['addedsuccessfully'] = 'Kontakt byl úspěšně přidán do adresáře';
$messages['contactexists'] = 'Kontakt se zadanou e-mailovou adresou již existuje';
$messages['contactnameexists'] = 'Kontakt se stejným jménem již existuje';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Odstraňuji formátování ze zprávy...';
$messages['messageopenerror'] = 'Nemohu naÄíst zprávu ze serveru';
$messages['fileuploaderror'] = 'Nahrávání souboru selhalo';
$messages['filesizeerror'] = 'Soubor přesáhl maximální velikost $size';
-$messages['copysuccess'] = 'Úspěšně zkopírováno $nr kontaktů.';
-$messages['movesuccess'] = 'Úspěšně přesunuto $nr kontaktů.';
-$messages['copyerror'] = 'Kontakty nelze kopírovat.';
-$messages['moveerror'] = 'Kontakty nelze přesunout.';
+$messages['copysuccess'] = 'Úspěšně zkopírováno $nr adres';
+$messages['copyerror'] = 'Nemohu zkopírovat žádnou adresu';
$messages['sourceisreadonly'] = 'Tento zdroj adres je pouze pro Ätení';
$messages['errorsavingcontact'] = 'Nemohu uložit adresu kontaktu';
$messages['movingmessage'] = 'Přesouvám zprávu...';
$messages['copyingmessage'] = 'Kopíruji zprávu...';
$messages['copyingcontact'] = 'Kopíruji kontakty...';
-$messages['movingcontact'] = 'Přesouvání kontaktů()...';
$messages['deletingmessage'] = 'Odstraňuji zprávu...';
$messages['markingmessage'] = 'OznaÄuji zprávu...';
$messages['addingmember'] = 'Přidávám kontakty do skupiny...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importuji, prosím Äekejte...';
$messages['importformaterror'] = 'Import se nezdařil! Typ souboru není podporován.';
$messages['importconfirm'] = 'ÚspěšnÄ› naimportováno $inserted kontaktů, $skipped existujících záznamů pÅ™eskoÄeno: $names';
$messages['importconfirmskipped'] = '<b>PÅ™eskoÄeno $skipped existujících položek</b>';
-$messages['importmessagesuccess'] = 'Úspěšně naimportováno $nr zpráv';
-$messages['importmessageerror'] = 'Import se nezdařil! Nahraný soubor není platnou zprávou nebo souborem mailboxu';
$messages['opnotpermitted'] = 'Operace není povolena!';
$messages['nofromaddress'] = 'ChybÄ›jící e-mailová adresa v oznaÄeném profilu';
$messages['editorwarning'] = 'PÅ™epnutím do režimu prostého textu ztratíte veÅ¡keré formátování. Chcete pokraÄovat?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'Chyba SMTP: $msg';
$messages['emailformaterror'] = 'Neplatná e-mailová adresa: $email';
$messages['toomanyrecipients'] = 'PříliÅ¡ mnoho příjemců. Změňte poÄet příjemců na $max.';
$messages['maxgroupmembersreached'] = 'PoÄet Älenských skupin dosáhl maximum z $max';
-$messages['internalerror'] = 'Došlo k interní chybě. Zkuste to prosím znovu.';
+$messages['internalerror'] = 'Došlo k interní chybě. Zkuste to znovu';
$messages['contactdelerror'] = 'Kontakty nelze odstranit';
$messages['contactdeleted'] = 'Kontakty byly odstraněny';
$messages['contactrestoreerror'] = 'Nelze obnovit smazané kontakty';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Nelze vytvořit/přesunout složku do vybrané
$messages['messagetoobig'] = 'Část zprávy je příliš velká pro zpracování.';
$messages['attachmentvalidationerror'] = 'Varování: Tato příloha je podezÅ™elá, protože její typ se neshoduje s typem uvedeným ve zprávÄ›. Pokud nedůvěřujete odesílateli, nemÄ›li byste přílohu otevírat v prohlížeÄi, protože může obsahovat Å¡kodlivý obsah.<br/><br/><em>OÄekáváno: $expected; nalezeno: $detected</em>';
$messages['noscriptwarning'] = 'UpozornÄ›ní: Tato emailová aplikace vyžaduje Javascript! Prosím, zapnÄ›te Javascript v nastavení prohlížeÄe.';
+
?>
diff --git a/program/localization/cy_GB/labels.inc b/program/localization/cy_GB/labels.inc
index 37ee5bbc1..3e4f136bc 100644
--- a/program/localization/cy_GB/labels.inc
+++ b/program/localization/cy_GB/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Croeso i $product';
$labels['username'] = 'Enw defnyddiwr';
$labels['password'] = 'Cyfrinair';
$labels['server'] = 'Gweinydd';
$labels['login'] = 'Mewngofnodi';
+
+// taskbar
$labels['logout'] = 'Allgofnodi';
$labels['mail'] = 'E-bost';
$labels['settings'] = 'Gosodiadau Personol';
$labels['addressbook'] = 'Llyfr Cyfeiriadau';
+
+// mailbox names
$labels['inbox'] = 'Mewnflwch';
$labels['drafts'] = 'Drafftiau';
$labels['sent'] = 'Danfonwyd';
$labels['trash'] = 'Sbwriel';
$labels['junk'] = 'Sothach';
-$labels['show_real_foldernames'] = 'Dangos enwau go-iawn ar gyfer ffolderi arbennig';
+
+// message listing
$labels['subject'] = 'Pwnc';
$labels['from'] = 'Anfonwr';
$labels['sender'] = 'Anfonwr';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Blaenoriaeth';
$labels['organization'] = 'Enw\'r Sefydliad';
$labels['readstatus'] = 'Statws darllen';
$labels['listoptions'] = 'Dewisiadau rhestr...';
+
$labels['mailboxlist'] = 'Ffolderi';
$labels['messagesfromto'] = 'Negeseuon $from i $to o $count';
$labels['threadsfromto'] = 'Edefau $from i $to o $count';
$labels['messagenrof'] = 'Neges $nr o $count';
$labels['fromtoshort'] = '$from - $to o $count';
+
$labels['copy'] = 'Copio';
$labels['move'] = 'Symud';
$labels['moveto'] = 'Symud i...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Llwytho lawr';
$labels['open'] = 'Agor';
$labels['showattachment'] = 'Dangos';
$labels['showanyway'] = 'Dangos beth bynnag';
+
$labels['filename'] = 'Enw ffeil';
$labels['filesize'] = 'Maint ffeil';
+
$labels['addtoaddressbook'] = 'Ychwanegu i\'r llyfr cyfeiriadau';
+
+// weekdays short
$labels['sun'] = 'Sul';
$labels['mon'] = 'Llun';
$labels['tue'] = 'Maw';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Iau';
$labels['fri'] = 'Gwe';
$labels['sat'] = 'Sad';
+
+// weekdays long
$labels['sunday'] = 'Dydd Sul';
$labels['monday'] = 'Dydd Llun';
$labels['tuesday'] = 'Dydd Mawrth';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Dydd Mercher';
$labels['thursday'] = 'Dydd Iau';
$labels['friday'] = 'Dydd Gwener';
$labels['saturday'] = 'Dydd Sadwrn';
+
+// months short
$labels['jan'] = 'Ion';
$labels['feb'] = 'Chwe';
$labels['mar'] = 'Maw';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Med';
$labels['oct'] = 'Hyd';
$labels['nov'] = 'Tach';
$labels['dec'] = 'Rhag';
+
+// months long
$labels['longjan'] = 'Ionawr';
$labels['longfeb'] = 'Chwefror';
$labels['longmar'] = 'Mawrth';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Medi';
$labels['longoct'] = 'Hydref';
$labels['longnov'] = 'Tachwedd';
$labels['longdec'] = 'Rhagfyr';
+
$labels['today'] = 'Heddiw';
+
+// toolbar buttons
$labels['refresh'] = 'Ail-ofyn';
$labels['checkmail'] = 'Edrych am negeseuon newydd';
$labels['compose'] = 'Ysgrifennu neges';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mwy o weithredoedd...';
$labels['more'] = 'Mwy';
$labels['back'] = 'Yn ôl';
$labels['options'] = 'Dewisiadau';
+
$labels['select'] = 'Dewis';
$labels['all'] = 'Popeth';
$labels['none'] = 'Dim';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Ehangu Popeth';
$labels['expand-unread'] = 'Ehangu Negeseuon Heb eu darllen';
$labels['collapse-all'] = 'Crebachu Popeth';
$labels['threaded'] = 'Edafedd';
+
$labels['autoexpand_threads'] = 'Ehangu edefau neges';
$labels['do_expand'] = 'pob edefyn';
$labels['expand_only_unread'] = 'dim ond gyda negeseuon heb eu darllen';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Rhestr colofnau';
$labels['listsorting'] = 'Colofn trefnu';
$labels['listorder'] = 'Trefn didoli';
$labels['listmode'] = 'Golwg rhestr';
+
$labels['folderactions'] = 'Gweithredoedd ffolder...';
$labels['compact'] = 'Crynhoi';
$labels['empty'] = 'Gwagio';
-$labels['importmessages'] = 'Mewnforio negeseuon';
+
$labels['quota'] = 'Defnydd';
$labels['unknown'] = 'anhysbys';
$labels['unlimited'] = 'diderfyn';
+
$labels['quicksearch'] = 'Chwiliad cyflym';
$labels['resetsearch'] = 'Ail-osod chwiliad';
$labels['searchmod'] = 'Addasyddion chwilio';
$labels['msgtext'] = 'Y neges yn llawn';
$labels['body'] = 'Corff';
-$labels['type'] = 'Math';
-$labels['namex'] = 'Enw';
+
$labels['openinextwin'] = 'Agor mewn ffenest newydd';
$labels['emlsave'] = 'Llwytho lawr (.eml)';
$labels['changeformattext'] = 'Dangos mewn fformat testun plaen';
$labels['changeformathtml'] = 'Dangos mewn fformat HTML';
+
+// message compose
$labels['editasnew'] = 'Golygu fel neges newydd';
$labels['send'] = 'Anfon';
$labels['sendmessage'] = 'Danfon nawr';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Cadarnhau derbyn';
$labels['dsn'] = 'Hysbysiad statws danfon';
$labels['mailreplyintro'] = 'Ar $date, ysgrifennodd $sender:';
$labels['originalmessage'] = 'Neges Wreiddiol';
+
$labels['editidents'] = 'Golygu personoliaethau';
$labels['spellcheck'] = 'Sillafu';
$labels['checkspelling'] = 'Gwirio sillafu';
$labels['resumeediting'] = 'Ail-ddechrau golygu';
$labels['revertto'] = 'Dychwelyd i';
+
$labels['attach'] = 'Atodi';
$labels['attachments'] = 'Atodiadau';
$labels['upload'] = 'Llwytho fyny';
$labels['uploadprogress'] = '$percent ($current o $total)';
$labels['close'] = 'Cau';
$labels['messageoptions'] = 'Dewisiadau neges...';
+
$labels['low'] = 'Isel';
$labels['lowest'] = 'Isaf';
$labels['normal'] = 'Cyffredin';
$labels['high'] = 'Uchel';
$labels['highest'] = 'Uchaf';
+
$labels['nosubject'] = '(dim pwnc)';
$labels['showimages'] = 'Dangos lluniau';
$labels['alwaysshow'] = 'Dangos lluniau bob amser o $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Mae hwn yn neges ddrafft';
$labels['andnmore'] = '$nr mwy...';
$labels['togglemoreheaders'] = 'Dangos fwy o benynnau\'r neges';
$labels['togglefullheaders'] = 'Toglo penawdau llawn y neges';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Testun plaen';
$labels['savesentmessagein'] = 'Cadw negeseuon a ddanfonir yn';
$labels['dontsave'] = 'peidio cadw';
$labels['maxuploadsize'] = 'Y maint ffeil uchaf a ganiateir yw $size';
+
$labels['addcc'] = 'Ychwanegu Cc';
$labels['addbcc'] = 'Ychwanegu Bcc';
$labels['addreplyto'] = 'Ychwanegu Ateb-I';
$labels['addfollowupto'] = 'Ychwanegu Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Mae anfonwr y neges hwn wedi gofyn am hysbysiad eich bod wedi darllen y neges. Hoffech chi hysbysu\'r anfonwr?';
$labels['receiptread'] = 'Cadarnhad Derbyn (darllenwyd)';
$labels['yourmessage'] = 'Mae hwn yn gadarnhad o dderbyn eich neges';
$labels['receiptnote'] = 'Nodyn: Mae\'r cadarnhad hwn yn cydnabod fod y neges wedi ei ddangos ar gyfrifiadur y derbynnydd. \'Does dim sicrwydd fod y derbynydd wedi darllen neu ddeall cynnwys y neges.';
+
+// address boook
$labels['name'] = 'Enw ddangosir';
$labels['firstname'] = 'Enw cyntaf';
$labels['surname'] = 'Enw olaf';
@@ -262,6 +301,7 @@ $labels['search'] = 'Chwilio';
$labels['advsearch'] = 'Chwilio Uwch';
$labels['advanced'] = 'Uwch';
$labels['other'] = 'Arall';
+
$labels['typehome'] = 'Cartref';
$labels['typework'] = 'Gwaith';
$labels['typeother'] = 'Arall';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Cynorthwyydd';
$labels['typehomepage'] = 'Gwefan';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Proffil';
+
$labels['addfield'] = 'Ychwanegu maes...';
$labels['addcontact'] = 'Ychwanegu cyswllt newydd';
$labels['editcontact'] = 'Golygu cyswllt';
$labels['contacts'] = 'Cysylltiadau';
$labels['contactproperties'] = 'Nodweddion cyswllt';
$labels['personalinfo'] = 'Gwybodaeth bersonol';
+
$labels['edit'] = 'Golygu';
$labels['cancel'] = 'Canslo';
$labels['save'] = 'Cadw';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Ail-enwi';
$labels['addphoto'] = 'Ychwanegu';
$labels['replacephoto'] = 'Amnewid';
$labels['uploadphoto'] = 'Llwytho fyny llun';
+
$labels['newcontact'] = 'Creu cerdyn cyswllt newydd';
$labels['deletecontact'] = 'Dileu y cysylltiadau a ddewiswyd';
$labels['composeto'] = 'Ysgrifennu neges at';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Creu grŵp cysylltiadau newydd';
$labels['grouprename'] = 'Ail-enwi grŵp';
$labels['groupdelete'] = 'Dileu grŵp';
$labels['groupremoveselected'] = 'Dileu y cysylltiadau dewiswyd o\'r grŵp';
+
$labels['previouspage'] = 'Dangos y set flaenorol';
$labels['firstpage'] = 'Dangos y set gyntaf';
$labels['nextpage'] = 'Dangos y set nesaf';
$labels['lastpage'] = 'Dangos y set olaf';
+
$labels['group'] = 'Grŵp';
$labels['groups'] = 'Grwpiau';
-$labels['listgroup'] = 'Rhestru aelodau\'r grŵp';
$labels['personaladrbook'] = 'Cyfeiriadau Personol';
+
$labels['searchsave'] = 'Cadw chwiliad';
$labels['searchdelete'] = 'Dileu chwiliad';
+
$labels['import'] = 'Mewnforio';
$labels['importcontacts'] = 'Mewnforio cysylltiadau';
$labels['importfromfile'] = 'Mewnforio o ffeil:';
-$labels['importtarget'] = 'Ychwanegu cysylltiadau i';
+$labels['importtarget'] = 'Ychwanegu cysylltiadau newydd i\'r llyfr cyfeiriad:';
$labels['importreplace'] = 'Dileu y llyfr cyfeiriadau cyfan wrth lwytho';
-$labels['importgroups'] = 'Mewnforio penodiadau grŵp';
-$labels['importgroupsall'] = 'Holl (creu grwpiau os oes angen)';
-$labels['importgroupsexisting'] = 'Dim ond ar gyfer grwpiau sy\'n bodoli';
$labels['importdesc'] = 'Fe allwch chi lwytho fyny cysylltiadau o lyfr cyfeiriadau presennol.<br/>Ar hyn o bryd, rydym yn cefnogi mewnforio cyfeiriadau o\'r fformatau <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> neu CSV.';
$labels['done'] = 'Wedi gorffen';
+
+// settings
$labels['settingsfor'] = 'Gosodiadau ar gyfer';
$labels['about'] = 'Amdan';
$labels['preferences'] = 'Dewisiadau';
$labels['userpreferences'] = 'Dewisiadau\'r defnyddiwr';
$labels['editpreferences'] = 'Golygu dewisiadau\'r defnyddiwr';
+
$labels['identities'] = 'Personoliaethau';
$labels['manageidentities'] = 'Rheoli personoliaethau ar gyfer y cyfri hwn';
$labels['newidentity'] = 'Personoliaeth newydd';
+
$labels['newitem'] = 'Eitem newydd';
$labels['edititem'] = 'Golygu eitem';
+
$labels['preferhtml'] = 'Dangos HTML';
$labels['defaultcharset'] = 'Set Nodau Diofyn';
$labels['htmlmessage'] = 'Neges HTML';
@@ -354,7 +402,7 @@ $labels['htmleditor'] = 'Ysgrifennu negeseuon HTML';
$labels['htmlonreply'] = 'wrth ateb i neges HTML yn unig';
$labels['htmlonreplyandforward'] = 'wrth ddanfon ymlaen neu ymateb i neges HTML';
$labels['htmlsignature'] = 'Llofnod HTML';
-$labels['showemail'] = 'Dangos cyfeiriad ebost gyda\'r enw gweledig';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Dangos ffenest rhagolwg';
$labels['skin'] = 'Croen rhyngwyneb';
$labels['logoutclear'] = 'Clirio\'r Sbwriel wrth allgofnodi';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Anwybyddu geiriau gyda rhifau';
$labels['spellcheckignorecaps'] = 'Anwybyddu geiriau sy\'n briflythrennau yn gyfangwbl';
$labels['addtodict'] = 'Ychwanegu i\'r geiriadur';
$labels['mailtoprotohandler'] = 'Cofrestru trafodwr protocol ar gyfer dolenni mailto:';
-$labels['standardwindows'] = 'Trin ffenestri naid fel ffenestri arferol';
$labels['forwardmode'] = 'Danfon neges ymlaen';
$labels['inline'] = 'mewnlin';
$labels['asattachment'] = 'fel atodiad';
+
$labels['folder'] = 'Ffolder';
$labels['folders'] = 'Ffolderi';
$labels['foldername'] = 'Enw ffolder';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Math Ffolder';
$labels['personalfolder'] = 'Ffolder Preifat';
$labels['otherfolder'] = 'Ffolder Defnyddiwr Arall';
$labels['sharedfolder'] = 'Ffolder Cyhoeddus';
+
$labels['sortby'] = 'Trefnu yn ôl';
$labels['sortasc'] = 'Trefn esgynnol';
$labels['sortdesc'] = 'Trefn ddisgynnol';
$labels['undo'] = 'Dad-wneud';
+
$labels['installedplugins'] = 'Ategynnau wedi eu gosod';
$labels['plugin'] = 'Ategyn';
$labels['version'] = 'Fersiwn';
$labels['source'] = 'Ffynhonnell';
$labels['license'] = 'Trwydded';
$labels['support'] = 'Gofyn am gymorth';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Saesneg';
$labels['westerneuropean'] = 'Gorllewin Ewropeaidd';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Fietnamaidd';
$labels['japanese'] = 'Japaneaidd';
$labels['korean'] = 'Corëeg';
$labels['chinese'] = 'Tsieineaidd';
+
?>
diff --git a/program/localization/cy_GB/messages.inc b/program/localization/cy_GB/messages.inc
index be6c4dac6..edadc3b45 100644
--- a/program/localization/cy_GB/messages.inc
+++ b/program/localization/cy_GB/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Fe gafwyd gwall!';
$messages['loginfailed'] = 'Methwyd a\'ch mewngofnodi';
$messages['cookiesdisabled'] = 'Nid yw eich porwr yn derbyn cwcis';
@@ -54,7 +56,7 @@ $messages['contactnotfound'] = 'Ni gafwyd hyd i\'r cysylltiad gofynnwyd amdano';
$messages['contactsearchonly'] = 'Rhowch dermau chwilio i ganfod cysylltiadau';
$messages['sendingfailed'] = 'Methwyd danfon y neges';
$messages['senttooquickly'] = 'Arhoswch $sec eiliad cyn danfon y neges';
-$messages['errorsavingsent'] = 'Fe gafwyd gwall wrth gadw\'r neges ddanfonwyd.';
+$messages['errorsavingsent'] = 'Fe gafwyd gwall wrth cadw\'r neges ddanfonwyd';
$messages['errorsaving'] = 'Fe gafwyd gwall wrth gadw';
$messages['errormoving'] = 'Methwyd symud y neges';
$messages['errorcopying'] = 'Methwyd copïo\'r neges(euon)';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Yn cael gwared a\'r fformatio...';
$messages['messageopenerror'] = 'Methwyd llwytho\'r neges o\'r gweinydd';
$messages['fileuploaderror'] = 'Methwyd llwytho\'r ffeil i fyny';
$messages['filesizeerror'] = 'Mae\'r ffeil a lwythyd fyny yn fwy na\'r maint uchaf ganiateir o $size';
-$messages['copysuccess'] = 'Copïwyd $nr cyswllt yn llwyddiannus';
-$messages['movesuccess'] = 'Symudwyd $nr cyswllt yn llwyddiannus.';
-$messages['copyerror'] = 'Methwyd copïo unrhyw gysylltiadau.';
-$messages['moveerror'] = 'Methwyd symud unrhyw gysylltiadau.';
+$messages['copysuccess'] = 'Copïwyd $nr cyfeiriad yn llwyddiannus';
+$messages['copyerror'] = 'Methwyd copïo unrhyw gyfeiriad';
$messages['sourceisreadonly'] = 'Mae ffynhonnell y cyfeiriadau i\'w ddarllen yn unig';
$messages['errorsavingcontact'] = 'Methwyd cadw cyfeiriad y cyswllt';
$messages['movingmessage'] = 'Yn symud neges...';
$messages['copyingmessage'] = 'Yn copïo\'r neges';
$messages['copyingcontact'] = 'Yn copïo cyswllt/cysylltiadau...';
-$messages['movingcontact'] = 'Yn symud cyswllt/cysylltiadau...';
$messages['deletingmessage'] = 'Yn dileu neges(euon)...';
$messages['markingmessage'] = 'Yn marcio neges(euon)...';
$messages['addingmember'] = 'Yn ychwanegu cyswllt/cysylltiadau i\'r grŵp...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Yn mewnforio, arhoswch os gwelwch yn dda...';
$messages['importformaterror'] = 'Methwyd mewnforio! Nid yw\'r ffeil a lwythwyd yn ffeil ddata dilys.';
$messages['importconfirm'] = '<b>Fe mewnforiwyd $inserted cyswllt yn llwyddiannus, anwybyddwyd $skipped cofnod presennol</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Neidiwyd $skipped cofnod oedd yn bodoli</b>';
-$messages['importmessagesuccess'] = 'Mewnforiwyd $nr neges yn llwyddiannus';
-$messages['importmessageerror'] = 'Methwyd mewnforio! Nid yw\'r ffeil a lwythwyd yn ffeil neges neu blwch ebost dilys';
$messages['opnotpermitted'] = 'Ni chaniateir y weithred!';
$messages['nofromaddress'] = 'Cyfeiriad e-bost ar goll yn y personoliaeth a ddewiswyd';
$messages['editorwarning'] = 'Mi fydd newid i\'r golygydd testun plaen yn golygu byddwch chi\'n colli unrhyw arddulliau yn eich testun. Hoffech chi barhau?';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'Methwyd creu/symud ffolder i\'r ffolder rhiant
$messages['messagetoobig'] = 'Mae darn y neges yn rhy fawr i\'w brosesu.';
$messages['attachmentvalidationerror'] = 'RHYBUDD! Mae\'r atodiad yn amheus oherwydd nid yw ei fath yn gymharu\'r gyda\'r math ddatganwyd yn y neges. Os nad ydych yn ymddiried yn y danfonwr, ni ddylech agor hwn yn y porwr oherwydd fe all gynnwys ffeil maleisus.<br></br><em>Disgwylwyd:$expected;canfuwyd:$detected</em>';
$messages['noscriptwarning'] = 'Rhybudd: Mae\'r gwasanaeth gwebost angen Javascript i weithio! Er mwyn ei ddefnyddio, galluogwch Javascript yng ngosodiadau eich porwr.';
+
?>
diff --git a/program/localization/da_DK/labels.inc b/program/localization/da_DK/labels.inc
index 53d32090c..02d7dd9e3 100644
--- a/program/localization/da_DK/labels.inc
+++ b/program/localization/da_DK/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Velkommen til $product';
$labels['username'] = 'Brugernavn';
$labels['password'] = 'Adgangskode';
$labels['server'] = 'Server';
$labels['login'] = 'Log på';
+
+// taskbar
$labels['logout'] = 'Log af';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Indstillinger';
$labels['addressbook'] = 'Adressebog';
+
+// mailbox names
$labels['inbox'] = 'Indbakke';
$labels['drafts'] = 'Kladder';
$labels['sent'] = 'Sendt post';
$labels['trash'] = 'Papirkurv';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Vis rigtige navne for specielle mapper';
+
+// message listing
$labels['subject'] = 'Emne';
$labels['from'] = 'Afsender';
$labels['sender'] = 'Afsender';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Firma';
$labels['readstatus'] = 'Læst status';
$labels['listoptions'] = 'Listeindstillinger';
+
$labels['mailboxlist'] = 'Mapper';
$labels['messagesfromto'] = 'Besked $from til $to af $count';
$labels['threadsfromto'] = 'Tråd $from til $to af $count';
$labels['messagenrof'] = 'Besked $nr af $count';
$labels['fromtoshort'] = '$from – $to af $count';
+
$labels['copy'] = 'Kopiér';
$labels['move'] = 'Flyt';
$labels['moveto'] = 'Flyt til...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Download';
$labels['open'] = 'Ã…ben';
$labels['showattachment'] = 'Vis';
$labels['showanyway'] = 'Vis alligevel';
+
$labels['filename'] = 'Filnavn';
$labels['filesize'] = 'Filstørrelse';
+
$labels['addtoaddressbook'] = 'Tilføj til adressebog';
+
+// weekdays short
$labels['sun'] = 'Søn';
$labels['mon'] = 'Man';
$labels['tue'] = 'Tir';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Ons';
$labels['thu'] = 'Tor';
$labels['fri'] = 'Fre';
$labels['sat'] = 'Lør';
+
+// weekdays long
$labels['sunday'] = 'Søndag';
$labels['monday'] = 'Mandag';
$labels['tuesday'] = 'Tirsdag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Onsdag';
$labels['thursday'] = 'Torsdag';
$labels['friday'] = 'Fredag';
$labels['saturday'] = 'Lørdag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'Marts';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'I dag';
+
+// toolbar buttons
$labels['refresh'] = 'Opdatér';
$labels['checkmail'] = 'Se efter nye beskeder';
$labels['compose'] = 'Ny besked';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Flere funktioner...';
$labels['more'] = 'Mere';
$labels['back'] = 'Tilbage';
$labels['options'] = 'Indstillinger';
+
$labels['select'] = 'Vælg';
$labels['all'] = 'Alle';
$labels['none'] = 'Ingen';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Udfold alle';
$labels['expand-unread'] = 'Udfold ulæste';
$labels['collapse-all'] = 'Fold alle';
$labels['threaded'] = 'Trådet';
+
$labels['autoexpand_threads'] = 'Udfold besked tråde';
$labels['do_expand'] = 'alle tråde';
$labels['expand_only_unread'] = 'kun dem med ulæste beskeder';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Vist kolonne';
$labels['listsorting'] = 'Sorteringskolonne';
$labels['listorder'] = 'Sorter efter';
$labels['listmode'] = 'Listevisningsmode';
+
$labels['folderactions'] = 'Mappehandlinger...';
$labels['compact'] = 'Ryd op';
$labels['empty'] = 'Tøm';
-$labels['importmessages'] = 'Importer beskeder';
+
$labels['quota'] = 'Diskforbrug';
$labels['unknown'] = 'ukendt';
$labels['unlimited'] = 'ubegrænset';
+
$labels['quicksearch'] = 'Hurtigsøg';
$labels['resetsearch'] = 'Nulstil søgning';
$labels['searchmod'] = 'Søgeparametre';
$labels['msgtext'] = 'Hele beskeden';
$labels['body'] = 'Body';
-$labels['type'] = 'Type';
-$labels['namex'] = 'Navn';
+
$labels['openinextwin'] = 'Ã…bn i nyt vindue';
$labels['emlsave'] = 'Download (.eml)';
$labels['changeformattext'] = 'Vis i ren tekst format';
$labels['changeformathtml'] = 'Vis i HTML format';
+
+// message compose
$labels['editasnew'] = 'Redigér som ny';
$labels['send'] = 'Send';
$labels['sendmessage'] = 'Send besked';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Anmod om kvittering ved læst';
$labels['dsn'] = 'Anmod om leveringsstatus';
$labels['mailreplyintro'] = '$sender skrev den $date:';
$labels['originalmessage'] = 'Original besked';
+
$labels['editidents'] = 'Ret identiteter';
$labels['spellcheck'] = 'Stav';
$labels['checkspelling'] = 'Stavekontrol';
$labels['resumeediting'] = 'Genoptag redigering';
$labels['revertto'] = 'Vend tilbage til';
-$labels['responses'] = 'Svar';
-$labels['insertresponse'] = 'Indsæt et svar';
-$labels['manageresponses'] = 'Administrer svar';
-$labels['savenewresponse'] = 'Gem et nyt svar';
-$labels['editresponses'] = 'Rediger svar';
-$labels['editresponse'] = 'Rediger svar';
-$labels['responsename'] = 'Navn';
-$labels['responsetext'] = 'Svartekst';
+
$labels['attach'] = 'Vedhæft';
$labels['attachments'] = 'Vedhæftninger';
$labels['upload'] = 'Overfør';
$labels['uploadprogress'] = '$percent ($current af $total)';
$labels['close'] = 'Luk';
$labels['messageoptions'] = 'Beskedmuligheder...';
+
$labels['low'] = 'Lav';
$labels['lowest'] = 'Lavest';
$labels['normal'] = 'Normal';
$labels['high'] = 'Høj';
$labels['highest'] = 'Højest';
+
$labels['nosubject'] = '(intet emne)';
$labels['showimages'] = 'Vis billeder';
$labels['alwaysshow'] = 'Vis altid billeder fra $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Dette er en kladde.';
$labels['andnmore'] = '$nr yderligere...';
$labels['togglemoreheaders'] = 'Vis yderligere headers';
$labels['togglefullheaders'] = 'Ændre rå brevhoveder';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Almindelig tekst';
$labels['savesentmessagein'] = 'Gem afsendt besked i';
$labels['dontsave'] = 'gem ikke';
$labels['maxuploadsize'] = 'Maksimale tilladte filstørrelse er $size';
+
$labels['addcc'] = 'Tilføj Cc';
$labels['addbcc'] = 'Tilføj Bcc';
$labels['addreplyto'] = 'Tilføj Svar-Til adresse';
$labels['addfollowupto'] = 'Tilføj følg-op adresse';
+
+// mdn
$labels['mdnrequest'] = 'Afsenderen af denne besked har bedt om at modtage en bekræftelse når du læser beskeden. Vil du sende kvittering for læsning?';
$labels['receiptread'] = 'Send kvittering for læsning';
$labels['yourmessage'] = 'Dette er en kvittering for at din besked er blevet vist';
$labels['receiptnote'] = 'Bemærk: Denne kvittering bekræfter udelukkende at beskeden blev vist på modtagerens computer. Der er ingen garanti for at modtageren har læst eller forstået beskedens indhold.';
+
+// address boook
$labels['name'] = 'Vist navn';
$labels['firstname'] = 'Fornavn';
$labels['surname'] = 'Efternavn';
@@ -270,6 +301,7 @@ $labels['search'] = 'Søg';
$labels['advsearch'] = 'Avanceret søg';
$labels['advanced'] = 'Avanceret';
$labels['other'] = 'Andet';
+
$labels['typehome'] = 'Hjem';
$labels['typework'] = 'Arbejde';
$labels['typeother'] = 'Andet';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Hjemmeside';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Tilføj felt...';
$labels['addcontact'] = 'Tilføj ny kontakt';
$labels['editcontact'] = 'Redigér kontakt';
$labels['contacts'] = 'Kontakter';
$labels['contactproperties'] = 'Kontaktegenskaber';
$labels['personalinfo'] = 'Personlig information';
+
$labels['edit'] = 'Redigér';
$labels['cancel'] = 'Annullér';
$labels['save'] = 'Gem';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Omdøb';
$labels['addphoto'] = 'Tilføj';
$labels['replacephoto'] = 'Erstat';
$labels['uploadphoto'] = 'Overfør billede';
+
$labels['newcontact'] = 'Opret nyt kontaktkort';
$labels['deletecontact'] = 'Slet valgte kontakter';
$labels['composeto'] = 'Skriv besked til';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Opret ny kontaktgruppe';
$labels['grouprename'] = 'Omdøb gruppe';
$labels['groupdelete'] = 'Slet gruppe';
$labels['groupremoveselected'] = 'Fjern markerede kontakter fra gruppen';
+
$labels['previouspage'] = 'Vis den forrige side';
$labels['firstpage'] = 'Vis første side';
$labels['nextpage'] = 'Vis næste side';
$labels['lastpage'] = 'Vis sidste side';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Grupper';
-$labels['listgroup'] = 'Vis gruppemedlemmer';
$labels['personaladrbook'] = 'Personlige adresser';
+
$labels['searchsave'] = 'Gem søgning';
$labels['searchdelete'] = 'Slet søgning';
+
$labels['import'] = 'Importér';
$labels['importcontacts'] = 'Importér kontakter';
$labels['importfromfile'] = 'Importér fra fil:';
-$labels['importtarget'] = 'Tilføj kontakter til';
+$labels['importtarget'] = 'Tilføj nye kontakter til adressebogen:';
$labels['importreplace'] = 'Overskriv hele adressebogen';
-$labels['importgroups'] = 'Importer gruppetildelinger';
-$labels['importgroupsall'] = 'Alle (opret grupper hvis nødvendigt)';
-$labels['importgroupsexisting'] = 'Kun for eksisterende grupper';
$labels['importdesc'] = 'Du kan uploade kontakter fra en eksisterende adressebog. <br/>I øjeblikket supportere vi import af adresser fra <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> og CSV (komma-separeret) data format.';
$labels['done'] = 'Færdig';
+
+// settings
$labels['settingsfor'] = 'Indstillinger for';
$labels['about'] = 'Om';
$labels['preferences'] = 'Indstillinger';
$labels['userpreferences'] = 'Brugerindstillinger';
$labels['editpreferences'] = 'Redigér brugerindstillinger';
+
$labels['identities'] = 'Identiteter';
$labels['manageidentities'] = 'Styr identiteterne for denne konto';
$labels['newidentity'] = 'Ny identitet';
+
$labels['newitem'] = 'Nyt punkt';
$labels['edititem'] = 'Redigér punkt';
+
$labels['preferhtml'] = 'Vis HTML';
$labels['defaultcharset'] = 'Standard tegnkodning';
$labels['htmlmessage'] = 'HTML-besked';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'Skriv HTML-besked';
$labels['htmlonreply'] = 'kun når jeg besvarer HTML-beskeder';
$labels['htmlonreplyandforward'] = 'ved videresendelse eller besvarelse af HTML beskeder';
$labels['htmlsignature'] = 'HTML-signatur';
-$labels['showemail'] = 'Vis email-adresse med vist navn';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Forhåndsvisning';
$labels['skin'] = 'Brugerflade';
$labels['logoutclear'] = 'Tøm Papirkurv når jeg logger af';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorer ord med tal';
$labels['spellcheckignorecaps'] = 'Ignorer ord hvor alle bogstaver er versaler';
$labels['addtodict'] = 'Tilføj til ordbog';
$labels['mailtoprotohandler'] = 'Registrer håndtering af \'mailto:\' links';
-$labels['standardwindows'] = 'Behandl popups som standardvinduer';
$labels['forwardmode'] = 'Videresendelse af besked';
$labels['inline'] = 'inline';
$labels['asattachment'] = 'som vedhæftning';
+
$labels['folder'] = 'Mappe';
$labels['folders'] = 'Mapper';
$labels['foldername'] = 'Mappenavn';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Mappetype';
$labels['personalfolder'] = 'Privat mappe';
$labels['otherfolder'] = 'Anden brugers mappe';
$labels['sharedfolder'] = 'Offentlig mappe';
+
$labels['sortby'] = 'Sortér efter';
$labels['sortasc'] = 'Ældste først';
$labels['sortdesc'] = 'Nyeste først';
$labels['undo'] = 'Fortryd';
+
$labels['installedplugins'] = 'Installerede udvidelser';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Version';
$labels['source'] = 'Kilde';
$labels['license'] = 'Licens';
$labels['support'] = 'FÃ¥ support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'kB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engelsk';
$labels['westerneuropean'] = 'Vesteuropæisk';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisk';
$labels['japanese'] = 'Japansk';
$labels['korean'] = 'Koreansk';
$labels['chinese'] = 'Kinesisk';
+
?>
diff --git a/program/localization/da_DK/messages.inc b/program/localization/da_DK/messages.inc
index 1e4635b8d..9a0b8e4a5 100644
--- a/program/localization/da_DK/messages.inc
+++ b/program/localization/da_DK/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Der opstod en fejl!';
$messages['loginfailed'] = 'Det lykkedes ikke at logge på.';
$messages['cookiesdisabled'] = 'Din browser accepterer ikke cookies.';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Beskeden blev afsendt succesfuldt.';
$messages['savingmessage'] = 'Gemmer besked...';
$messages['messagesaved'] = 'Beskeden er gemt i kladdemappen.';
$messages['successfullysaved'] = 'Gemt succesfuldt';
-$messages['savingresponse'] = 'Gemmer svartekst...';
-$messages['deleteresponseconfirm'] = 'Er du sikker på, at du ønsker at slette svarteksten?';
$messages['addedsuccessfully'] = 'Kontakten blev tilføjet adressebogen.';
$messages['contactexists'] = 'Der er allerede en kontakt med denne e-mailadresse.';
$messages['contactnameexists'] = 'En kontakt med samme navn eksisterer allerede.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'Den søgte kontakt blev ikke fundet.';
$messages['contactsearchonly'] = 'Indtast søgeord for at finde kontakter.';
$messages['sendingfailed'] = 'Beskeden kunne ikke sendes.';
$messages['senttooquickly'] = 'Vent venligst $sec sekunder før du sender denne besked.';
-$messages['errorsavingsent'] = 'Der opstod en fejl ved at gemme den sendte besked.';
-$messages['errorsaving'] = 'Der opstod en fejl ved at gemme.';
+$messages['errorsavingsent'] = 'Der opstod en fejl da den sendte besked blev gemt.';
+$messages['errorsaving'] = 'Der opstod en fejl under gemning.';
$messages['errormoving'] = 'Beskeden kunne ikke flyttes.';
$messages['errorcopying'] = 'Beskeden kunne ikke kopieres.';
$messages['errordeleting'] = 'Beskeden kunne ikke slettes.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Fjerner formatering fra besked...';
$messages['messageopenerror'] = 'Beskeden kunne ikke hentes fra serveren.';
$messages['fileuploaderror'] = 'Upload mislykkedes.';
$messages['filesizeerror'] = 'Den indsatte fil fylder mere end det maksimale på $size.';
-$messages['copysuccess'] = '$nr blev kopieret.';
-$messages['movesuccess'] = '$nr kontakter blev flyttet.';
-$messages['copyerror'] = 'Kunne ikke kopiere nogen kontakter.';
-$messages['moveerror'] = 'Kunne ikke flytte nogen kontakter.';
+$messages['copysuccess'] = 'Det lykkedes at kopiere $nr adresser.';
+$messages['copyerror'] = 'Kunne ikke kopiere adresserne.';
$messages['sourceisreadonly'] = 'Denne adressekilde er kun til læsning.';
$messages['errorsavingcontact'] = 'Kunne ikke gemme kontaktadressen.';
$messages['movingmessage'] = 'Flytter besked(er)...';
$messages['copyingmessage'] = 'Kopierer besked(er)...';
$messages['copyingcontact'] = 'Kopierer kontakt(er)...';
-$messages['movingcontact'] = 'Flytter kontakt(er)...';
$messages['deletingmessage'] = 'Sletter besked(er)...';
$messages['markingmessage'] = 'Markerer besked(er)...';
$messages['addingmember'] = 'Tilføjer kontakt(er) til gruppen...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importerer, vent venligst...';
$messages['importformaterror'] = 'Importering mislykkedes! Den uploadede fil indeholder ikke gyldige data til importering.';
$messages['importconfirm'] = '<b>Importerede $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Sprang over $skipped eksisterende kontakter</b>';
-$messages['importmessagesuccess'] = 'Importerede $nr beskeder';
-$messages['importmessageerror'] = 'Import mislykkedes! Den uploadede fil er ikke en gyldig besked eller mailbox-fil';
$messages['opnotpermitted'] = 'Handlingen er ikke tilladt!';
$messages['nofromaddress'] = 'Der mangler en e-mailadresse i den valgte identitet.';
$messages['editorwarning'] = 'Al formatering af teksten forsvinder, hvis der skiftes til ren tekst. Vil du fortsætte?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'SMTP fejl: $msg';
$messages['emailformaterror'] = 'Ugyldig e-mailadresse: $email';
$messages['toomanyrecipients'] = 'For mange modtagere. Reducer antallet af modtagere til $max.';
$messages['maxgroupmembersreached'] = 'Antallet af gruppemedlemmer overstiger maksimum på $max.';
-$messages['internalerror'] = 'En intern fejl opstod. Prøv venligst igen.';
+$messages['internalerror'] = 'Der opstod en intern fejl - prøv venligst igen.';
$messages['contactdelerror'] = 'Kunne ikke slette kontakt(er).';
$messages['contactdeleted'] = 'Kontakt(er) slettet.';
$messages['contactrestoreerror'] = 'Kunne ikke gendanne slettede kontakt(er).';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Kan ikke oprette/flytte mappe ind i valgt mapp
$messages['messagetoobig'] = 'Denne del af beskeden er for stor til at blive behandlet.';
$messages['attachmentvalidationerror'] = 'ADVARSEL! Den vedhæftede fil er mistænkelig - Typen stemmer ikke overens med den oplyste type. Hvis du ikke har tillid til afsender, skal du ikke åbne filen da den kan indholde onsindet indhold. <br/><br/><em>Forventet: $expected; Fundet: $detected</em>';
$messages['noscriptwarning'] = 'Advarsel: Denne webmailclient kræver Javascript! For at kunne bruge den slå venligst Javascripts til i din browserindstillinger.';
+
?>
diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc
index b416d0b98..e64859d2c 100644
--- a/program/localization/de_CH/labels.inc
+++ b/program/localization/de_CH/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Willkommen bei $product';
$labels['username'] = 'Benutzername';
$labels['password'] = 'Passwort';
$labels['server'] = 'Server';
$labels['login'] = 'Login';
+
+// taskbar
$labels['logout'] = 'Logout';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Einstellungen';
$labels['addressbook'] = 'Adressbuch';
+
+// mailbox names
$labels['inbox'] = 'Posteingang';
$labels['drafts'] = 'Entwürfe';
$labels['sent'] = 'Gesendet';
$labels['trash'] = 'Gelöscht';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Spezialordner nicht übersetzen';
+
+// message listing
$labels['subject'] = 'Betreff';
$labels['from'] = 'Von';
$labels['sender'] = 'Absender';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorität';
$labels['organization'] = 'Organisation';
$labels['readstatus'] = 'Gelesen/Ungelesen';
$labels['listoptions'] = 'Listenoptionen...';
+
$labels['mailboxlist'] = 'Ordner';
$labels['messagesfromto'] = 'Nachrichten $from bis $to von $count';
$labels['threadsfromto'] = 'Konversationen $from bis $to von $count';
$labels['messagenrof'] = 'Nachricht $nr von $count';
$labels['fromtoshort'] = '$from – $to von $count';
+
$labels['copy'] = 'Kopieren';
$labels['move'] = 'Verschieben';
$labels['moveto'] = 'Verschieben nach...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Download';
$labels['open'] = 'Öffnen';
$labels['showattachment'] = 'Anzeigen';
$labels['showanyway'] = 'Trotzdem anzeigen';
+
$labels['filename'] = 'Dateiname';
$labels['filesize'] = 'Dateigrösse';
+
$labels['addtoaddressbook'] = 'Ins Adressbuch übernehmen';
+
+// weekdays short
$labels['sun'] = 'So';
$labels['mon'] = 'Mo';
$labels['tue'] = 'Di';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mi';
$labels['thu'] = 'Do';
$labels['fri'] = 'Fr';
$labels['sat'] = 'Sa';
+
+// weekdays long
$labels['sunday'] = 'Sonntag';
$labels['monday'] = 'Montag';
$labels['tuesday'] = 'Dienstag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Mittwoch';
$labels['thursday'] = 'Donnerstag';
$labels['friday'] = 'Freitag';
$labels['saturday'] = 'Samstag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mär';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dez';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'März';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Dezember';
+
$labels['today'] = 'Heute';
+
+// toolbar buttons
$labels['refresh'] = 'Aktualisieren';
$labels['checkmail'] = 'Auf neue Nachrichten prüfen';
$labels['compose'] = 'Schreiben';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mehr ...';
$labels['more'] = 'Mehr';
$labels['back'] = 'Zurück';
$labels['options'] = 'Optionen';
+
$labels['select'] = 'Auswählen';
$labels['all'] = 'Alle';
$labels['none'] = 'Keine';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Alle aufklappen';
$labels['expand-unread'] = 'Ungelesene aufklappen';
$labels['collapse-all'] = 'Alle zuklappen';
$labels['threaded'] = 'Gruppiert';
+
$labels['autoexpand_threads'] = 'Konversationen aufklappen';
$labels['do_expand'] = 'alle';
$labels['expand_only_unread'] = 'nur ungelesene';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Spalten';
$labels['listsorting'] = 'Sortierung';
$labels['listorder'] = 'Ordnung';
$labels['listmode'] = 'Anzeigemodus';
+
$labels['folderactions'] = 'Ordneraktionen...';
$labels['compact'] = 'Packen';
$labels['empty'] = 'Leeren';
-$labels['importmessages'] = 'Nachrichten importieren';
+
$labels['quota'] = 'Verwendeter Speicherplatz';
$labels['unknown'] = 'unbekannt';
$labels['unlimited'] = 'unlimitiert';
+
$labels['quicksearch'] = 'Schnellsuche';
$labels['resetsearch'] = 'Löschen';
$labels['searchmod'] = 'Suchkriterien ändern';
$labels['msgtext'] = 'Ganze Nachricht';
$labels['body'] = 'Inhalt';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Name';
+
$labels['openinextwin'] = 'In neuem Fenster öffnen';
$labels['emlsave'] = 'Herunterladen (.eml)';
$labels['changeformattext'] = 'Als reiner Text anzeigen';
$labels['changeformathtml'] = 'Als original HTML anzeigen';
+
+// message compose
$labels['editasnew'] = 'Als neue Nachricht öffnen';
$labels['send'] = 'Senden';
$labels['sendmessage'] = 'Nachricht jetzt senden';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Empfangsbestätigung (MDN)';
$labels['dsn'] = 'Übermittlungsbestätigung (DSN)';
$labels['mailreplyintro'] = 'Am $date, schrieb $sender:';
$labels['originalmessage'] = 'Originalnachricht';
+
$labels['editidents'] = 'Absender bearbeiten';
$labels['spellcheck'] = 'Rechtschreibung';
$labels['checkspelling'] = 'Rechtschreibung prüfen';
$labels['resumeediting'] = 'Bearbeitung fortsetzen';
$labels['revertto'] = 'Zurück zu';
-$labels['responses'] = 'Antworten';
-$labels['insertresponse'] = 'Antwort einfügen';
-$labels['manageresponses'] = 'Antworten verwalten';
-$labels['savenewresponse'] = 'Neue Antwort speichern';
-$labels['editresponses'] = 'Antworten bearbeiten';
-$labels['editresponse'] = 'Antwort bearbeiten';
-$labels['responsename'] = 'Name';
-$labels['responsetext'] = 'Antworttext';
+
$labels['attach'] = 'Anhängen';
$labels['attachments'] = 'Anhänge';
$labels['upload'] = 'Hochladen';
$labels['uploadprogress'] = '$percent ($current von $total)';
$labels['close'] = 'Schliessen';
$labels['messageoptions'] = 'Optionen...';
+
$labels['low'] = 'Niedrig';
$labels['lowest'] = 'Niedrigste';
$labels['normal'] = 'Normal';
$labels['high'] = 'Hoch';
$labels['highest'] = 'Höchste';
+
$labels['nosubject'] = '(kein Betreff)';
$labels['showimages'] = 'Bilder anzeigen';
$labels['alwaysshow'] = 'Bilder von $sender immer zeigen';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Dies ist ein Entwurf';
$labels['andnmore'] = '$nr weitere...';
$labels['togglemoreheaders'] = 'Weitere Kopfzeilen anzeigen';
$labels['togglefullheaders'] = 'Original-Kopfzeilen ein-/ausblenden';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Klartext';
$labels['savesentmessagein'] = 'Nachricht speichern in';
$labels['dontsave'] = 'nicht speichern';
$labels['maxuploadsize'] = 'Maximal erlaubte Dateigrösse ist $size';
+
$labels['addcc'] = 'Cc hinzufügen';
$labels['addbcc'] = 'Bcc hinzufügen';
$labels['addreplyto'] = 'Antwortadresse hinzufügen';
$labels['addfollowupto'] = 'Followup-To hinzufügen';
+
+// mdn
$labels['mdnrequest'] = 'Der Sender dieser Nachricht hat eine Empfangsbestätigung angefordert. Möchten Sie diese jetzt senden?';
$labels['receiptread'] = 'Empfangsbestätigung (gelesen)';
$labels['yourmessage'] = 'Dieses ist eine Empfangsbestätigung für Ihre Nachricht';
$labels['receiptnote'] = 'Hinweis: Der Empfänger hat den Empfang der Nachricht bestätigt. Dieses ist keine Garantie, dass die Nachricht gelesen und verstanden wurde.';
+
+// address boook
$labels['name'] = 'Anzeigename';
$labels['firstname'] = 'Vorname';
$labels['surname'] = 'Nachname';
@@ -270,6 +301,7 @@ $labels['search'] = 'Suche';
$labels['advsearch'] = 'Erweiterte Suche';
$labels['advanced'] = 'Erweitert';
$labels['other'] = 'Andere';
+
$labels['typehome'] = 'Zuhause';
$labels['typework'] = 'Arbeit';
$labels['typeother'] = 'Andere';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Homepage';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Feld hinzufügen...';
$labels['addcontact'] = 'Kontakt hinzufügen';
$labels['editcontact'] = 'Kontakt bearbeiten';
$labels['contacts'] = 'Kontakte';
$labels['contactproperties'] = 'Kontaktdaten';
$labels['personalinfo'] = 'Persönliche Informationen';
+
$labels['edit'] = 'Bearbeiten';
$labels['cancel'] = 'Abbrechen';
$labels['save'] = 'Speichern';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Umbenennen';
$labels['addphoto'] = 'Hinzufügen';
$labels['replacephoto'] = 'Ersetzen';
$labels['uploadphoto'] = 'Bild hochladen';
+
$labels['newcontact'] = 'Neuen Kontakt erfassen';
$labels['deletecontact'] = 'Gewählte Kontakte löschen';
$labels['composeto'] = 'Nachricht verfassen';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Neue Adressgruppe erstellen';
$labels['grouprename'] = 'Gruppe umbenennen';
$labels['groupdelete'] = 'Gruppe löschen';
$labels['groupremoveselected'] = 'Gewählte Kontakte aus Gruppe entfernen';
+
$labels['previouspage'] = 'Eine Seite zurück';
$labels['firstpage'] = 'Erste Seite';
$labels['nextpage'] = 'Nächste Seite';
$labels['lastpage'] = 'Letzte Seite';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Gruppen';
-$labels['listgroup'] = 'Gruppenmitglieder anzeigen';
$labels['personaladrbook'] = 'Persönliches Adressbuch';
+
$labels['searchsave'] = 'Suche speichern';
$labels['searchdelete'] = 'Suche löschen';
+
$labels['import'] = 'Importieren';
$labels['importcontacts'] = 'Adressen importieren';
$labels['importfromfile'] = 'Import aus Datei:';
-$labels['importtarget'] = 'Importieren nach';
+$labels['importtarget'] = 'Neue Kontakte speichern in:';
$labels['importreplace'] = 'Bestehendes Adressbuch komplett ersetzen';
-$labels['importgroups'] = 'Gruppenzuweisungen importieren';
-$labels['importgroupsall'] = 'Alle (nicht vorhandene Gruppen erstellen)';
-$labels['importgroupsexisting'] = 'Für für existierende Gruppen';
$labels['importdesc'] = 'Sie können Kontakte aus einem bestehenden Adressbuch hochladen.rnEs können Adressbücher im <a href="http://de.wikipedia.org/wiki/VCard">vCard</a>- oder CSV-Format importiert werden.';
$labels['done'] = 'Fertig';
+
+// settings
$labels['settingsfor'] = 'Einstellungen für';
$labels['about'] = 'Ãœber';
$labels['preferences'] = 'Einstellungen';
$labels['userpreferences'] = 'Benutzereinstellungen';
$labels['editpreferences'] = 'Einstellungen bearbeiten';
+
$labels['identities'] = 'Absender';
$labels['manageidentities'] = 'Absender für dieses Konto verwalten';
$labels['newidentity'] = 'Neuer Absender';
+
$labels['newitem'] = 'Neuer Eintrag';
$labels['edititem'] = 'Eintrag bearbeiten';
+
$labels['preferhtml'] = 'HTML bevorzugen';
$labels['defaultcharset'] = 'Standard-Zeichensatz';
$labels['htmlmessage'] = 'HTML Nachricht';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Wörter mit Ziffern überspringen';
$labels['spellcheckignorecaps'] = 'Wörter überspringen, die nur aus Grossbuchstaben bestehen';
$labels['addtodict'] = 'Zum Wörterbuch hinzufügen';
$labels['mailtoprotohandler'] = 'Als Empfänger für mailto: Links einrichten';
-$labels['standardwindows'] = 'Popups als normale Browserfenster öffnen';
$labels['forwardmode'] = 'Weiterleiten einer Nachricht';
$labels['inline'] = 'eingebettet';
$labels['asattachment'] = 'als Anhang';
+
$labels['folder'] = 'Ordner';
$labels['folders'] = 'Ordner';
$labels['foldername'] = 'Ordnername';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Ordnertyp';
$labels['personalfolder'] = 'Privater Ordner';
$labels['otherfolder'] = 'Order eines anderen Benutzers';
$labels['sharedfolder'] = 'Öffentlicher Ordner';
+
$labels['sortby'] = 'Sortieren nach';
$labels['sortasc'] = 'aufsteigend sortieren';
$labels['sortdesc'] = 'absteigend sortieren';
$labels['undo'] = 'Rückgängig';
+
$labels['installedplugins'] = 'Installierte Plugins';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Version';
$labels['source'] = 'Quellcode';
$labels['license'] = 'Lizenz';
$labels['support'] = 'Support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Englisch';
$labels['westerneuropean'] = 'Westeuropäisch';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisch';
$labels['japanese'] = 'Japanisch';
$labels['korean'] = 'Koreanisch';
$labels['chinese'] = 'Chinesisch';
+
?>
diff --git a/program/localization/de_CH/messages.inc b/program/localization/de_CH/messages.inc
index 2f3257703..f3697a825 100644
--- a/program/localization/de_CH/messages.inc
+++ b/program/localization/de_CH/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Fehlermeldung';
$messages['loginfailed'] = 'Login fehlgeschlagen';
$messages['cookiesdisabled'] = 'Ihr Browser akzeptiert keine Cookies';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Nachricht erfolgreich gesendet';
$messages['savingmessage'] = 'Nachricht wird gespeichert...';
$messages['messagesaved'] = 'Nachricht als Entwurf gespeichert';
$messages['successfullysaved'] = 'Erfolgreich gespeichert';
-$messages['savingresponse'] = 'Antwort wird gespeichert...';
-$messages['deleteresponseconfirm'] = 'Wollen Sie diese Antwort wirklich löschen?';
$messages['addedsuccessfully'] = 'Kontakt zum Adressbuch hinzugefügt';
$messages['contactexists'] = 'Es existiert bereits ein Kontakt mit dieser E-Mail-Adresse.';
$messages['contactnameexists'] = 'Es existiert bereits ein Kontakt mit diesem Namen';
@@ -57,7 +57,7 @@ $messages['contactsearchonly'] = 'Geben Sie einen Suchbegriff ein, um Kontakte z
$messages['sendingfailed'] = 'Versand der Nachricht fehlgeschlagen';
$messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht';
$messages['errorsavingsent'] = 'Beim Speichern der gesendeten Nachricht ist ein Fehler aufgetreten.';
-$messages['errorsaving'] = 'Beim Speichern ist ein Fehler aufgetreten.';
+$messages['errorsaving'] = 'Beim Speichern ist ein Fehler aufgetreten';
$messages['errormoving'] = 'Nachricht(en) konnte(n) nicht verschoben werden.';
$messages['errorcopying'] = 'Nachticht(en) konnte(n) nicht kopiert werden.';
$messages['errordeleting'] = 'Nachricht(en) konnte(n) nicht gelöscht werden.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Formatierung wird entfernt...';
$messages['messageopenerror'] = 'Die Nachricht konnte nicht vom Server geladen werden.';
$messages['fileuploaderror'] = 'Der Dateiupload ist fehlgeschlagen.';
$messages['filesizeerror'] = 'Die Datei überschreitet die maximale Grösse von $size.';
-$messages['copysuccess'] = '$nr Kontakt(e) erfolgreich kopiert.';
-$messages['movesuccess'] = '$nr Kontakt(e) erfolgreich verschoben.';
-$messages['copyerror'] = 'Kontakte konnten nicht kopiert werden.';
-$messages['moveerror'] = 'Kontakte konnten nicht verschoben werden.';
+$messages['copysuccess'] = '$nr Adressen erfolgreich kopiert.';
+$messages['copyerror'] = 'Die Adressen konnten nicht kopiert werden.';
$messages['sourceisreadonly'] = 'Das Adressverzeichnis kann nicht verändert werden.';
$messages['errorsavingcontact'] = 'Die Änderungen konnten nicht gespeichert werden.';
$messages['movingmessage'] = 'Nachrichten werden verschoben...';
$messages['copyingmessage'] = 'Nachrichten werden kopiert...';
$messages['copyingcontact'] = 'Kontakte werden kopiert...';
-$messages['movingcontact'] = 'Kontakt(e) werden verschoben...';
$messages['deletingmessage'] = 'Nachrichten werden gelöscht...';
$messages['markingmessage'] = 'Nachrichten werden markiert...';
$messages['addingmember'] = 'Kontakte werden der Gruppe hinzugefügt...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Daten werden importiert, bitte warten...';
$messages['importformaterror'] = 'Import fehlgeschlagen! Die hochgeladene Datei enthält keines der unterstützten Datenformate.';
$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestehende Einträge wurden übersprungen</b>';
-$messages['importmessagesuccess'] = '$nr Nachricht(n) erfolgreich importiert';
-$messages['importmessageerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist keine E-Mail-Nachricht oder Mailbox-Datei.';
$messages['opnotpermitted'] = 'Operation nicht erlaubt!';
$messages['nofromaddress'] = 'Fehlende E-Mail-Adresse in ausgewählter Identität.';
$messages['editorwarning'] = 'Beim Wechseln in den Texteditor gehen alle Textformatierungen verloren. Möchten Sie fortfahren?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Konnte den Ordner nicht erstellen/verschieben.
$messages['messagetoobig'] = 'Die Nachricht ist zu gross und kann nicht verarbeitet werden.';
$messages['attachmentvalidationerror'] = 'WARNUNG! Dieser Anhang ist verdächtig, da sein Dateityp nicht dem entspricht, was in der Nachricht angegeben wird. Wenn Sie dem Absender nicht vertrauen, sollten Sie diesen Anhang nicht im Browser öffnen, da er Ihrem Computer Schaden zuführen könnte. <br/><br/><em>Erwartet: $expected; gefunden: $detected</em>';
$messages['noscriptwarning'] = 'Achtung! Dieser Webmail-Service erfordert Javascript. Um ihn zu benutzten aktivieren Sie Javascript in ihren Browser-Einstellungen.';
+
?>
diff --git a/program/localization/de_DE/labels.inc b/program/localization/de_DE/labels.inc
index e3f4652cc..d497a6bc6 100644
--- a/program/localization/de_DE/labels.inc
+++ b/program/localization/de_DE/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Willkommen bei $product';
$labels['username'] = 'Benutzername';
$labels['password'] = 'Passwort';
$labels['server'] = 'Server';
$labels['login'] = 'Anmelden';
+
+// taskbar
$labels['logout'] = 'Abmelden';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Einstellungen';
$labels['addressbook'] = 'Adressbuch';
+
+// mailbox names
$labels['inbox'] = 'Posteingang';
$labels['drafts'] = 'Entwürfe';
$labels['sent'] = 'Gesendet';
$labels['trash'] = 'Gelöscht';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Echte Namen für Spezialordner anzeigen';
+
+// message listing
$labels['subject'] = 'Betreff';
$labels['from'] = 'Von';
$labels['sender'] = 'Absender';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorität';
$labels['organization'] = 'Organisation';
$labels['readstatus'] = 'Gelesen/Ungelesen';
$labels['listoptions'] = 'Listenoptionen...';
+
$labels['mailboxlist'] = 'Ordner';
$labels['messagesfromto'] = 'Nachrichten $from bis $to von $count';
$labels['threadsfromto'] = 'Konversationen $from bis $to von $count';
$labels['messagenrof'] = 'Nachricht $nr von $count';
$labels['fromtoshort'] = '$from – $to von $count';
+
$labels['copy'] = 'Kopieren';
$labels['move'] = 'Verschieben';
$labels['moveto'] = 'Verschieben nach...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Herunterladen';
$labels['open'] = 'Offen';
$labels['showattachment'] = 'Anzeigen';
$labels['showanyway'] = 'Trotzdem anzeigen';
+
$labels['filename'] = 'Dateiname';
$labels['filesize'] = 'Dateigröße';
+
$labels['addtoaddressbook'] = 'Ins Adressbuch übernehmen';
+
+// weekdays short
$labels['sun'] = 'So';
$labels['mon'] = 'Mo';
$labels['tue'] = 'Di';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mi';
$labels['thu'] = 'Do';
$labels['fri'] = 'Fr';
$labels['sat'] = 'Sa';
+
+// weekdays long
$labels['sunday'] = 'Sonntag';
$labels['monday'] = 'Montag';
$labels['tuesday'] = 'Dienstag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Mittwoch';
$labels['thursday'] = 'Donnerstag';
$labels['friday'] = 'Freitag';
$labels['saturday'] = 'Samstag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mär';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dez';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'März';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Dezember';
+
$labels['today'] = 'Heute';
+
+// toolbar buttons
$labels['refresh'] = 'Aktualisieren';
$labels['checkmail'] = 'Auf neue Nachrichten überprüfen';
$labels['compose'] = 'Schreiben';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mehr...';
$labels['more'] = 'Mehr';
$labels['back'] = 'Zurück';
$labels['options'] = 'Optionen';
+
$labels['select'] = 'Auswahl';
$labels['all'] = 'Alle';
$labels['none'] = 'Keine';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Alle aufklappen';
$labels['expand-unread'] = 'Ungelesene aufklappen';
$labels['collapse-all'] = 'Alle zuklappen';
$labels['threaded'] = 'Gruppiert';
+
$labels['autoexpand_threads'] = 'Konversationen aufklappen';
$labels['do_expand'] = 'alle';
$labels['expand_only_unread'] = 'nur ungelesene';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Spalten';
$labels['listsorting'] = 'Sortierung';
$labels['listorder'] = 'Ordnung';
$labels['listmode'] = 'Anzeigemodus';
+
$labels['folderactions'] = 'Ordneraktionen...';
$labels['compact'] = 'Packen';
$labels['empty'] = 'Leeren';
-$labels['importmessages'] = 'Nachrichten importieren';
+
$labels['quota'] = 'Speicherplatz';
$labels['unknown'] = 'unbekannt';
$labels['unlimited'] = 'unbegrenzt';
+
$labels['quicksearch'] = 'Schnellsuche';
$labels['resetsearch'] = 'Suche zurücksetzen';
$labels['searchmod'] = 'Suchkriterien ändern';
$labels['msgtext'] = 'Nachricht';
$labels['body'] = 'Inhalt';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Name';
+
$labels['openinextwin'] = 'In neuem Fenster öffnen';
$labels['emlsave'] = 'Lokal speichern (.eml)';
$labels['changeformattext'] = 'Als reiner Text anzeigen';
$labels['changeformathtml'] = 'Als original HTML anzeigen';
+
+// message compose
$labels['editasnew'] = 'Als neue Nachricht öffnen';
$labels['send'] = 'Senden';
$labels['sendmessage'] = 'Nachricht jetzt senden';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Empfangsbestätigung (MDN)';
$labels['dsn'] = 'Übermittlungsbestätigung (DSN)';
$labels['mailreplyintro'] = 'Am $date, schrieb $sender:';
$labels['originalmessage'] = 'Originalnachricht';
+
$labels['editidents'] = 'Absender ändern';
$labels['spellcheck'] = 'Rechtschreibung';
$labels['checkspelling'] = 'Rechtschreibung prüfen';
$labels['resumeediting'] = 'Bearbeitung fortsetzen';
$labels['revertto'] = 'Zurück zu';
+
$labels['attach'] = 'Anhängen';
$labels['attachments'] = 'Anhänge';
$labels['upload'] = 'Hochladen';
$labels['uploadprogress'] = '$percent ($current von $total)';
$labels['close'] = 'Schließen';
$labels['messageoptions'] = 'Optionen...';
+
$labels['low'] = 'Niedrig';
$labels['lowest'] = 'Niedrigste';
$labels['normal'] = 'Normal';
$labels['high'] = 'Hoch';
$labels['highest'] = 'Höchste';
+
$labels['nosubject'] = '(kein Betreff)';
$labels['showimages'] = 'Bilder anzeigen';
$labels['alwaysshow'] = 'Bilder von $sender immer zeigen';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Dies ist ein Entwurf';
$labels['andnmore'] = '$nr weitere';
$labels['togglemoreheaders'] = 'Zeige weitere Nachrichten-Header';
$labels['togglefullheaders'] = 'Original-Kopfzeilen ein-/ausblenden';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Nur-Text';
$labels['savesentmessagein'] = 'Nachricht speichern in';
$labels['dontsave'] = 'nicht speichern';
$labels['maxuploadsize'] = 'Maximal erlaubte Dateigröße ist $size';
+
$labels['addcc'] = 'Cc hinzufügen';
$labels['addbcc'] = 'Bcc hinzufügen';
$labels['addreplyto'] = 'Antwortadresse hinzufügen';
$labels['addfollowupto'] = 'Followup-To hinzufügen';
+
+// mdn
$labels['mdnrequest'] = 'Der Sender dieser Nachricht möchte gerne eine Lesebestätigung. Wollen Sie dieses bestätigen?';
$labels['receiptread'] = 'Empfangsbestätigung (gelesen)';
$labels['yourmessage'] = 'Dies ist eine Empfangsbestätigung für Ihre Nachricht';
$labels['receiptnote'] = 'Hinweis: Der Empfänger hat den Empfang der Nachricht bestätigt. Dies ist keine Garantie, dass die Nachricht gelesen und verstanden wurde.';
+
+// address boook
$labels['name'] = 'Angezeigter Name';
$labels['firstname'] = 'Vorname';
$labels['surname'] = 'Nachname';
@@ -262,6 +301,7 @@ $labels['search'] = 'Suche';
$labels['advsearch'] = 'Detaillierte Suche';
$labels['advanced'] = 'Erweitert';
$labels['other'] = 'Andere';
+
$labels['typehome'] = 'Privat';
$labels['typework'] = 'Dienstlich';
$labels['typeother'] = 'Andere';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Assistenz';
$labels['typehomepage'] = 'Internet';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Feld hinzufügen...';
$labels['addcontact'] = 'Kontakt hinzufügen';
$labels['editcontact'] = 'Kontakt bearbeiten';
$labels['contacts'] = 'Kontakte';
$labels['contactproperties'] = 'Kontaktdaten';
$labels['personalinfo'] = 'Persönliche Informationen';
+
$labels['edit'] = 'Bearbeiten';
$labels['cancel'] = 'Abbrechen';
$labels['save'] = 'Speichern';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Umbenennen';
$labels['addphoto'] = 'Kontaktbild hinzufügen';
$labels['replacephoto'] = 'Bild ändern';
$labels['uploadphoto'] = 'Bild hochladen';
+
$labels['newcontact'] = 'Neuen Kontakt erstellen';
$labels['deletecontact'] = 'Gewählte Kontakte löschen';
$labels['composeto'] = 'Nachricht verfassen';
@@ -303,34 +346,41 @@ $labels['newcontactgroup'] = 'Neue Kontaktgruppe erstellen';
$labels['grouprename'] = 'Gruppe umbenennen';
$labels['groupdelete'] = 'Gruppe löschen';
$labels['groupremoveselected'] = 'Gewählte Kontakte aus Gruppe entfernen';
+
$labels['previouspage'] = 'Seite zurück';
$labels['firstpage'] = 'Erste Seite';
$labels['nextpage'] = 'Nächste Seite';
$labels['lastpage'] = 'Letzte Seite';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Gruppen';
-$labels['listgroup'] = 'Gruppenmitglieder auflisten';
$labels['personaladrbook'] = 'Persönliches Adressbuch';
+
$labels['searchsave'] = 'Suchergebnisse speichern';
$labels['searchdelete'] = 'Suchergebnisse löschen';
+
$labels['import'] = 'Importieren';
$labels['importcontacts'] = 'Kontakte importieren';
$labels['importfromfile'] = 'Import aus Datei:';
-$labels['importtarget'] = 'Kontakte hinzufügen zu';
+$labels['importtarget'] = 'Einen neuen Kontakt hinzufügen:';
$labels['importreplace'] = 'Bestehendes Adressbuch komplett ersetzen';
-$labels['importgroupsexisting'] = 'Nur für existierende Gruppen';
$labels['importdesc'] = 'Sie können Kontakte von einem vorhandenen Adressbuch hochladen.<br/>Zur Zeit wird der Import von Adressen im <a href="http://de.wikipedia.org/wiki/VCard">vCard</a> oder <a href="http://de.wikipedia.org/wiki/CSV_(Dateiformat)">CSV</a>Format unterstützt.';
$labels['done'] = 'Fertig';
+
+// settings
$labels['settingsfor'] = 'Einstellungen für';
$labels['about'] = 'Ãœber';
$labels['preferences'] = 'Einstellungen';
$labels['userpreferences'] = 'Benutzereinstellungen';
$labels['editpreferences'] = 'Benutzereinstellungen bearbeiten';
+
$labels['identities'] = 'Identitäten';
$labels['manageidentities'] = 'Absender für dieses Konto verwalten';
$labels['newidentity'] = 'Neuer Absender';
+
$labels['newitem'] = 'Neuer Eintrag';
$labels['edititem'] = 'Eintrag bearbeiten';
+
$labels['preferhtml'] = 'HTML anzeigen';
$labels['defaultcharset'] = 'Standard Zeichensatz';
$labels['htmlmessage'] = 'HTML-Nachricht';
@@ -352,7 +402,7 @@ $labels['htmleditor'] = 'HTML-Nachrichten verfassen';
$labels['htmlonreply'] = 'nur Antworten auf HTML-Nachrichten';
$labels['htmlonreplyandforward'] = 'beim Weiterleiten und Beantworten auf HTML-Nachrichten';
$labels['htmlsignature'] = 'HTML-Signatur';
-$labels['showemail'] = 'E-Mail-Adresse mit dem Display Namen anzeigen';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Nachrichtenvorschau anzeigen';
$labels['skin'] = 'Oberflächendesign';
$labels['logoutclear'] = 'Papierkorb beim Abmelden leeren';
@@ -422,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Wörter mit Ziffern überspringen';
$labels['spellcheckignorecaps'] = 'Wörter überspringen, die nur aus Großbuchstaben bestehen';
$labels['addtodict'] = 'Zum Wörterbuch hinzufügen';
$labels['mailtoprotohandler'] = 'Als Empfänger für mailto: Links einrichten';
-$labels['standardwindows'] = 'Popups als Standard Windows behandeln';
$labels['forwardmode'] = 'Nachrichtenweiterleitung';
$labels['inline'] = 'eingebettet';
$labels['asattachment'] = 'als Anhang';
+
$labels['folder'] = 'Ordner';
$labels['folders'] = 'Ordner';
$labels['foldername'] = 'Ordnername';
@@ -446,20 +496,26 @@ $labels['foldertype'] = 'Ordnertyp';
$labels['personalfolder'] = 'Privater Ordner';
$labels['otherfolder'] = 'Ordner eines anderen Benutzers';
$labels['sharedfolder'] = 'Öffentlicher Ordner';
+
$labels['sortby'] = 'Sortieren nach';
$labels['sortasc'] = 'Aufsteigend sortieren';
$labels['sortdesc'] = 'Absteigend sortieren';
$labels['undo'] = 'Rückgängig machen';
+
$labels['installedplugins'] = 'Installierte Plugins';
$labels['plugin'] = 'Erweiterung';
$labels['version'] = 'Version';
$labels['source'] = 'Quellcode';
$labels['license'] = 'Lizenz';
$labels['support'] = 'Support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Englisch';
$labels['westerneuropean'] = 'West Europäisch';
@@ -478,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisch';
$labels['japanese'] = 'Japanisch';
$labels['korean'] = 'Koreanisch';
$labels['chinese'] = 'Chinesisch';
+
?>
diff --git a/program/localization/de_DE/messages.inc b/program/localization/de_DE/messages.inc
index fbc21521a..ba0936d28 100644
--- a/program/localization/de_DE/messages.inc
+++ b/program/localization/de_DE/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ein Fehler ist aufgetreten!';
$messages['loginfailed'] = 'Die Anmeldung ist fehlgeschlagen.';
$messages['cookiesdisabled'] = 'Ihr Browser akzeptiert keine Cookies.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Der angeforderte Kontakt wurde nicht gefunden.';
$messages['contactsearchonly'] = 'Geben Sie einen Suchbegriff ein, um Kontakte zu finden.';
$messages['sendingfailed'] = 'Versenden der Nachricht fehlgeschlagen.';
$messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht.';
+$messages['errorsavingsent'] = 'Ein Fehler ist beim Speichern der gesendeten Nachricht aufgetreten.';
+$messages['errorsaving'] = 'Beim Speichern ist ein Fehler aufgetreten.';
$messages['errormoving'] = 'Nachricht(en) konnte(n) nicht verschoben werden.';
$messages['errorcopying'] = 'Nachticht(en) konnte(n) nicht kopiert werden.';
$messages['errordeleting'] = 'Nachricht(en) konnte(n) nicht gelöscht werden.';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Entferne Formatierungen...';
$messages['messageopenerror'] = 'Die Nachricht konnte nicht vom Server geladen werden.';
$messages['fileuploaderror'] = 'Hochladen der Datei fehlgeschlagen.';
$messages['filesizeerror'] = 'Die hochzuladende Datei überschreitet die Maximalgröße von $size.';
-$messages['copysuccess'] = 'Erfolgreich kopiert $ nr Kontakte.';
-$messages['movesuccess'] = 'Erfolgreich verschoben $ nr Kontakte.';
-$messages['copyerror'] = 'Die Kontakte konnten nicht kopiert werden.';
-$messages['moveerror'] = 'Die Kontakte konnten nicht verschoben werden.';
+$messages['copysuccess'] = '$nr Adressen erfolgreich kopiert.';
+$messages['copyerror'] = 'Die Adressen konnten nicht kopiert werden.';
$messages['sourceisreadonly'] = 'Das Adressverzeichnis kann nicht verändert werden.';
$messages['errorsavingcontact'] = 'Die Änderungen konnten nicht gespeichert werden.';
$messages['movingmessage'] = 'Die E-Mail wird verschoben...';
$messages['copyingmessage'] = 'Kopiere Nachrichten...';
$messages['copyingcontact'] = 'Kontakte werden kopiert...';
-$messages['movingcontact'] = 'Kontakt(e) wird verschoben...';
$messages['deletingmessage'] = 'Lösche Nachricht(en)...';
$messages['markingmessage'] = 'Markiere Nachricht(en)...';
$messages['addingmember'] = 'Füge Kontakte der Gruppe hinzu...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Daten werden importiert, bitte warten...';
$messages['importformaterror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist keine gültige Importdatei.';
$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert.</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestehende Einträge wurden übersprungen.</b>';
-$messages['importmessagesuccess'] = 'Nachrichten $nr erfolgreich importiert';
-$messages['importmessageerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist keine gültige Importdatei.';
$messages['opnotpermitted'] = 'Operation nicht erlaubt!';
$messages['nofromaddress'] = 'Fehlende E-Mail-Adresse in ausgewählter Identität.';
$messages['editorwarning'] = 'Beim Wechseln in den Texteditor gehen alle Textformatierungen verloren. Möchten Sie fortfahren?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP Fehler: $msg';
$messages['emailformaterror'] = 'Ungültige E-Mail-Adresse: $email';
$messages['toomanyrecipients'] = 'Zuviele Empfänger. Reduzieren Sie die Anzahl Empfängeradressen auf $max.';
$messages['maxgroupmembersreached'] = 'Die Anzahl Adressen in dieser Gruppe überschreitet das Maximum von $max.';
+$messages['internalerror'] = 'Ein interner Fehler ist aufgetreten. Bitte versuchen es erneut.';
$messages['contactdelerror'] = 'Fehler beim Löschen.';
$messages['contactdeleted'] = 'Kontakt(e) erfolgreich gelöscht.';
$messages['contactrestoreerror'] = 'Konnte die gelöschten Kontakte nicht wiederherstellen.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Konnte den Ordner nicht erstellen/verschieben.
$messages['messagetoobig'] = 'Die Nachricht ist zu gross und kann nicht verarbeitet werden.';
$messages['attachmentvalidationerror'] = 'WARNUNG! Dieser Anhang ist verdächtig, weil sein Typ nicht dem in der Nachricht deklarierten Typ entspricht. Wenn Sie dem Sender nicht trauen, sollten Sie den Anhang nicht öffnen, weil er schadhaften Inhalte beinhalten könnte.<br/><br/><em>Erwartet: $expected; gefunden: $detected</em>';
$messages['noscriptwarning'] = 'Warnung: Dieser Webmail-Service erfordert Javascript. Um ihn zu benutzten aktivieren Sie Javascript in ihren Browser-Einstellungen.';
+
?>
diff --git a/program/localization/el_GR/labels.inc b/program/localization/el_GR/labels.inc
index 2e3ab405c..9f5d81839 100644
--- a/program/localization/el_GR/labels.inc
+++ b/program/localization/el_GR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Καλώς ήÏθατε στο $product';
$labels['username'] = 'Όνομα ΧÏήστη';
$labels['password'] = 'Κωδικός ΠÏόσβασης';
$labels['server'] = 'ΕξυπηÏετητής';
$labels['login'] = 'ΣÏνδεση';
+
+// taskbar
$labels['logout'] = 'ΑποσÏνδεση';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Ρυθμίσεις';
$labels['addressbook'] = 'Επαφές';
+
+// mailbox names
$labels['inbox'] = 'ΕισεÏχόμενα';
$labels['drafts'] = 'ΠÏόχειÏα';
$labels['sent'] = 'Απεσταλμένα';
$labels['trash'] = 'Κάδος ΑποÏÏιμάτων';
$labels['junk'] = 'ΑνεπιθÏμητα';
-$labels['show_real_foldernames'] = 'Εμφάνιση Ï€Ïαγματικών ονομάτων για ειδικοÏÏ‚ φακέλους';
+
+// message listing
$labels['subject'] = 'Θέμα';
$labels['from'] = 'Αποστολέας';
$labels['sender'] = 'Αποστολέας';
@@ -44,11 +53,13 @@ $labels['priority'] = 'ΠÏoτεÏαιότητα';
$labels['organization'] = 'ΟÏγανισμός';
$labels['readstatus'] = 'Κατάσταση ανάγνωσης';
$labels['listoptions'] = 'Κατάλογος επιλογών';
+
$labels['mailboxlist'] = 'Φάκελοι';
$labels['messagesfromto'] = 'ΜηνÏματα $from από $to έως $count';
$labels['threadsfromto'] = 'Θέματα $from έως $to από $count';
$labels['messagenrof'] = 'Μήνυμα $nr από $count';
$labels['fromtoshort'] = '$from – $to από $count';
+
$labels['copy'] = 'ΑντιγÏαφή';
$labels['move'] = 'Μετακίνηση';
$labels['moveto'] = 'Μετακίνηση σε...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Λήψη';
$labels['open'] = 'Ανοιγμα';
$labels['showattachment'] = 'Εμφάνιση';
$labels['showanyway'] = 'Εμφάνιση';
+
$labels['filename'] = 'Όνομα αÏχείου';
$labels['filesize'] = 'Μέγεθος αÏχείου';
+
$labels['addtoaddressbook'] = 'ΠÏοσθήκη στο βιβλίο διευθÏνσεων';
+
+// weekdays short
$labels['sun'] = 'ΚυÏ';
$labels['mon'] = 'Δευτ';
$labels['tue'] = 'ΤÏι';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Τετ';
$labels['thu'] = 'Πεμπ';
$labels['fri'] = 'ΠαÏ';
$labels['sat'] = 'Σαβ';
+
+// weekdays long
$labels['sunday'] = 'ΚυÏιακή';
$labels['monday'] = 'ΔευτέÏα';
$labels['tuesday'] = 'ΤÏίτη';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'ΤετάÏτη';
$labels['thursday'] = 'Πέμπτη';
$labels['friday'] = 'ΠαÏασκευή';
$labels['saturday'] = 'Σάββατο';
+
+// months short
$labels['jan'] = 'Ιαν';
$labels['feb'] = 'Φεβ';
$labels['mar'] = 'ΜαÏ';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Σεπ';
$labels['oct'] = 'Οκτ';
$labels['nov'] = 'Îοε';
$labels['dec'] = 'Δεκ';
+
+// months long
$labels['longjan'] = 'ΙανουάÏιος';
$labels['longfeb'] = 'ΦεβÏουάÏιος';
$labels['longmar'] = 'ΜάÏτιος';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'ΣεπτέμβÏιος';
$labels['longoct'] = 'ΟκτώβÏιος';
$labels['longnov'] = 'ÎοέμβÏιος';
$labels['longdec'] = 'ΔεκέμβÏιος';
+
$labels['today'] = 'ΣήμεÏα';
+
+// toolbar buttons
$labels['refresh'] = 'Ανανέωση';
$labels['checkmail'] = 'Έλεγχος για νέα μηνÏματα';
$labels['compose'] = 'ΔημιουÏγία μηνÏματος';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'ΠεÏισσότεÏες ενέÏγειες...';
$labels['more'] = 'ΠεÏισσότεÏα';
$labels['back'] = 'ΕπιστÏοφή';
$labels['options'] = 'Επιλογές';
+
$labels['select'] = 'Επιλέξτε';
$labels['all'] = 'Όλα';
$labels['none'] = 'Κανένα';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Ανάπτυξη όλων';
$labels['expand-unread'] = 'Ανάπτυξη των μη αναγνωσμένων';
$labels['collapse-all'] = 'ΣÏμπτυξη όλων';
$labels['threaded'] = 'Θεματοποιημένα';
+
$labels['autoexpand_threads'] = 'Ανάπτυξη θεματοποιημένων μηνυμάτων';
$labels['do_expand'] = 'όλα τα θέματα';
$labels['expand_only_unread'] = 'μόνο με τα μη αναγνωσμένα μηνÏματα';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Στήλες';
$labels['listsorting'] = 'Ταξινόμηση στηλών';
$labels['listorder'] = 'ΣειÏά ταξινόμησης';
$labels['listmode'] = 'ΠÏοβολή σε λίστα';
+
$labels['folderactions'] = 'ΕνέÏγειες στους φακέλους';
$labels['compact'] = 'Συμπίεση';
$labels['empty'] = 'Άδειασμα';
-$labels['importmessages'] = 'Εισαγωγή μηνυμάτων';
+
$labels['quota'] = 'ΧÏήση δίσκου';
$labels['unknown'] = 'άγνωστο';
$labels['unlimited'] = 'απεÏιόÏιστο';
+
$labels['quicksearch'] = 'ΓÏήγοÏη Αναζήτηση';
$labels['resetsearch'] = 'ΕπαναφοÏά Αναζήτησης';
$labels['searchmod'] = 'Aλλαγή αναζήτησης';
$labels['msgtext'] = 'Σε όλο το μήνυμα';
$labels['body'] = 'Σώμα';
-$labels['type'] = 'Τυπος';
-$labels['namex'] = 'όνομα';
+
$labels['openinextwin'] = 'Άνοιγμα σε νέο παÏάθυÏο';
$labels['emlsave'] = 'Λήψη αÏχείου (.eml)';
$labels['changeformattext'] = 'Εμφάνιση σε μοÏφή Î±Ï€Î»Î¿Ï ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…';
$labels['changeformathtml'] = 'Εμφάνιση σε μοÏφή HTML';
+
+// message compose
$labels['editasnew'] = 'ΕπεξεÏγασία σαν νέο';
$labels['send'] = 'Αποστολή';
$labels['sendmessage'] = 'Αποστολή μηνÏματος';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'ΑναφοÏά ΠαÏάδοσης';
$labels['dsn'] = 'Κατάσταση αναφοÏάς παÏάδοσης';
$labels['mailreplyintro'] = 'Στις $date, $sender έγÏαψε:';
$labels['originalmessage'] = 'ΑÏχικό μήνυμα';
+
$labels['editidents'] = 'ΕπεξεÏγασία ταυτοτήτων';
$labels['spellcheck'] = 'Συλλαβισμός';
$labels['checkspelling'] = 'Έλεγχος οÏθογÏαφίας';
$labels['resumeediting'] = 'Συνέχεια επεξεÏγασίας';
$labels['revertto'] = 'ΕπαναφοÏά στο';
+
$labels['attach'] = 'ΕπισÏναψη';
$labels['attachments'] = 'Συνημμένα';
$labels['upload'] = 'ΦόÏτωση';
$labels['uploadprogress'] = '$percent ($current από $total)';
$labels['close'] = 'Κλείσιμο';
$labels['messageoptions'] = 'Επιλογές μηνÏματος';
+
$labels['low'] = 'Χαμηλή';
$labels['lowest'] = 'ΧαμηλότεÏη';
$labels['normal'] = 'Κανονική';
$labels['high'] = 'Υψηλή';
$labels['highest'] = 'Μέγιστη δυνατή';
+
$labels['nosubject'] = '(χωÏίς θέμα)';
$labels['showimages'] = 'ΠÏοβολή εικόνων';
$labels['alwaysshow'] = 'Îα Ï€Ïοβάλλονται πάντα οι εικόνες που αποστέλλονται από τον $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Αυτό το μήνυμα έχει σημανθεί σ
$labels['andnmore'] = '$nr πεÏισσότεÏα...';
$labels['togglemoreheaders'] = 'Εμφάνιση πεÏισσότεÏων κεφαλίδων';
$labels['togglefullheaders'] = 'Εμφάνιση ακατέÏγαστων κεφαλίδων μηνÏματος';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Απλό κείμενο';
$labels['savesentmessagein'] = 'Αποθήκευση απεσταλμένου στο φάκελο';
$labels['dontsave'] = 'να μην αποθηκευθεί';
$labels['maxuploadsize'] = 'Το μέγιστο επιτÏεπόμενο μέγεθος αÏχείου είναι $size';
+
$labels['addcc'] = 'ΠÏοσθήκη ΠαÏαλήπτη Κοινοποίησης';
$labels['addbcc'] = 'ΠÏοσθήκη ΠαÏαλήπτη ΚÏυφής Κοινοποίησης';
$labels['addreplyto'] = 'ΠÏοσθήκη Απάντησης-Στο';
$labels['addfollowupto'] = 'ΠÏοσθήκη Σε συνέχεια του';
+
+// mdn
$labels['mdnrequest'] = 'Ο αποστολέας Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… μηνÏματος, έχει ζητήσει να ειδοποιηθεί όταν θα το διαβάσετε. Θέλετε να επιτÏέψετε την ενημέÏωσή του;';
$labels['receiptread'] = 'ΑναφοÏά παÏάδοσης (διαβάστε την)';
$labels['yourmessage'] = 'Αυτό είναι μια αναφοÏά παÏάδοσης για το μήνυμά σας';
$labels['receiptnote'] = 'Σημείωση: Αυτή η αναφοÏά επιβεβαιώνει μόνο ότι το μήνυμά σας εμφανίστηκε στον υπολογιστή του παÏαλήπτη. Δεν επιβεβαιώνει ότι ο παÏαλήπτης έχει διαβάσει ή έχει κατανοήσει το πεÏιεχόμενό του.';
+
+// address boook
$labels['name'] = 'Εμφανιζόμενο όνομα';
$labels['firstname'] = 'Όνομα';
$labels['surname'] = 'Επώνυμο';
@@ -262,6 +301,7 @@ $labels['search'] = 'Αναζήτηση';
$labels['advsearch'] = 'ΠÏοηγμένη Αναζήτηση';
$labels['advanced'] = 'ΠÏοχωÏημένες Ïυθμίσεις';
$labels['other'] = 'Άλλα';
+
$labels['typehome'] = 'Οικία';
$labels['typework'] = 'ΕÏγασία';
$labels['typeother'] = 'Άλλα';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Υπάλληλος';
$labels['typehomepage'] = 'ΑÏχική Σελίδα';
$labels['typeblog'] = 'Ιστολόγιο';
$labels['typeprofile'] = 'ΠÏοφίλ';
+
$labels['addfield'] = 'ΠÏοσθήκη πεδίου...';
$labels['addcontact'] = 'ΠÏοσθήκη νέας επαφής';
$labels['editcontact'] = 'ΕπεξεÏγασία επαφής';
$labels['contacts'] = 'Επαφές';
$labels['contactproperties'] = 'Ιδιότητες επαφών';
$labels['personalinfo'] = 'ΠÏοσωπικές πληÏοφοÏίες';
+
$labels['edit'] = 'ΕπεξεÏγασία';
$labels['cancel'] = 'ΑκÏÏωση';
$labels['save'] = 'Αποθήκευση';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Μετονομασία';
$labels['addphoto'] = 'ΠÏοσθήκη';
$labels['replacephoto'] = 'Αντικατάσταση';
$labels['uploadphoto'] = 'ΦόÏτωση εικόνας';
+
$labels['newcontact'] = 'ΔημιουÏγία νέας κάÏτας επαφής';
$labels['deletecontact'] = 'ΔιαγÏαφή επιλεγμένων επαφών';
$labels['composeto'] = 'ΣÏνθεση μηνÏματος Ï€Ïος';
@@ -303,32 +346,41 @@ $labels['newcontactgroup'] = 'ΔημιουÏγία νέας Ομάδας επαÏ
$labels['grouprename'] = 'Μετονομασία ομάδας';
$labels['groupdelete'] = 'ΔιαγÏαφή ομάδας';
$labels['groupremoveselected'] = 'ΑφαίÏεση επιλεγμένων επαφών από την ομάδα';
+
$labels['previouspage'] = 'Εμφάνιση Ï€ÏοηγοÏμενης σελίδας';
$labels['firstpage'] = 'Εμφάνιση της Ï€Ïώτης σελίδας';
$labels['nextpage'] = 'Εμφάνιση επόμενης σελίδας';
$labels['lastpage'] = 'Εμφάνιση της τελευταίας σελίδας';
+
$labels['group'] = 'Ομάδα';
$labels['groups'] = 'Ομάδες';
-$labels['listgroup'] = 'Μέλη της ομάδας λίστας';
$labels['personaladrbook'] = 'ΠÏοσωπικές ΔιυθÏνσεις';
+
$labels['searchsave'] = 'Αποθήκευση αναζήτησης';
$labels['searchdelete'] = 'ΔιαγÏαφή αποθηκευμένης αναζήτησης';
+
$labels['import'] = 'Εισαγωγή';
$labels['importcontacts'] = 'Εισαγωγή επαφών';
$labels['importfromfile'] = 'Εισαγωγή από το αÏχείο:';
+$labels['importtarget'] = 'ΠÏοσθήκη νέων επαφών στο βιβλίο διευθÏνσεων:';
$labels['importreplace'] = 'Αντικατάσταση όλου του βιβλίου διευθÏνσεων';
$labels['importdesc'] = 'ΜποÏείτε να ανεβάσετε επαφές από ένα υπάÏχον βιβλίο διευθÏνσεων.<br/>ΥποστηÏίζεται η εισαγωγή διευθÏνσεων από αÏχεία Ï„Ïπου <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ή CSV (διαχωÏισμένα με κόμμα).';
$labels['done'] = 'ΟλοκληÏώθηκε';
+
+// settings
$labels['settingsfor'] = 'Ρυθμίσεις για';
$labels['about'] = 'Σχετικά';
$labels['preferences'] = 'ΠÏοτιμήσεις';
$labels['userpreferences'] = 'ΠÏοτιμήσεις χÏήστη';
$labels['editpreferences'] = 'ΕπεξεÏγασία Ï€Ïοτιμήσεων χÏήστη';
+
$labels['identities'] = 'Ταυτότητες';
$labels['manageidentities'] = 'ΔιαχείÏιση ταυτοτήτων για αυτόν το λογαÏιασμό';
$labels['newidentity'] = 'Îέα ταυτότητα';
+
$labels['newitem'] = 'Îέο αντικείμενο';
$labels['edititem'] = 'ΕπεξεÏγασία αντικειμένου';
+
$labels['preferhtml'] = 'ΠÏοβολή σε HTML';
$labels['defaultcharset'] = 'ΠÏοεπιλεγμένη κωδικοποίηση χαÏακτήÏων';
$labels['htmlmessage'] = 'Μήνυμα σε μοÏφή HTML';
@@ -420,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Οι λέξεις που πεÏιέχουν Î
$labels['spellcheckignorecaps'] = 'Οι λέξεις γÏαμμένες με ΚΕΦΑΛΑΙΑ να αγνοοÏνται';
$labels['addtodict'] = 'ΠÏοσθήκη στο λεξικό';
$labels['mailtoprotohandler'] = 'ΚαταχώÏηση διαχείÏισης Ï€Ïωτοκόλλου δεσμών mailto:';
-$labels['standardwindows'] = 'ΧειÏιστείτε τα αναδυόμενα παÏάθυÏα ως Ï€Ïότυπο των Windows';
$labels['forwardmode'] = 'ΠÏοώθηση μηνυμάτων';
$labels['inline'] = 'με εσνωμάτωση';
$labels['asattachment'] = 'σαν επισÏναψη';
+
$labels['folder'] = 'Φάκελος';
$labels['folders'] = 'Φάκελοι';
$labels['foldername'] = 'Όνομα φακέλου';
@@ -444,20 +496,26 @@ $labels['foldertype'] = 'ΤÏπος φακέλου';
$labels['personalfolder'] = 'ΠÏοσωπικός φάκελος';
$labels['otherfolder'] = 'Φάκελοι άλλων χÏηστών';
$labels['sharedfolder'] = 'ΚοινόχÏηστος φάκελος';
+
$labels['sortby'] = 'Ταξινόμηση κατά';
$labels['sortasc'] = 'ΑÏξουσα ταξινόμηση';
$labels['sortdesc'] = 'Φθίνουσα ταξινόμηση';
$labels['undo'] = 'ΑναίÏεση';
+
$labels['installedplugins'] = 'Εγκατεστημένα Ï€Ïόσθετα';
$labels['plugin'] = 'ΠÏόσθετο';
$labels['version'] = 'Έκδοση';
$labels['source'] = 'ΠÏοέλευση';
$labels['license'] = 'Άδεια χÏήσης';
$labels['support'] = 'ΥποστήÏιξη';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Αγγλικά';
$labels['westerneuropean'] = 'Δυτικής ΕυÏώπης';
@@ -476,4 +534,5 @@ $labels['vietnamese'] = 'Βιετναμέζικα';
$labels['japanese'] = 'Ιαπωνικά';
$labels['korean'] = 'ΚοÏεατικά';
$labels['chinese'] = 'Κινεζικά';
+
?>
diff --git a/program/localization/el_GR/messages.inc b/program/localization/el_GR/messages.inc
index be6639d68..dc2499d8b 100644
--- a/program/localization/el_GR/messages.inc
+++ b/program/localization/el_GR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Έχει Ï€ÏοκÏψει κάποιο σφάλμα!';
$messages['loginfailed'] = 'Είσοδος απέτυχε';
$messages['cookiesdisabled'] = 'Ο πεÏιηγητής σας (browser) δεν αποδέχεται cookies';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Η ζητοÏμενη επαφή δεν βÏέθ
$messages['contactsearchonly'] = 'Εισάγετε κάποιους ÏŒÏους Ï€Ïος αναζήτηση';
$messages['sendingfailed'] = 'Αποστολή μηνÏματος απέτυχε';
$messages['senttooquickly'] = 'ΠαÏακαλώ πεÏιμένετε $sec δευτεÏόλεπτα, Ï€Ïιν στείλετε το μήνυμα';
+$messages['errorsavingsent'] = 'ΠαÏουσιάστηκε σφάλμα, κατά την αποθήκευση του απεσταλμένου μηνÏματος';
+$messages['errorsaving'] = 'ΠαÏουσιάστηκε σφάλμα κατά την αποθήκευση';
$messages['errormoving'] = 'Το μήνυμα δε μποÏοÏσε να μετακινηθεί';
$messages['errorcopying'] = 'Δεν είναι δυνατή η αντιγÏαφή του μηνÏματος/των';
$messages['errordeleting'] = 'Το μήνυμα δε μποÏοÏσε να διαγÏαφεί';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Μετακίνηση διαμοÏφώσεων κειÎ
$messages['messageopenerror'] = 'Η φόÏτωση μηνυμάτων από τον διακομιστή απέτυχε';
$messages['fileuploaderror'] = 'Ανέβασμα αÏχείου απέτυχε';
$messages['filesizeerror'] = 'Το ανεβασμένο αÏχείο ξεπεÏνάει το μέγιστο μέγεθος των $size';
-$messages['copysuccess'] = 'Επιτυχής αντιγÏαφή $ επαφών αÏιθ..';
-$messages['movesuccess'] = 'Με επιτυχία μεταφέÏθηκαν $ αÏιθ. επαφές.';
-$messages['copyerror'] = 'Αποτυχία αντιγÏαφής επαφών.';
-$messages['moveerror'] = 'Δεν μποÏοÏσε να κινηθεί καμία επαφή.';
+$messages['copysuccess'] = 'Επιτυχής αντιγÏαφή $nr διευθÏνσεων';
+$messages['copyerror'] = 'Αποτυχία αντιγÏαφής διευθÏνσεων';
$messages['sourceisreadonly'] = 'Η διεÏθυνση έχει μόνο δικαίωμα ανάγνωσης';
$messages['errorsavingcontact'] = 'Αποθήκευση επαφής απέτυχε';
$messages['movingmessage'] = 'Μετακίνηση μηνÏματος...';
$messages['copyingmessage'] = 'ΑντιγÏαφή μηνυμάτων...';
$messages['copyingcontact'] = 'ΑντιγÏαφή επαφών...';
-$messages['movingcontact'] = 'Μετακίνηση επαφής(ων)...';
$messages['deletingmessage'] = 'ΔιαγÏαφή μηνυμάτων...';
$messages['markingmessage'] = 'Σήμανση μηνυμάτων...';
$messages['addingmember'] = 'ΠÏοσθήκη επαφών στην ομάδα...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Εισαγωγή, παÏακαλώ πεÏιμένετ
$messages['importformaterror'] = 'Η εισαγωγή απέτυχε! Το αÏχείο δεν είναι έγκυÏο εισαγωγής δεδομένων.';
$messages['importconfirm'] = '<b>Εισήχθησαν $inserted επαφές με επιτυχία</b>';
$messages['importconfirmskipped'] = '<b>ΠαÏαλήφθηκαν $skipped υπάÏχοντα αντικείμενα</b>';
-$messages['importmessagesuccess'] = 'Επιτυχής εισαγωγή $nr μηνυμάτων';
-$messages['importmessageerror'] = 'Η εισαγωγή απέτυχε! Το αÏχείο δεν είναι έγκυÏο εισαγωγής δεδομένων.';
$messages['opnotpermitted'] = 'Η λειτουÏγία δεν επιτÏέπεται!';
$messages['nofromaddress'] = 'Στην επιλεγμένη ταυτότητα, λείπει η email διεÏθυνση';
$messages['editorwarning'] = 'Η μετάβαση στην επεξεÏγασία Î±Ï€Î»Î¿Ï ÎºÎµÎ¹Î¼Î­Î½Î¿Ï… θα Ï€Ïοκαλέσει κατάÏγηση της μοÏφοποίησης. Είστε βέβαιοι πως θέλετε να συνεχίσετε;';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'Σφάλμα SMTP: $msg';
$messages['emailformaterror'] = 'Λανθασμένη διεÏθνση email: $email';
$messages['toomanyrecipients'] = 'Μεγάλο πλήθος αποδεκτών. Μειώστε τον αÏιθμό των αποδεκτών σε $max.';
$messages['maxgroupmembersreached'] = 'Ο αÏιθμός των μελών της ομάδας υπεÏβαίνει τον μέγιστο των $max μελών.';
+$messages['internalerror'] = 'ΠÏοέκυψε ένα εσωτεÏικό σφάλμα. ΠαÏακαλώ δοκιμάστε πάλι.';
$messages['contactdelerror'] = 'Δεν είναι δυνατή η διαγÏαφή της επαφής/ων';
$messages['contactdeleted'] = 'Η επαφή/ές διαγÏάφηκαν με επιτυχία.';
$messages['contactrestoreerror'] = 'Οι διαγÏαφημενη επαφη(ες) δεν μποÏουν να επαναφεÏθουν.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Δεν είναι δυνατή η δημιου
$messages['messagetoobig'] = 'Το τμήμα μήνυματος είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ για επεξεÏγασια. ';
$messages['attachmentvalidationerror'] = 'ΠΡΟΕΙΔΟΠΟΊΗΣΗ! Αυτή η κατάσχεση είναι Ïποπτη, επειδή ο Ï„Ïπος δεν ταιÏιάζει με τον Ï„Ïπο που δηλώνεται στο μήνυμα. Εάν δεν εμπιστεÏεστε τον αποστολέα, δεν θα Ï€Ïέπει να το ανοίγετε στο Ï€ÏόγÏαμμα πεÏιήγησης επειδή μποÏεί να πεÏιέχει κακόβουλο πεÏιεχόμενο.<br/><br/><em>Expected: $expected; found: $detected</em> ';
$messages['noscriptwarning'] = 'ΠÏοειδοποίηση : Αυτή η υπηÏεσία webmail απαιτεί Javascript! Για να ΤΟ χÏησιμοποιήσετε ενεÏγοποιήστε τΟ JavaScript στις Ïυθμίσεις του browser σας. ';
+
?>
diff --git a/program/localization/en_GB/labels.inc b/program/localization/en_GB/labels.inc
index c7778e955..275208a98 100644
--- a/program/localization/en_GB/labels.inc
+++ b/program/localization/en_GB/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Welcome to $product';
$labels['username'] = 'Username';
$labels['password'] = 'Password';
$labels['server'] = 'Server';
$labels['login'] = 'Login';
+
+// taskbar
$labels['logout'] = 'Logout';
$labels['mail'] = 'Mail';
$labels['settings'] = 'Settings';
$labels['addressbook'] = 'Address Book';
+
+// mailbox names
$labels['inbox'] = 'Inbox';
$labels['drafts'] = 'Drafts';
$labels['sent'] = 'Sent';
$labels['trash'] = 'Deleted Items';
$labels['junk'] = 'Junk';
+
+// message listing
$labels['subject'] = 'Subject';
$labels['from'] = 'From';
+$labels['sender'] = 'Sender';
$labels['to'] = 'To';
$labels['cc'] = 'Copy';
$labels['bcc'] = 'Bcc';
@@ -42,20 +53,27 @@ $labels['priority'] = 'Priority';
$labels['organization'] = 'Company';
$labels['readstatus'] = 'Read status';
$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Folders';
$labels['messagesfromto'] = 'Messages $from to $to of $count';
$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Message $nr of $count';
$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Copy';
$labels['move'] = 'Move';
$labels['moveto'] = 'Move to...';
$labels['download'] = 'Download';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Show';
$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'File name';
$labels['filesize'] = 'File size';
+
$labels['addtoaddressbook'] = 'Add to address book';
+
+// weekdays short
$labels['sun'] = 'Sun';
$labels['mon'] = 'Mon';
$labels['tue'] = 'Tue';
@@ -63,6 +81,8 @@ $labels['wed'] = 'Wed';
$labels['thu'] = 'Thu';
$labels['fri'] = 'Fri';
$labels['sat'] = 'Sat';
+
+// weekdays long
$labels['sunday'] = 'Sunday';
$labels['monday'] = 'Monday';
$labels['tuesday'] = 'Tuesday';
@@ -70,6 +90,8 @@ $labels['wednesday'] = 'Wednesday';
$labels['thursday'] = 'Thursday';
$labels['friday'] = 'Friday';
$labels['saturday'] = 'Saturday';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -82,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'January';
$labels['longfeb'] = 'February';
$labels['longmar'] = 'March';
@@ -94,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'October';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'Today';
+
+// toolbar buttons
$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Check for new messages';
$labels['compose'] = 'Compose';
@@ -127,6 +154,7 @@ $labels['moreactions'] = 'More actions...';
$labels['more'] = 'More';
$labels['back'] = 'Back';
$labels['options'] = 'Options';
+
$labels['select'] = 'Select';
$labels['all'] = 'All';
$labels['none'] = 'None';
@@ -134,6 +162,7 @@ $labels['currpage'] = 'Current page';
$labels['unread'] = 'Unread';
$labels['flagged'] = 'Flagged';
$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Deleted';
$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Invert';
@@ -144,6 +173,7 @@ $labels['expand-all'] = 'Expand All';
$labels['expand-unread'] = 'Expand Unread';
$labels['collapse-all'] = 'Collapse All';
$labels['threaded'] = 'Threaded';
+
$labels['autoexpand_threads'] = 'Expand message threads';
$labels['do_expand'] = 'all threads';
$labels['expand_only_unread'] = 'only with unread messages';
@@ -159,18 +189,27 @@ $labels['listcolumns'] = 'List columns';
$labels['listsorting'] = 'Sorting column';
$labels['listorder'] = 'Sorting order';
$labels['listmode'] = 'List view mode';
+
$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Compact';
$labels['empty'] = 'Empty';
+
$labels['quota'] = 'Disk usage';
$labels['unknown'] = 'unknown';
$labels['unlimited'] = 'unlimited';
+
$labels['quicksearch'] = 'Quick search';
$labels['resetsearch'] = 'Reset search';
$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Open in new window';
$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Edit as new';
$labels['send'] = 'Send';
$labels['sendmessage'] = 'Send now';
@@ -182,22 +221,26 @@ $labels['returnreceipt'] = 'Return receipt';
$labels['dsn'] = 'Delivery status notification';
$labels['mailreplyintro'] = 'On $date, $sender wrote:';
$labels['originalmessage'] = 'Original Message';
+
$labels['editidents'] = 'Edit identities';
$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Check spelling';
$labels['resumeediting'] = 'Resume editing';
$labels['revertto'] = 'Revert to';
+
$labels['attach'] = 'Attach';
$labels['attachments'] = 'Attachments';
$labels['upload'] = 'Upload';
$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Close';
$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Low';
$labels['lowest'] = 'Lowest';
$labels['normal'] = 'Normal';
$labels['high'] = 'High';
$labels['highest'] = 'Highest';
+
$labels['nosubject'] = '(no subject)';
$labels['showimages'] = 'Display images';
$labels['alwaysshow'] = 'Always show images from $sender';
@@ -205,19 +248,25 @@ $labels['isdraft'] = 'This is a draft message.';
$labels['andnmore'] = '$nr more...';
$labels['togglemoreheaders'] = 'Show more message headers';
$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Plain text';
$labels['savesentmessagein'] = 'Save sent message in';
$labels['dontsave'] = 'don\'t save';
$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Add Cc';
$labels['addbcc'] = 'Add Bcc';
$labels['addreplyto'] = 'Add Reply-To';
$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
$labels['receiptread'] = 'Return Receipt (read)';
$labels['yourmessage'] = 'This is a Return Receipt for your message';
$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
$labels['name'] = 'Display Name';
$labels['firstname'] = 'First Name';
$labels['surname'] = 'Last Name';
@@ -252,6 +301,7 @@ $labels['search'] = 'Search';
$labels['advsearch'] = 'Advanced Search';
$labels['advanced'] = 'Advanced';
$labels['other'] = 'Other';
+
$labels['typehome'] = 'Home';
$labels['typework'] = 'Work';
$labels['typeother'] = 'Other';
@@ -266,12 +316,14 @@ $labels['typeassistant'] = 'Assistant';
$labels['typehomepage'] = 'Home Page';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profile';
+
$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Add new contact';
$labels['editcontact'] = 'Edit contact';
$labels['contacts'] = 'Contacts';
$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Edit';
$labels['cancel'] = 'Cancel';
$labels['save'] = 'Save';
@@ -280,45 +332,60 @@ $labels['rename'] = 'Rename';
$labels['addphoto'] = 'Add';
$labels['replacephoto'] = 'Replace';
$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Create new contact card';
$labels['deletecontact'] = 'Delete selected contacts';
$labels['composeto'] = 'Compose mail to';
$labels['contactsfromto'] = 'Contacts $from to $to of $count';
$labels['print'] = 'Print';
$labels['export'] = 'Export';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Export contacts in vCard format';
$labels['newcontactgroup'] = 'Create new contact group';
$labels['grouprename'] = 'Rename group';
$labels['groupdelete'] = 'Delete group';
$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Show previous set';
$labels['firstpage'] = 'Show first set';
$labels['nextpage'] = 'Show next set';
$labels['lastpage'] = 'Show last set';
+
$labels['group'] = 'Group';
$labels['groups'] = 'Groups';
$labels['personaladrbook'] = 'Personal Addresses';
+
$labels['searchsave'] = 'Save search';
$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'Import';
$labels['importcontacts'] = 'Import contacts';
$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'Replace the entire address book';
$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'Settings for';
$labels['about'] = 'About';
$labels['preferences'] = 'Preferences';
$labels['userpreferences'] = 'User preferences';
$labels['editpreferences'] = 'Edit user preferences';
+
$labels['identities'] = 'Identities';
$labels['manageidentities'] = 'Manage identities for this account';
$labels['newidentity'] = 'New identity';
+
$labels['newitem'] = 'New item';
$labels['edititem'] = 'Edit item';
+
$labels['preferhtml'] = 'Display HTML';
$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML Message';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Date format';
$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Pretty dates';
@@ -335,6 +402,7 @@ $labels['htmleditor'] = 'Compose HTML messages';
$labels['htmlonreply'] = 'on reply to HTML message only';
$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML signature';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Show preview pane';
$labels['skin'] = 'Interface skin';
$labels['logoutclear'] = 'Clear Trash on logout';
@@ -407,6 +475,7 @@ $labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
$labels['forwardmode'] = 'Messages forwarding';
$labels['inline'] = 'inline';
$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Folder';
$labels['folders'] = 'Folders';
$labels['foldername'] = 'Folder name';
@@ -427,20 +496,26 @@ $labels['foldertype'] = 'Folder Type';
$labels['personalfolder'] = 'Private Folder';
$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Sort by';
$labels['sortasc'] = 'Sort ascending';
$labels['sortdesc'] = 'Sort descending';
$labels['undo'] = 'Undo';
+
$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Version';
$labels['source'] = 'Source';
$labels['license'] = 'Licence';
$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'English';
$labels['westerneuropean'] = 'Western European';
@@ -459,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamese';
$labels['japanese'] = 'Japanese';
$labels['korean'] = 'Korean';
$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/en_GB/messages.inc b/program/localization/en_GB/messages.inc
index 5b6a8f7f2..e5c873c94 100644
--- a/program/localization/en_GB/messages.inc
+++ b/program/localization/en_GB/messages.inc
@@ -15,7 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'An error occured.';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred.';
$messages['loginfailed'] = 'Login failed.';
$messages['cookiesdisabled'] = 'Your browser does not accept cookies.';
$messages['sessionerror'] = 'Your session is invalid or has expired.';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Database Error!';
$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Invalid request! No data was saved.';
$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'No messages found in this mailbox.';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'The requested contact was not found.';
$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Failed to send message.';
$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occurred while saving sent message.';
+$messages['errorsaving'] = 'An error occurred while saving.';
$messages['errormoving'] = 'Could not move the message(s).';
$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Could not delete the message(s).';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'File upload failed.';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
$messages['sourceisreadonly'] = 'This address book is read-only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Incorrect e-mail address: $email';
$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occurred. Please try again.';
$messages['contactdelerror'] = 'Could not delete contact(s).';
$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'Unable to create/move folder into selected par
$messages['messagetoobig'] = 'The message part is too big to process it.';
$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/en_US/csv2vcard.inc b/program/localization/en_US/csv2vcard.inc
index e7b86795b..eb884f59a 100644
--- a/program/localization/en_US/csv2vcard.inc
+++ b/program/localization/en_US/csv2vcard.inc
@@ -5,7 +5,7 @@
| localization/<lang>/csv2vcard.inc |
| |
| Localization file of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -91,20 +91,3 @@ $map['work_phone'] = "Work Phone";
$map['work_address'] = "Work Address";
$map['work_country'] = "Work Country";
$map['work_zipcode'] = "Work ZipCode";
-
-// Atmail
-$map['date_of_birth'] = "Date of Birth";
-$map['email'] = "Email";
-$map['home_mobile'] = "Home Mobile";
-$map['home_zip'] = "Home Zip";
-$map['info'] = "Info";
-$map['user_photo'] = "User Photo";
-$map['url'] = "URL";
-$map['work_city'] = "Work City";
-$map['work_company'] = "Work Company";
-$map['work_dept'] = "Work Dept";
-$map['work_fax'] = "Work Fax";
-$map['work_mobile'] = "Work Mobile";
-$map['work_state'] = "Work State";
-$map['work_title'] = "Work Title";
-$map['work_zip'] = "Work Zip";
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index 8f221a3a9..1a753ec12 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -5,7 +5,7 @@
| localization/<lang>/labels.inc |
| |
| Localization file of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -37,7 +37,6 @@ $labels['drafts'] = 'Drafts';
$labels['sent'] = 'Sent';
$labels['trash'] = 'Trash';
$labels['junk'] = 'Junk';
-$labels['show_real_foldernames'] = 'Show real names for special folders';
// message listing
$labels['subject'] = 'Subject';
@@ -65,7 +64,6 @@ $labels['copy'] = 'Copy';
$labels['move'] = 'Move';
$labels['moveto'] = 'Move to...';
$labels['download'] = 'Download';
-$labels['open'] = 'Open';
$labels['showattachment'] = 'Show';
$labels['showanyway'] = 'Show it anyway';
@@ -163,7 +161,6 @@ $labels['currpage'] = 'Current page';
$labels['unread'] = 'Unread';
$labels['flagged'] = 'Flagged';
$labels['unanswered'] = 'Unanswered';
-$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Deleted';
$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Invert';
@@ -194,7 +191,6 @@ $labels['listmode'] = 'List view mode';
$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Compact';
$labels['empty'] = 'Empty';
-$labels['importmessages'] = 'Import messages';
$labels['quota'] = 'Disk usage';
$labels['unknown'] = 'unknown';
@@ -205,13 +201,9 @@ $labels['resetsearch'] = 'Reset search';
$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Entire message';
$labels['body'] = 'Body';
-$labels['type'] = 'Type';
-$labels['namex'] = 'Name';
$labels['openinextwin'] = 'Open in new window';
$labels['emlsave'] = 'Download (.eml)';
-$labels['changeformattext'] = 'Display in plain text format';
-$labels['changeformathtml'] = 'Display in HTML format';
// message compose
$labels['editasnew'] = 'Edit as new';
@@ -232,15 +224,6 @@ $labels['checkspelling'] = 'Check spelling';
$labels['resumeediting'] = 'Resume editing';
$labels['revertto'] = 'Revert to';
-$labels['responses'] = 'Responses';
-$labels['insertresponse'] = 'Insert a response';
-$labels['manageresponses'] = 'Manage responses';
-$labels['savenewresponse'] = 'Save new response';
-$labels['editresponses'] = 'Edit responses';
-$labels['editresponse'] = 'Edit response';
-$labels['responsename'] = 'Name';
-$labels['responsetext'] = 'Response Text';
-
$labels['attach'] = 'Attach';
$labels['attachments'] = 'Attachments';
$labels['upload'] = 'Upload';
@@ -352,8 +335,6 @@ $labels['composeto'] = 'Compose mail to';
$labels['contactsfromto'] = 'Contacts $from to $to of $count';
$labels['print'] = 'Print';
$labels['export'] = 'Export';
-$labels['exportall'] = 'Export all';
-$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Export contacts in vCard format';
$labels['newcontactgroup'] = 'Create new contact group';
$labels['grouprename'] = 'Rename group';
@@ -367,7 +348,6 @@ $labels['lastpage'] = 'Show last page';
$labels['group'] = 'Group';
$labels['groups'] = 'Groups';
-$labels['listgroup'] = 'List group members';
$labels['personaladrbook'] = 'Personal Addresses';
$labels['searchsave'] = 'Save search';
@@ -376,11 +356,8 @@ $labels['searchdelete'] = 'Delete search';
$labels['import'] = 'Import';
$labels['importcontacts'] = 'Import contacts';
$labels['importfromfile'] = 'Import from file:';
-$labels['importtarget'] = 'Add contacts to';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'Replace the entire address book';
-$labels['importgroups'] = 'Import group assignments';
-$labels['importgroupsall'] = 'All (create groups if necessary)';
-$labels['importgroupsexisting'] = 'Only for existing groups';
$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Done';
@@ -419,7 +396,6 @@ $labels['htmleditor'] = 'Compose HTML messages';
$labels['htmlonreply'] = 'on reply to HTML message';
$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML signature';
-$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Show preview pane';
$labels['skin'] = 'Interface skin';
$labels['logoutclear'] = 'Clear Trash on logout';
@@ -489,13 +465,9 @@ $labels['spellcheckignorenums'] = 'Ignore words with numbers';
$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'Add to dictionary';
$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
-$labels['standardwindows'] = 'Handle popups as standard windows';
$labels['forwardmode'] = 'Messages forwarding';
$labels['inline'] = 'inline';
$labels['asattachment'] = 'as attachment';
-$labels['replyallmode'] = 'Default action of [Reply all] button';
-$labels['replyalldefault'] = 'reply to all';
-$labels['replyalllist'] = 'reply to mailing list only (if found)';
$labels['folder'] = 'Folder';
$labels['folders'] = 'Folders';
diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc
index 033c820d1..a5e3b4ae2 100644
--- a/program/localization/en_US/messages.inc
+++ b/program/localization/en_US/messages.inc
@@ -5,7 +5,7 @@
| localization/<lang>/messages.inc |
| |
| Localization file of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -28,8 +28,6 @@ $messages['dberror'] = 'Database Error!';
$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
-$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
-$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Invalid request! No data was saved.';
$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'No messages found in this mailbox.';
@@ -46,8 +44,6 @@ $messages['messagesent'] = 'Message sent successfully.';
$messages['savingmessage'] = 'Saving message...';
$messages['messagesaved'] = 'Message saved to Drafts.';
$messages['successfullysaved'] = 'Successfully saved.';
-$messages['savingresponse'] = 'Saving response text...';
-$messages['deleteresponseconfirm'] = 'Do you really want to delete this response text?';
$messages['addedsuccessfully'] = 'Contact added successfully to address book.';
$messages['contactexists'] = 'A contact with the same e-mail address already exists.';
$messages['contactnameexists'] = 'A contact with the same name already exists.';
@@ -103,16 +99,13 @@ $messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'File upload failed.';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
-$messages['copysuccess'] = 'Successfully copied $nr contacts.';
-$messages['movesuccess'] = 'Successfully moved $nr contacts.';
-$messages['copyerror'] = 'Could not copy any contacts.';
-$messages['moveerror'] = 'Could not move any contacts.';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
$messages['sourceisreadonly'] = 'This address source is read only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
$messages['copyingmessage'] = 'Copying message(s)...';
$messages['copyingcontact'] = 'Copying contact(s)...';
-$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'Deleting message(s)...';
$messages['markingmessage'] = 'Marking message(s)...';
$messages['addingmember'] = 'Adding contact(s) to the group...';
@@ -131,8 +124,6 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
-$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
-$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/eo/labels.inc b/program/localization/eo/labels.inc
index 0a55d36ae..c088fc50e 100644
--- a/program/localization/eo/labels.inc
+++ b/program/localization/eo/labels.inc
@@ -15,23 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bonvenon al $product';
$labels['username'] = 'Uzantnomo';
$labels['password'] = 'Pasvorto';
$labels['server'] = 'Servilo';
$labels['login'] = 'Ensaluti';
+
+// taskbar
$labels['logout'] = 'Elsaluti';
$labels['mail'] = 'RetpoÅto';
$labels['settings'] = 'Agordoj';
$labels['addressbook'] = 'Adresaro';
+
+// mailbox names
$labels['inbox'] = 'Ricevitujo';
$labels['drafts'] = 'Malnetujo';
$labels['sent'] = 'Senditujo';
$labels['trash'] = 'Rubujo';
$labels['junk'] = 'Spamujo';
+
+// message listing
$labels['subject'] = 'Temo';
$labels['from'] = 'Sendanto';
-$labels['sender'] = 'Sendinto';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Ricevanto';
$labels['cc'] = 'Kopio';
$labels['bcc'] = 'Blindkopio';
@@ -43,20 +53,27 @@ $labels['priority'] = 'Prioritato';
$labels['organization'] = 'Organizo';
$labels['readstatus'] = 'Legis statuson';
$labels['listoptions'] = 'List-agordoj...';
+
$labels['mailboxlist'] = 'Dosierujoj';
$labels['messagesfromto'] = 'MesaÄoj ekde $from Äis $to de $count';
$labels['threadsfromto'] = 'Fadenoj $from al $to de $count';
$labels['messagenrof'] = 'MesaÄo $nr-a de $count';
$labels['fromtoshort'] = '$from - $to de $count';
+
$labels['copy'] = 'Kopii';
$labels['move'] = 'Movi';
$labels['moveto'] = 'transloku al...';
$labels['download'] = 'elÅutu';
-$labels['showattachment'] = 'Montri';
-$labels['showanyway'] = 'Tamen montri Äin';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Dosiernomo';
$labels['filesize'] = 'Dosiergrando';
+
$labels['addtoaddressbook'] = 'Aldonu al adresaro';
+
+// weekdays short
$labels['sun'] = 'Dim';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -64,6 +81,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Ä´aÅ­';
$labels['fri'] = 'Ven';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Dimanĉo';
$labels['monday'] = 'Lundo';
$labels['tuesday'] = 'Mardo';
@@ -71,6 +90,8 @@ $labels['wednesday'] = 'Merkredo';
$labels['thursday'] = 'Ä´aÅ­do';
$labels['friday'] = 'Vendredo';
$labels['saturday'] = 'Sabato';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -83,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Januaro';
$labels['longfeb'] = 'Februaro';
$labels['longmar'] = 'Marto';
@@ -95,7 +118,10 @@ $labels['longsep'] = 'Septembro';
$labels['longoct'] = 'Oktobro';
$labels['longnov'] = 'Novembro';
$labels['longdec'] = 'Decembro';
+
$labels['today'] = 'HodiaÅ­';
+
+// toolbar buttons
$labels['refresh'] = 'Aktualigi';
$labels['checkmail'] = 'Kontroli por novaj mesaÄoj';
$labels['compose'] = 'Verki';
@@ -128,6 +154,7 @@ $labels['moreactions'] = 'Pliaj agoj';
$labels['more'] = 'Pli';
$labels['back'] = 'MalantaÅ­en';
$labels['options'] = 'Agordoj';
+
$labels['select'] = 'Elektu';
$labels['all'] = 'Ĉion';
$labels['none'] = 'Nenion';
@@ -135,8 +162,9 @@ $labels['currpage'] = 'Nuna paÄo';
$labels['unread'] = 'Nelegitan';
$labels['flagged'] = 'Markita';
$labels['unanswered'] = 'Nerespondita';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Forigita';
-$labels['undeleted'] = 'Ne forigita';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Inversigu';
$labels['filter'] = 'Filtru';
$labels['list'] = 'Listo';
@@ -145,6 +173,7 @@ $labels['expand-all'] = 'Malfaldi ĉion';
$labels['expand-unread'] = 'Malfaldi Nelegitajn';
$labels['collapse-all'] = 'Faldi ĉion';
$labels['threaded'] = 'Fadenita';
+
$labels['autoexpand_threads'] = 'Malfaldi mesaÄ-fadenojn';
$labels['do_expand'] = 'Ĉiuj fadenoj';
$labels['expand_only_unread'] = 'Nur kun nelegitaj mesaÄoj';
@@ -159,21 +188,30 @@ $labels['desc'] = 'malkreskante';
$labels['listcolumns'] = 'List-rubrikoj';
$labels['listsorting'] = 'Ordig-rubriko';
$labels['listorder'] = 'Ordig-ordo';
-$labels['listmode'] = 'Lista vido';
+$labels['listmode'] = 'List view mode';
+
$labels['folderactions'] = 'Dosierujo-agoj';
$labels['compact'] = 'Kompakta';
$labels['empty'] = 'Malplena';
+
$labels['quota'] = 'Diskuzo';
$labels['unknown'] = 'nekonata';
$labels['unlimited'] = 'senlima';
+
$labels['quicksearch'] = 'Rapida serĉo';
$labels['resetsearch'] = 'Vakigu serĉon';
$labels['searchmod'] = 'Serĉ-opcioj';
$labels['msgtext'] = 'Tuta mesaÄo';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Malfermu en nova fenestro';
$labels['emlsave'] = 'ElÅutu (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Redaktu kiel nova';
-$labels['send'] = 'Sendi';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Sendu mesaÄon';
$labels['savemessage'] = 'Savu ĉi tiun malneton';
$labels['addattachment'] = 'Alfiksu dosieron';
@@ -183,42 +221,52 @@ $labels['returnreceipt'] = 'Return receipt';
$labels['dsn'] = 'Ricev-status-konfirmo';
$labels['mailreplyintro'] = 'Je $date, $sender skribis:';
$labels['originalmessage'] = 'Originala mesaÄo';
+
$labels['editidents'] = 'Redaktu identojn';
$labels['spellcheck'] = 'Literumu';
$labels['checkspelling'] = 'Kontrolu literumadon';
$labels['resumeediting'] = 'Rekomencu redaktadon';
$labels['revertto'] = 'Reiru al';
+
$labels['attach'] = 'Alfiksu';
$labels['attachments'] = 'Alfiksaĵoj';
$labels['upload'] = 'AlÅutu';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Fermi';
$labels['messageoptions'] = 'MesaÄ-agordoj...';
+
$labels['low'] = 'Malalta';
$labels['lowest'] = 'Plej malalta';
$labels['normal'] = 'Normala';
$labels['high'] = 'Alta';
$labels['highest'] = 'Plej alta';
+
$labels['nosubject'] = '(sen temo)';
$labels['showimages'] = 'Montru bildojn';
$labels['alwaysshow'] = 'Ĉiam montru bildojn de $sender';
$labels['isdraft'] = 'Ĉi-mesaÄo estas malneto';
-$labels['andnmore'] = '$nr pli';
-$labels['togglemoreheaders'] = 'Montri pli multajn mesaÄtitolojn';
-$labels['togglefullheaders'] = 'Maligi ĉu mesaÄaj titoloj nudu';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Plata teksto';
$labels['savesentmessagein'] = 'Konservu senditan mesaÄon en';
$labels['dontsave'] = 'Ne konservu';
$labels['maxuploadsize'] = 'Maksimuma permesata dosier-grando estas $size';
+
$labels['addcc'] = 'Aldonu kopi-ricevanton';
$labels['addbcc'] = 'Aldonu blindan kopi-ricevanton';
$labels['addreplyto'] = 'Aldonu Respondu-Al';
$labels['addfollowupto'] = 'Aldonu Respondu-Al';
+
+// mdn
$labels['mdnrequest'] = 'La sendinto de ĉi tiu mesaÄo petis sciigon de kiam vi legas Äin. Ĉu volas sciigi la sendinton?';
$labels['receiptread'] = 'Legokonfirmo';
$labels['yourmessage'] = 'Jen estas legokonfirmo de via mesaÄo';
$labels['receiptnote'] = 'Notu: Ĉi tiu konfirmo nur asertas ke la mesaÄo estis malfermita je la komputilo de la ricevinto. Ne estas garantio ke la ricevinto legis aÅ­ komprenis la enhavon.';
+
+// address boook
$labels['name'] = 'Nomo';
$labels['firstname'] = 'AntaÅ­nomo';
$labels['surname'] = 'Familia nomo';
@@ -229,7 +277,7 @@ $labels['nickname'] = 'Kromnomo';
$labels['jobtitle'] = 'Postena titolo';
$labels['department'] = 'Departemento';
$labels['gender'] = 'Sekso';
-$labels['maidenname'] = 'FraÅ­la nomo';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'RetpoÅto';
$labels['phone'] = 'Telefono';
$labels['address'] = 'Adreso';
@@ -253,6 +301,7 @@ $labels['search'] = 'Serĉu';
$labels['advsearch'] = 'Detala sercô';
$labels['advanced'] = 'Altnivela';
$labels['other'] = 'Alia';
+
$labels['typehome'] = 'Hejmo';
$labels['typework'] = 'Laboro';
$labels['typeother'] = 'Alia';
@@ -262,16 +311,19 @@ $labels['typehomefax'] = 'Hejma faksilo';
$labels['typeworkfax'] = 'Laboreja faksilo';
$labels['typecar'] = 'AÅ­tomobilo';
$labels['typepager'] = 'Televokilo';
+$labels['typevideo'] = 'Video';
$labels['typeassistant'] = 'Asistanto';
$labels['typehomepage'] = 'HejmpaÄo';
$labels['typeblog'] = 'Blogo';
$labels['typeprofile'] = 'Profilo';
+
$labels['addfield'] = 'Aldonu kampon...';
$labels['addcontact'] = 'Aldonu kontakton';
$labels['editcontact'] = 'Redaktu kontakton';
$labels['contacts'] = 'Kontaktoj';
$labels['contactproperties'] = 'Kontakt-informoj';
$labels['personalinfo'] = 'Personaj informoj';
+
$labels['edit'] = 'Redaktu';
$labels['cancel'] = 'Nuligi';
$labels['save'] = 'Konservi';
@@ -280,38 +332,77 @@ $labels['rename'] = 'Alinomu';
$labels['addphoto'] = 'Aldonu';
$labels['replacephoto'] = 'AnstataÅ­u';
$labels['uploadphoto'] = 'AlÅutu bildon';
+
$labels['newcontact'] = 'Kreu novan kontakton';
$labels['deletecontact'] = 'Forigu elektatajn kontaktojn';
$labels['composeto'] = 'Verku mesaÄon al';
$labels['contactsfromto'] = 'Kontaktoj ekde $from Äis $to de $count';
$labels['print'] = 'Presi';
$labels['export'] = 'Elporti';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Montru auntaÅ­an';
$labels['firstpage'] = 'Montru unuan';
$labels['nextpage'] = 'Montru sekvan';
$labels['lastpage'] = 'Montru lastan';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Grupoj';
$labels['personaladrbook'] = 'Persona Adresoj';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'Preferoj de';
+$labels['about'] = 'About';
$labels['preferences'] = 'Preferoj';
$labels['userpreferences'] = 'Uzant-preferoj';
$labels['editpreferences'] = 'Redaktu uzant-preferojn';
+
$labels['identities'] = 'Identoj';
$labels['manageidentities'] = 'Administru identojn de ĉi tiu konto';
$labels['newidentity'] = 'Nova idento';
+
$labels['newitem'] = 'Nova ero';
$labels['edititem'] = 'Redaktu eron';
+
$labels['preferhtml'] = 'Montru HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML MesaÄo';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Agrablaj Datoj';
$labels['setdefault'] = 'Agordu kiel norma';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Lingvo';
$labels['timezone'] = 'Tempzono';
$labels['pagesize'] = 'MesaÄoj po paÄo';
$labels['signature'] = 'Subskribo';
$labels['dstactive'] = 'Taglumsavado';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Uzado de HTML-redaktilo';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML subskribo';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Montru antaÅ­rigardejon';
$labels['skin'] = 'Interfaco-etoso';
$labels['logoutclear'] = 'Malplenigu rubujon je eliro';
@@ -322,14 +413,69 @@ $labels['mailboxview'] = 'Ricevitujo vido';
$labels['mdnrequests'] = 'Sendanto-sciigoj';
$labels['askuser'] = 'demandu';
$labels['autosend'] = 'sendu aÅ­tomate';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'malatentu';
$labels['readwhendeleted'] = 'Marku mesaÄon kiel legita kiam forigata';
$labels['flagfordeletion'] = 'Marku mesaÄon kiel forigita anstataÅ­ forigi';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
$labels['showinlineimages'] = 'Montru alfiksitajn bildojn sub la mesaÄo';
$labels['autosavedraft'] = 'AÅ­tomate savu malneton';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'neniam';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'MesaÄoj vidigante';
$labels['messagescomposition'] = 'MesaÄo-verkado';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Dosierujo';
$labels['folders'] = 'Dosierujoj';
$labels['foldername'] = 'Dosierujo-nomo';
@@ -338,7 +484,55 @@ $labels['messagecount'] = 'MesaÄoj';
$labels['create'] = 'Krei';
$labels['createfolder'] = 'Kreu novan dosierujon';
$labels['managefolders'] = 'Administru dosierujon';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Ordigu per';
$labels['sortasc'] = 'Ordigu kreskante';
$labels['sortdesc'] = 'Ordigu malkreskante';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/eo/messages.inc b/program/localization/eo/messages.inc
index 17e3f1719..4d72fe54b 100644
--- a/program/localization/eo/messages.inc
+++ b/program/localization/eo/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Eraro okazis!';
$messages['loginfailed'] = 'Malsukcesis ensaluti';
$messages['cookiesdisabled'] = 'Via foliumilo ne akceptas kuketojn';
@@ -23,13 +25,20 @@ $messages['storageerror'] = 'Konekto kun IMAP-servilo malsukcesis';
$messages['servererror'] = 'Servil-eraro!';
$messages['servererrormsg'] = 'Servil-eraro: $msg';
$messages['dberror'] = 'Datumbaz-eraro!';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'Ne povis fari agon. Dosierujo estas nurlega';
$messages['errornoperm'] = 'Ne povis fari agon. Ne havas permeson.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Nevalida peto';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Neniu mesaÄo en ĉi tiu dosierujo';
$messages['loggedout'] = 'Vi sukcese finis la seancon. Äœis!';
$messages['mailboxempty'] = 'Dosierujo estas malplena';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Åœarganta...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Åœarganta datumojn...';
$messages['checkingmail'] = 'Kontrolanta, ĉu novaj mesaÄoj...';
$messages['sendingmessage'] = 'Sedanta mesaÄon...';
@@ -39,43 +48,124 @@ $messages['messagesaved'] = 'MesaÄo savita en Malnetujo';
$messages['successfullysaved'] = 'Sukcese savis';
$messages['addedsuccessfully'] = 'Sukcese aldonis kontakton al adresaro';
$messages['contactexists'] = 'Kontakto kun ĉi tiu adreso jam ekzistas';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Por protekti vian privatecon, foraj bildoj estas blokitaj en ĉi tiu mesaÄo.';
$messages['encryptedmessage'] = 'Ĉi tiu mesaÄo estas ĉifrata kaj ne estas montrebla. Pardonu!';
$messages['nocontactsfound'] = 'Trovis neniun kontakton';
$messages['contactnotfound'] = 'La petita kontakto ne trovis';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Ne sukcesis sendi mesaÄon';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Okazis eraro dum savo de mesaÄo';
$messages['errormoving'] = 'Ne povis transloki mesaÄon';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Ne povis forigi mesaÄon';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Ĉu vi vere volas forigi la elektata(j)n kontakto(j)n?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Ĉu vi vere volas forigi la elektata(j)n mesaÄo(j)n?';
$messages['deletefolderconfirm'] = 'Ĉu vi vere volas forigi la elektatan dosierujon?';
$messages['purgefolderconfirm'] = 'Ĉu vi vere volas forigi ĉiun mesaÄon el ĉi tiu dosierujo?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'La formularo ne estis kompletigita';
$messages['noemailwarning'] = 'Bonvolu enmeti validan retpoÅt-adreson';
$messages['nonamewarning'] = 'Bonvulu enmeti nomon';
$messages['nopagesizewarning'] = 'Bonvolu enmeti paÄ-grando';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Bonvolu enmeti minumume unu ricevonto';
$messages['nosubjectwarning'] = 'La temkampo estas malplena. Ĉu vi volas skribi temon nun?';
$messages['nobodywarning'] = 'Ĉu sendi ĉi tiun mesaÄon sen teksto?';
$messages['notsentwarning'] = 'MesaÄo ne estas sendita. Ĉu vi volas forigi vian mesaÄon?';
$messages['noldapserver'] = 'Bonvolu elekti ldap-servilon por serĉado';
$messages['nosearchname'] = 'Bonvolu enmeti kontakt-nomon aÅ­ retpoÅt-adreson.';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'trovis $nr mesaÄojn';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Serĉo donis nenion';
$messages['searching'] = 'Serĉanta...';
$messages['checking'] = 'Kontrolanta...';
$messages['nospellerrors'] = 'Neniujn literumada eraro trovita';
$messages['folderdeleted'] = 'Forigis dosierujon sukcese';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'Sukcese forigis';
$messages['converting'] = 'Foriganta formatan de mesaÄo...';
$messages['messageopenerror'] = 'Ne povis Åargi mesaÄon de servilo';
$messages['fileuploaderror'] = 'Malsukcesis alÅuti dosieron';
$messages['filesizeerror'] = 'La alÅutita dosiero superas la maksimuman grandon de $size';
+$messages['copysuccess'] = 'Sukcese kopiis $nr adresojn';
+$messages['copyerror'] = 'Ne povis kopii ajn adreson';
$messages['sourceisreadonly'] = 'Ĉi tiu adres-fonto estas nurlegebla';
$messages['errorsavingcontact'] = 'Ne povis savi la kontakt-adreson';
$messages['movingmessage'] = 'Translokanta mesaÄon...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'Sukcese sendis konfirmon';
$messages['errorsendingreceipt'] = 'Ne povis sendi konfirmon';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Vi ne povas forigi ĉi tiun identon, ĉar Äi estas la lasta';
$messages['forbiddencharacter'] = 'Dosierujo-nomo enhavas malpermesitan karaktron';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/es_AR/labels.inc b/program/localization/es_AR/labels.inc
index eb4630ed4..d9a83be75 100644
--- a/program/localization/es_AR/labels.inc
+++ b/program/localization/es_AR/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bienvenido a $product';
$labels['username'] = 'Nombre de usuario';
$labels['password'] = 'Contraseña';
$labels['server'] = 'Servidor';
$labels['login'] = 'Entrar';
+
+// taskbar
$labels['logout'] = 'Cerrar sesión';
$labels['mail'] = 'Correo';
$labels['settings'] = 'Configuración';
$labels['addressbook'] = 'Contactos';
+
+// mailbox names
$labels['inbox'] = 'Entrada';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Papelera';
$labels['junk'] = 'Basura';
+
+// message listing
$labels['subject'] = 'Asunto';
$labels['from'] = 'Remitente';
$labels['sender'] = 'Remitente';
@@ -36,25 +46,34 @@ $labels['to'] = 'Destinatario';
$labels['cc'] = 'Copia';
$labels['bcc'] = 'Cco';
$labels['replyto'] = 'Responder a';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Fecha';
$labels['size'] = 'Tamaño';
$labels['priority'] = 'Prioridad';
$labels['organization'] = 'Organización';
+$labels['readstatus'] = 'Read status';
$labels['listoptions'] = 'Listar opciones...';
+
$labels['mailboxlist'] = 'Carpetas';
$labels['messagesfromto'] = 'Mensajes $from a $to de $count';
$labels['threadsfromto'] = '$from a $to de $count conversaciones';
$labels['messagenrof'] = 'Mensaje $nr de $count';
$labels['fromtoshort'] = '$from – $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'Mover a...';
$labels['download'] = 'Descargar';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Mostrar';
$labels['showanyway'] = 'Mostrar esto siempre';
+
$labels['filename'] = 'Nombre del archivo';
$labels['filesize'] = 'Tamaño del archivo';
+
$labels['addtoaddressbook'] = 'Añadir a contactos';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -62,6 +81,8 @@ $labels['wed'] = 'Mié';
$labels['thu'] = 'Jue';
$labels['fri'] = 'Vie';
$labels['sat'] = 'Sáb';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Lunes';
$labels['tuesday'] = 'Martes';
@@ -69,6 +90,8 @@ $labels['wednesday'] = 'Miércoles';
$labels['thursday'] = 'Jueves';
$labels['friday'] = 'Viernes';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Ene';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -81,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dic';
+
+// months long
$labels['longjan'] = 'Enero';
$labels['longfeb'] = 'Febrero';
$labels['longmar'] = 'Marzo';
@@ -93,7 +118,10 @@ $labels['longsep'] = 'Septiembre';
$labels['longoct'] = 'Octubre';
$labels['longnov'] = 'Noviembre';
$labels['longdec'] = 'Diciembre';
+
$labels['today'] = 'Hoy';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Revisar si hay nuevos mensajes';
$labels['compose'] = 'Escribir un mensaje';
@@ -126,6 +154,7 @@ $labels['moreactions'] = 'Mas acciones...';
$labels['more'] = 'Más';
$labels['back'] = 'Atrás';
$labels['options'] = 'Opciones';
+
$labels['select'] = 'Elija';
$labels['all'] = 'Todos';
$labels['none'] = 'Ninguno';
@@ -133,6 +162,7 @@ $labels['currpage'] = 'Página actual';
$labels['unread'] = 'Sin leer';
$labels['flagged'] = 'Marcado';
$labels['unanswered'] = 'Sin respuesta';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Eliminado';
$labels['undeleted'] = 'No eliminado';
$labels['invert'] = 'Invertir';
@@ -143,6 +173,7 @@ $labels['expand-all'] = 'Expandir Todos';
$labels['expand-unread'] = 'Expandir No Leidos';
$labels['collapse-all'] = 'Colapsar Todos';
$labels['threaded'] = 'Como conversaciones';
+
$labels['autoexpand_threads'] = 'Expandir mensajes en conversación';
$labels['do_expand'] = 'todas las conversaciones';
$labels['expand_only_unread'] = 'solo con mensajes no leídos';
@@ -157,18 +188,28 @@ $labels['desc'] = 'Descendente';
$labels['listcolumns'] = 'Listar columnas';
$labels['listsorting'] = 'Ordenar por';
$labels['listorder'] = 'Ordenado por';
+$labels['listmode'] = 'List view mode';
+
$labels['folderactions'] = 'Acciones de carpeta...';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Vaciar';
+
$labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'desconocido';
$labels['unlimited'] = 'sin límite';
+
$labels['quicksearch'] = 'Búsqueda rápida';
$labels['resetsearch'] = 'Reajustar la búsqueda';
$labels['searchmod'] = 'Opciones de búsqueda';
$labels['msgtext'] = 'Mensaje completo';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Abrir en ventana nueva';
$labels['emlsave'] = 'Guardar (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Editar como nuevo';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar ahora el mensaje';
@@ -180,40 +221,52 @@ $labels['returnreceipt'] = 'Acuse de recibo';
$labels['dsn'] = 'Notificación de estado del envío';
$labels['mailreplyintro'] = 'El $date, $sender escribió:';
$labels['originalmessage'] = 'Mensaje original';
+
$labels['editidents'] = 'Editar identidades';
$labels['spellcheck'] = 'Gramática';
$labels['checkspelling'] = 'Revisar ortografía';
$labels['resumeediting'] = 'Continuar edición';
$labels['revertto'] = 'Revertir a';
+
$labels['attach'] = 'Adjuntar';
$labels['attachments'] = 'Adjuntos';
$labels['upload'] = 'Agregar';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Cerrar';
$labels['messageoptions'] = 'Opciones de mensaje...';
+
$labels['low'] = 'Bajo';
$labels['lowest'] = 'Bajísimo';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alto';
$labels['highest'] = 'Altísimo';
+
$labels['nosubject'] = '(sin asunto)';
$labels['showimages'] = 'Mostrar imágenes';
$labels['alwaysshow'] = 'Siempre mostrar imágenes de $sender';
$labels['isdraft'] = 'Este es un borrador.';
$labels['andnmore'] = '$nr más...';
$labels['togglemoreheaders'] = 'Mostrarme más encabezados de mensaje';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto';
$labels['savesentmessagein'] = 'Guardar mensaje enviado en';
$labels['dontsave'] = 'no guardar';
$labels['maxuploadsize'] = 'El tamaño maximo permitido por archivo es $size';
+
$labels['addcc'] = 'Añadir Cc';
$labels['addbcc'] = 'Añadir Cco';
$labels['addreplyto'] = 'Añadir Respuesta a';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'El emisor de este mensaje desea ser notificado cuando usted lo lea. ¿Quiere enviar esta notificación?';
$labels['receiptread'] = 'Notificación de lectura';
$labels['yourmessage'] = 'Esta es una notificación de lectura de su mensaje';
$labels['receiptnote'] = 'Nota: Esta notificación sólo significa que su mensaje fue mostrado en la computadora del receptor. No hay garantía de que el receptor haya leído o entendido el contenido del mensaje.';
+
+// address boook
$labels['name'] = 'Nombre completo';
$labels['firstname'] = 'Nombre';
$labels['surname'] = 'Apellido';
@@ -248,6 +301,7 @@ $labels['search'] = 'Buscar';
$labels['advsearch'] = 'Búsqueda Avanzada';
$labels['advanced'] = 'Avanzado';
$labels['other'] = 'Otro';
+
$labels['typehome'] = 'Particular';
$labels['typework'] = 'Laboral';
$labels['typeother'] = 'Otro';
@@ -262,12 +316,14 @@ $labels['typeassistant'] = 'Asistente';
$labels['typehomepage'] = 'Página Personal';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Agregar campo...';
$labels['addcontact'] = 'Añadir nuevo contacto';
$labels['editcontact'] = 'Editar contacto';
$labels['contacts'] = 'Contactos';
$labels['contactproperties'] = 'Propiedades del contacto';
$labels['personalinfo'] = 'Información personal';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Guardar';
@@ -276,45 +332,60 @@ $labels['rename'] = 'Renombrar';
$labels['addphoto'] = 'Agregar';
$labels['replacephoto'] = 'Reemplazar';
$labels['uploadphoto'] = 'Subir foto';
+
$labels['newcontact'] = 'Añadir nuevo contacto';
$labels['deletecontact'] = 'Eliminar contactos seleccionados';
$labels['composeto'] = 'Enviar mensaje a';
$labels['contactsfromto'] = 'Contactos $from a $to de $count';
$labels['print'] = 'Imprimir';
$labels['export'] = 'Exportar';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Exportar contactos en format vCard';
$labels['newcontactgroup'] = 'Crear Nuevo Grupo de Contacto';
$labels['grouprename'] = 'Renombrar grupo';
$labels['groupdelete'] = 'Eliminar grupo';
$labels['groupremoveselected'] = 'Remover del grupo los contactos seleccionados';
+
$labels['previouspage'] = 'Mostrar grupo anterior';
$labels['firstpage'] = 'Mostrar primer grupo';
$labels['nextpage'] = 'Mostrar siguiente grupo';
$labels['lastpage'] = 'Mostrar último grupo';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
$labels['personaladrbook'] = 'Direcciones personales';
+
$labels['searchsave'] = 'Guardar búsqueda';
$labels['searchdelete'] = 'Eliminar búsqueda';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contactos';
$labels['importfromfile'] = 'Importar desde el archivo:';
+$labels['importtarget'] = 'Agregar nuevos contactos a la libreta de direcciones:';
$labels['importreplace'] = 'Reemplazar completamente la lista de contactos';
$labels['importdesc'] = 'Puedes subir contactos desde una libreta de direcciones existente.<br/>Actualmente soportamos la importación de direcciones utilizando el formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> o CSV (Valores Separados por Coma).';
$labels['done'] = 'Hecho';
+
+// settings
$labels['settingsfor'] = 'Configuración para';
$labels['about'] = 'Acerca de';
$labels['preferences'] = 'Preferencias';
$labels['userpreferences'] = 'Preferencias de usuario';
$labels['editpreferences'] = 'Editar preferencias de usuario';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Gestionar identidades para esta cuenta';
$labels['newidentity'] = 'Nueva identidad';
+
$labels['newitem'] = 'Nuevo';
$labels['edititem'] = 'Editar';
+
$labels['preferhtml'] = 'Prefiero HTML';
$labels['defaultcharset'] = 'Juego de Caracteres por Defecto';
$labels['htmlmessage'] = 'Mensaje HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Formato de fecha';
$labels['timeformat'] = 'Formato de tiempo';
$labels['prettydate'] = 'Fecha detallada';
@@ -331,6 +402,7 @@ $labels['htmleditor'] = 'Componer mensaje en HTML';
$labels['htmlonreply'] = 'al responder un mensaje HTML';
$labels['htmlonreplyandforward'] = 'al reenviar o responder un mensaje HTML';
$labels['htmlsignature'] = 'Firma HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Mostrar vista preliminar';
$labels['skin'] = 'Apariencia de la interfaz';
$labels['logoutclear'] = 'Vaciar papelera al cerrar sesión';
@@ -341,17 +413,21 @@ $labels['mailboxview'] = 'Vista de buzón';
$labels['mdnrequests'] = 'Notificaciones de envío';
$labels['askuser'] = 'preguntar al usuario';
$labels['autosend'] = 'enviar automáticamente';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'ignorar';
$labels['readwhendeleted'] = 'Marcar el mensage como leído al borrarlo';
$labels['flagfordeletion'] = 'Marcar el mensage para borrarse en vez de borrarlo';
$labels['skipdeleted'] = 'No mostrar mensajes eliminados';
$labels['deletealways'] = 'Cuando no se pueda mover un mensaje a la papelera, eliminarlo';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Mostrar imágenes remotas';
$labels['fromknownsenders'] = 'de remitentes conocidos';
$labels['always'] = 'siempre';
$labels['showinlineimages'] = 'Mostrar imágenes adjuntas debajo del mensaje';
$labels['autosavedraft'] = 'Guardar borrador automáticamente';
$labels['everynminutes'] = 'cada $n minuto(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nunca';
$labels['immediately'] = 'inmediatamente';
$labels['messagesdisplaying'] = 'Vista de mensajes';
@@ -365,12 +441,15 @@ $labels['advancedoptions'] = 'Opciones Avanzadas';
$labels['focusonnewmessage'] = 'Traer al frente la ventana del navegador cuando haya nuevos mensajes';
$labels['checkallfolders'] = 'Verificar todas las carpetas por nuevos mensajes';
$labels['displaynext'] = 'Luedo de eliminar/mover, mostrar el próximo mensaje';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Opciones Principales';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Selección';
$labels['maintenance'] = 'Mantenimiento';
$labels['newmessage'] = 'Nuevo Mensaje';
$labels['signatureoptions'] = 'Opciones de Firma';
$labels['whenreplying'] = 'Al Responder';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'iniciar el nuevo mensaje sobre el original';
$labels['replybottomposting'] = 'iniciar el nuevo mensaje debajo del original';
$labels['replyremovesignature'] = 'Al responder, eliminar la firma del mensaje original';
@@ -380,6 +459,23 @@ $labels['replyandforwardonly'] = 'respuestas o reenvios solamente';
$labels['insertsignature'] = 'Insertar firma';
$labels['previewpanemarkread'] = 'Marcar mensajes previsualizados como leidos';
$labels['afternseconds'] = 'despues de $n segundos';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Carpeta';
$labels['folders'] = 'Carpetas';
$labels['foldername'] = 'Nombre de carpeta';
@@ -389,13 +485,37 @@ $labels['create'] = 'Crear';
$labels['createfolder'] = 'Crear nueva carpeta';
$labels['managefolders'] = 'Administrar carpetas';
$labels['specialfolders'] = 'Carpetas Especiales';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Orden ascendente';
$labels['sortdesc'] = 'Orden descendente';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Ingles';
$labels['westerneuropean'] = 'Europa Occidental';
@@ -414,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonés';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chino';
+
?>
diff --git a/program/localization/es_AR/messages.inc b/program/localization/es_AR/messages.inc
index 1c442c189..1cec9f01d 100644
--- a/program/localization/es_AR/messages.inc
+++ b/program/localization/es_AR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ha ocurrido un error!';
$messages['loginfailed'] = 'Contraseña o nombre de usuario incorrecto';
$messages['cookiesdisabled'] = 'Su navegador no acepta cookies';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Error en base de datos!';
$messages['requesttimedout'] = 'Tiempo de espera agotado';
$messages['errorreadonly'] = 'No se pudo realizar la operación. La carpeta es de sólo lectura.';
$messages['errornoperm'] = 'No se pudo realizar la operación. Permiso denegado.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Peteción invalida! No se guardó nada.';
$messages['invalidhost'] = 'Nombre de servidor inválido.';
$messages['nomessagesfound'] = 'No se han encontrado mensajes en esta casilla';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'El contacto solicitado no existe';
$messages['contactsearchonly'] = 'Ingresá algún término de búsqueda para encontrar contactos';
$messages['sendingfailed'] = 'Error al enviar mensaje';
$messages['senttooquickly'] = 'Por favor, espere $sec segundo(s) antes de enviar este mensaje';
+$messages['errorsavingsent'] = 'Ocurrió un error al guardar el mensaje enviado';
+$messages['errorsaving'] = 'Ocurrió un error al guardar';
$messages['errormoving'] = 'No se pudo mover el mensaje';
$messages['errorcopying'] = 'No se pudo copiar el mensaje';
$messages['errordeleting'] = 'No se ha podido eliminar el mensaje';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Removiendo el formato del mensaje...';
$messages['messageopenerror'] = 'No puedo descargar el mensaje del servidor';
$messages['fileuploaderror'] = 'Error al subir archivos';
$messages['filesizeerror'] = 'El archivo excede el tamaño maximo ($size)';
+$messages['copysuccess'] = '$nr direcciones copiadas con éxito';
+$messages['copyerror'] = 'No se pudo copiar ninguna dirección';
$messages['sourceisreadonly'] = 'Esta dirección es de sólo-lectura';
$messages['errorsavingcontact'] = 'No se pudo guardar la dirección de contacto';
$messages['movingmessage'] = 'Moviendo mensaje...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'La dirección $email no es válida';
$messages['toomanyrecipients'] = 'Demasiados destinatarios. Reduzca la cantidad a un máximo de $max.';
$messages['maxgroupmembersreached'] = 'El número de miembros del grupo excede el máximo de $max';
+$messages['internalerror'] = 'Ocurrió un error interno. Por favor, intentá de nuevo.';
$messages['contactdelerror'] = 'No se pudo eliminar el/los contactos(s).';
$messages['contactdeleted'] = 'Contacto(s) eliminado/s exitosamente.';
$messages['contactrestoreerror'] = 'No se pudo recuperar el/los contacto/s eliminado(s).';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'No se pudo crear/mover la carpeta dentro de la
$messages['messagetoobig'] = 'El mensaje es demasiado grande para ser procesado.';
$messages['attachmentvalidationerror'] = 'Advertencia! Este archivo adjunto es sospechoso porque su tipo no concuerda con el tipo declarado en el mensaje. Si no confias en el remitente, no deberías abrirlo en el navegador porque puede contener código malicioso.<br/><br/><em>Se esperaba: $expected; Se encontró: $detected</em>';
$messages['noscriptwarning'] = 'Advertencia: Este servicio de webmail requiere Javascript! Para usarlo, por favor, habilite Javascript en las preferencia de tu navegador.';
+
?>
diff --git a/program/localization/es_ES/labels.inc b/program/localization/es_ES/labels.inc
index 66fcafd0b..03f6b489a 100644
--- a/program/localization/es_ES/labels.inc
+++ b/program/localization/es_ES/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bienvenido a $product';
$labels['username'] = 'Nombre de usuario';
$labels['password'] = 'Contraseña';
$labels['server'] = 'Servidor';
$labels['login'] = 'Iniciar sesión';
+
+// taskbar
$labels['logout'] = 'Cerrar sesión';
$labels['mail'] = 'Correo';
$labels['settings'] = 'Configuración';
$labels['addressbook'] = 'Contactos';
+
+// mailbox names
$labels['inbox'] = 'Entrada';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Papelera';
$labels['junk'] = 'SPAM';
-$labels['show_real_foldernames'] = 'Mostrar nombres reales para carpetas especiales';
+
+// message listing
$labels['subject'] = 'Asunto';
$labels['from'] = 'Remitente';
$labels['sender'] = 'Remitente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioridad';
$labels['organization'] = 'Organización';
$labels['readstatus'] = 'Leer estado';
$labels['listoptions'] = 'Lista de opciones...';
+
$labels['mailboxlist'] = 'Carpetas';
$labels['messagesfromto'] = 'Mensajes $from a $to de $count';
$labels['threadsfromto'] = 'Hilos $from a $to de $count';
$labels['messagenrof'] = 'Mensaje $nr de $count';
$labels['fromtoshort'] = '$from – $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'Mover a…';
@@ -56,9 +67,13 @@ $labels['download'] = 'Descargar';
$labels['open'] = 'Abrir';
$labels['showattachment'] = 'Mostrar';
$labels['showanyway'] = 'Mostrarlo de todos modos';
+
$labels['filename'] = 'Nombre del archivo';
$labels['filesize'] = 'Tamaño del archivo';
+
$labels['addtoaddressbook'] = 'Añadir a contactos';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mié';
$labels['thu'] = 'Jue';
$labels['fri'] = 'Vie';
$labels['sat'] = 'Sáb';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Lunes';
$labels['tuesday'] = 'Martes';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Miércoles';
$labels['thursday'] = 'Jueves';
$labels['friday'] = 'Viernes';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Ene';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dic';
+
+// months long
$labels['longjan'] = 'Enero';
$labels['longfeb'] = 'Febrero';
$labels['longmar'] = 'Marzo';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Septiembre';
$labels['longoct'] = 'Octubre';
$labels['longnov'] = 'Noviembre';
$labels['longdec'] = 'Diciembre';
+
$labels['today'] = 'Hoy';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Revisar si hay mensajes nuevos';
$labels['compose'] = 'Redactar';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Más acciones…';
$labels['more'] = 'Más';
$labels['back'] = 'Volver';
$labels['options'] = 'Opciones';
+
$labels['select'] = 'Elija';
$labels['all'] = 'Todos';
$labels['none'] = 'Ninguno';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandir todos';
$labels['expand-unread'] = 'Expandir no leídos';
$labels['collapse-all'] = 'Colapsar todos';
$labels['threaded'] = 'Encadenados';
+
$labels['autoexpand_threads'] = 'Expandir hilos de mensajes';
$labels['do_expand'] = 'todos los hilos';
$labels['expand_only_unread'] = 'solo con mensajes no leídos';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Listar columnas';
$labels['listsorting'] = 'Columna de listado';
$labels['listorder'] = 'Orden de listado';
$labels['listmode'] = 'Modo de vista de lista';
+
$labels['folderactions'] = 'Acciones de bandeja...';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Vaciar';
-$labels['importmessages'] = 'Importar mensajes';
+
$labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'desconocido';
$labels['unlimited'] = 'sin límite';
+
$labels['quicksearch'] = 'Búsqueda rápida';
$labels['resetsearch'] = 'Reiniciar la búsqueda';
$labels['searchmod'] = 'Opciones de búsqueda';
$labels['msgtext'] = 'Mensaje completo';
$labels['body'] = 'Cuerpo';
-$labels['type'] = 'Tipo';
-$labels['namex'] = 'Nombre';
+
$labels['openinextwin'] = 'Abrir en nueva ventana';
$labels['emlsave'] = 'Descargar (.eml)';
$labels['changeformattext'] = 'Mostrar en formato de texto sencillo';
$labels['changeformathtml'] = 'Mostrar en formato HTML';
+
+// message compose
$labels['editasnew'] = 'Editar como nuevo';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar ahora el mensaje';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Acuse de recibo';
$labels['dsn'] = 'Entrega de notificaciones de estado';
$labels['mailreplyintro'] = 'El $date, $sender escribió:';
$labels['originalmessage'] = 'Mensaje original';
+
$labels['editidents'] = 'Editar identidades';
$labels['spellcheck'] = 'Corrector ortográfico';
$labels['checkspelling'] = 'Revisar ortografía';
$labels['resumeediting'] = 'Continuar edición';
$labels['revertto'] = 'Revertir a';
+
$labels['attach'] = 'Adjuntar';
$labels['attachments'] = 'Adjuntos';
$labels['upload'] = 'Subir';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Cerrar';
$labels['messageoptions'] = 'Opciones de mensaje...';
+
$labels['low'] = 'Bajo';
$labels['lowest'] = 'Bajísimo';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alto';
$labels['highest'] = 'Altísimo';
+
$labels['nosubject'] = '(sin asunto)';
$labels['showimages'] = 'Mostrar imágenes';
$labels['alwaysshow'] = 'Mostrar siempre imágenes de $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Este mensaje es un borrador';
$labels['andnmore'] = '$nr más…';
$labels['togglemoreheaders'] = 'Mostrar más encabezados del mensaje';
$labels['togglefullheaders'] = 'Mostrar u ocultar encabezados de mensajes';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Sólo texto';
$labels['savesentmessagein'] = 'Guardar mensaje enviado en';
$labels['dontsave'] = 'No guardar';
$labels['maxuploadsize'] = 'Tamaño de archivo máximo permitido: $size';
+
$labels['addcc'] = 'Añadir Cc';
$labels['addbcc'] = 'Añadir Cco';
$labels['addreplyto'] = 'Añadir Responder a';
$labels['addfollowupto'] = 'Añadir Seguir a';
+
+// mdn
$labels['mdnrequest'] = 'El emisor de este mensaje desea ser notificado cuando usted lo lea. ¿Quiere enviar esta notificación?';
$labels['receiptread'] = 'Notificación de lectura';
$labels['yourmessage'] = 'Esto es un acuse de recibo de su mensaje';
$labels['receiptnote'] = 'Nota: Esta notificación sólo significa que su mensaje fue abierto en el ordenador del destinatario. Eso no garantiza que el destinatario haya leído o entendido el contenido del mensaje.';
+
+// address boook
$labels['name'] = 'Nombre para mostrar';
$labels['firstname'] = 'Nombre';
$labels['surname'] = 'Apellido';
@@ -262,6 +301,7 @@ $labels['search'] = 'Buscar';
$labels['advsearch'] = 'Búsqueda avanzada';
$labels['advanced'] = 'Avanzadas';
$labels['other'] = 'Otro';
+
$labels['typehome'] = 'Casa';
$labels['typework'] = 'Trabajo';
$labels['typeother'] = 'Otro';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Auxiliar';
$labels['typehomepage'] = 'Inicio';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Añadir campo...';
$labels['addcontact'] = 'Añadir nuevo contacto';
$labels['editcontact'] = 'Editar contacto';
$labels['contacts'] = 'Contactos';
$labels['contactproperties'] = 'Propiedades del contacto';
$labels['personalinfo'] = 'Información personal';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Guardar';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Renombrar';
$labels['addphoto'] = 'Añadir';
$labels['replacephoto'] = 'Reemplazar';
$labels['uploadphoto'] = 'Subir foto';
+
$labels['newcontact'] = 'Crear nueva tarjeta de contacto';
$labels['deletecontact'] = 'Eliminar contactos seleccionados';
$labels['composeto'] = 'Escribir mensaje a';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Crear un nuevo grupo de contactos';
$labels['grouprename'] = 'Renombrar grupo';
$labels['groupdelete'] = 'Borrar grupo';
$labels['groupremoveselected'] = 'Eliminar los contactos seleccionados del grupo';
+
$labels['previouspage'] = 'Mostrar grupo anterior';
$labels['firstpage'] = 'Mostrar primer grupo';
$labels['nextpage'] = 'Mostrar grupo siguiente';
$labels['lastpage'] = 'Mostrar último grupo';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
-$labels['listgroup'] = 'Listar miembros del grupo';
$labels['personaladrbook'] = 'Direcciones personales';
+
$labels['searchsave'] = 'Guardar búsqueda';
$labels['searchdelete'] = 'Borrar búsqueda';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contactos';
$labels['importfromfile'] = 'Importar desde archivo:';
-$labels['importtarget'] = 'Agregar contactos a';
+$labels['importtarget'] = 'Añadir un nuevo contacto a la los contactos:';
$labels['importreplace'] = 'Reemplazar toda la lista de contactos';
-$labels['importgroups'] = 'Importar asignaciones de grupo';
-$labels['importgroupsall'] = 'Todos (crear grupos si es necesario)';
-$labels['importgroupsexisting'] = 'Sólo para los grupos existentes';
$labels['importdesc'] = 'Puede subir contactos desde una libreta de direcciones existente.<br/>Actualmente permitimos la importación desde los formatos de datos <a href="http://es.wikipedia.org/wiki/VCard">vCard</a> o CSV (separados por comas).';
$labels['done'] = 'Hecho';
+
+// settings
$labels['settingsfor'] = 'Configuración para';
$labels['about'] = 'Acerca de';
$labels['preferences'] = 'Preferencias';
$labels['userpreferences'] = 'Preferencias de usuario';
$labels['editpreferences'] = 'Editar preferencias de usuario';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Gestionar identidades para esta cuenta';
$labels['newidentity'] = 'Nueva identidad';
+
$labels['newitem'] = 'Nuevo';
$labels['edititem'] = 'Editar';
+
$labels['preferhtml'] = 'Prefiero HTML';
$labels['defaultcharset'] = 'Juego de caracteres predeterminado';
$labels['htmlmessage'] = 'Mensaje HTML';
@@ -354,7 +402,7 @@ $labels['htmleditor'] = 'Componer mensaje en HTML';
$labels['htmlonreply'] = 'sólo en respuesta a un mensaje HTML';
$labels['htmlonreplyandforward'] = 'en reenvío o respuesta al mensaje HTML';
$labels['htmlsignature'] = 'Firma HTML';
-$labels['showemail'] = 'Mostrar dirección de correo electrónico al visualizar el nombre';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Mostrar vista preliminar';
$labels['skin'] = 'Apariencia de la interfaz';
$labels['logoutclear'] = 'Vaciar papelera al cerrar sesión';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorar palabras con números';
$labels['spellcheckignorecaps'] = 'Ignorar palabras con todo mayúsculas';
$labels['addtodict'] = 'Añadir al diccionario';
$labels['mailtoprotohandler'] = 'Registrar controlador de protocolo para enlaces mailto:';
-$labels['standardwindows'] = 'Gestionar ventanas emergentes como ventanas estándar';
$labels['forwardmode'] = 'Reenvío de mensajes';
$labels['inline'] = 'en línea';
$labels['asattachment'] = 'como adjunto';
+
$labels['folder'] = 'Bandeja';
$labels['folders'] = 'Carpetas';
$labels['foldername'] = 'Nombre de bandeja';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Tipo de bandeja';
$labels['personalfolder'] = 'Bandeja privada';
$labels['otherfolder'] = 'Bandeja de otro usuario';
$labels['sharedfolder'] = 'Bandeja pública';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Orden ascendente';
$labels['sortdesc'] = 'Orden descendente';
$labels['undo'] = 'Deshacer';
+
$labels['installedplugins'] = 'Complementos instalados';
$labels['plugin'] = 'Complemento';
$labels['version'] = 'Versión';
$labels['source'] = 'Origen';
$labels['license'] = 'Licencia';
$labels['support'] = 'Obtener soporte';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglés';
$labels['westerneuropean'] = 'Europeo occidental';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonés';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chino';
+
?>
diff --git a/program/localization/es_ES/messages.inc b/program/localization/es_ES/messages.inc
index 694544cca..6c031df29 100644
--- a/program/localization/es_ES/messages.inc
+++ b/program/localization/es_ES/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = '¡Ha ocurrido un error!';
$messages['loginfailed'] = 'Contraseña o nombre de usuario incorrecto.';
$messages['cookiesdisabled'] = 'Su navegador no acepta cookies.';
@@ -55,7 +57,7 @@ $messages['contactsearchonly'] = 'Ingrese algún criterio para buscar contactos'
$messages['sendingfailed'] = 'Error al enviar mensaje.';
$messages['senttooquickly'] = 'Por favor, espere $sec segundo(s) antes de mandar este mensaje.';
$messages['errorsavingsent'] = 'Ha ocurrido un error al guardar el mensaje enviado.';
-$messages['errorsaving'] = 'Ha ocurrido un error al guardar.';
+$messages['errorsaving'] = 'Ocurrió un error mientras se guardaba.';
$messages['errormoving'] = 'No se ha podido mover el/los mensaje(s).';
$messages['errorcopying'] = 'No se ha podido copiar el/los mensaje(s).';
$messages['errordeleting'] = 'No se ha podido eliminar el/los mensaje(s).';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Quitando el formato del mensaje...';
$messages['messageopenerror'] = 'No puedo descargar el mensaje del servidor.';
$messages['fileuploaderror'] = 'Error al subir archivos.';
$messages['filesizeerror'] = 'El archivo excede el tamaño máximo ($size).';
-$messages['copysuccess'] = '$nr contactos copiados correctamente.';
-$messages['movesuccess'] = '$nr contactos movidos correctamente.';
-$messages['copyerror'] = 'No se ha podido copiar ningún contacto.';
-$messages['moveerror'] = 'No se ha podido mover ningún contacto.';
+$messages['copysuccess'] = '$nr direcciones copiadas correctamente.';
+$messages['copyerror'] = 'No se pudo copiar ninguna dirección.';
$messages['sourceisreadonly'] = 'Esta dirección es de sólo lectura.';
$messages['errorsavingcontact'] = 'No se pudo guardar la dirección de contacto.';
$messages['movingmessage'] = 'Moviendo mensaje(s)...';
$messages['copyingmessage'] = 'Copiando mensaje(s)...';
$messages['copyingcontact'] = 'Copiando contacto(s)…';
-$messages['movingcontact'] = 'Moviendo contacto(s)...';
$messages['deletingmessage'] = 'Eliminando mensaje(s)...';
$messages['markingmessage'] = 'Marcando mensaje(s)...';
$messages['addingmember'] = 'Añadiendo contacto(s) al grupo…';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Importando, espere...';
$messages['importformaterror'] = '¡La importación falló! El fichero enviado no es un fichero válido de importación de datos';
$messages['importconfirm'] = '<b>Se han importado $inserted contactos correctamente</b>';
$messages['importconfirmskipped'] = '<b>Ignoradas $skipped entradas existentes</b>';
-$messages['importmessagesuccess'] = '$nr mensajes importados con éxito';
-$messages['importmessageerror'] = '¡Ha fallado la importación! El fichero subido no es un fichero válido de mensaje o buzón de correo';
$messages['opnotpermitted'] = '¡Operación no permitida!';
$messages['nofromaddress'] = 'El contacto seleccionado no tiene dirección de e-mail';
$messages['editorwarning'] = 'Cambiando a texto plano perderá el formato del mensaje. ¿Desea continuar?';
@@ -142,7 +139,7 @@ $messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'Dirección e-mail incorrecta: $email';
$messages['toomanyrecipients'] = 'Hay demasiados destinatarios. Reduzca el número de destinatarios a $max.';
$messages['maxgroupmembersreached'] = 'El número de miembros del grupo excede el máximo de $max.';
-$messages['internalerror'] = 'Ha ocurrido un error interno. Por favor, inténtelo de nuevo.';
+$messages['internalerror'] = 'Ocurrió un error interno. Por favor, inténtelo de nuevo.';
$messages['contactdelerror'] = 'No se ha podido eliminar el/los contacto(s).';
$messages['contactdeleted'] = 'Contacto(s) eliminado(s) correctamente.';
$messages['contactrestoreerror'] = 'No se han podido restaurar los contactos borrados.';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'No se puede crear/mover la carpeta a la carpet
$messages['messagetoobig'] = 'Esta parte del mensaje es demasiada grande para procesarla.';
$messages['attachmentvalidationerror'] = '¡ATENCIÓN! Este adjunto es sospechoso porque su tipo no coincide con el tipo declarado en el mensaje. Si no confía en su remitente, no debería abrirlo en su navegador porque podría tener contenido malicioso.<br/<br/> <em>Esperado: $expected; encontrado: $detected</em>';
$messages['noscriptwarning'] = 'Advertencia: ¡este servicio de webmail necesita Javascript! Para poder usarlo habilite el soporte de Javascript en su navegador, por favor.';
+
?>
diff --git a/program/localization/et_EE/labels.inc b/program/localization/et_EE/labels.inc
index 42a268dd2..5d23d4ded 100644
--- a/program/localization/et_EE/labels.inc
+++ b/program/localization/et_EE/labels.inc
@@ -15,21 +15,31 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Tere tulemast! See on $product.';
$labels['username'] = 'Kasutajanimi';
$labels['password'] = 'Parool';
$labels['server'] = 'Server';
$labels['login'] = 'Logi sisse';
+
+// taskbar
$labels['logout'] = 'Logi välja';
$labels['mail'] = 'Postkast';
$labels['settings'] = 'Seaded';
$labels['addressbook'] = 'Aadressiraamat';
+
+// mailbox names
$labels['inbox'] = 'Saabuvad';
$labels['drafts'] = 'Mustandid';
$labels['sent'] = 'Saadetud';
$labels['trash'] = 'Prügikast';
$labels['junk'] = 'Rämps';
-$labels['show_real_foldernames'] = 'Näita eriliste kaustade päris nimesid';
+$labels['show_real_foldernames'] = 'Show real names for special folders';
+
+// message listing
$labels['subject'] = 'Pealkiri';
$labels['from'] = 'Saatja';
$labels['sender'] = 'Saatja';
@@ -44,11 +54,13 @@ $labels['priority'] = 'Tähtsus';
$labels['organization'] = 'Organisatsioon';
$labels['readstatus'] = 'Lugemise staatus';
$labels['listoptions'] = 'Nimekirja valikud…';
+
$labels['mailboxlist'] = 'Kaustad';
$labels['messagesfromto'] = 'Kirjed $from kuni $to, kokku $count';
$labels['threadsfromto'] = 'Lõimed $from kuni $to, kokku $count';
$labels['messagenrof'] = 'Kiri $nr, kokku $count';
$labels['fromtoshort'] = '$from – $to kokku $count';
+
$labels['copy'] = 'Kopeeri';
$labels['move'] = 'Liiguta';
$labels['moveto'] = 'liiguta kausta...';
@@ -56,9 +68,13 @@ $labels['download'] = 'laadi arvutisse';
$labels['open'] = 'Ava';
$labels['showattachment'] = 'Näita';
$labels['showanyway'] = 'Näita ikka';
+
$labels['filename'] = 'Faili nimi';
$labels['filesize'] = 'Faili suurus';
+
$labels['addtoaddressbook'] = 'Lisa aadressiraamatusse';
+
+// weekdays short
$labels['sun'] = 'P';
$labels['mon'] = 'E';
$labels['tue'] = 'T';
@@ -66,6 +82,8 @@ $labels['wed'] = 'K';
$labels['thu'] = 'N';
$labels['fri'] = 'R';
$labels['sat'] = 'L';
+
+// weekdays long
$labels['sunday'] = 'Pühapäev';
$labels['monday'] = 'Esmaspäev';
$labels['tuesday'] = 'Teisipäev';
@@ -73,6 +91,8 @@ $labels['wednesday'] = 'Kolmapäev';
$labels['thursday'] = 'Neljapäev';
$labels['friday'] = 'Reede';
$labels['saturday'] = 'Laupäev';
+
+// months short
$labels['jan'] = 'jaan';
$labels['feb'] = 'veebr';
$labels['mar'] = 'märts';
@@ -85,6 +105,8 @@ $labels['sep'] = 'sept';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'dets';
+
+// months long
$labels['longjan'] = 'Jaanuar';
$labels['longfeb'] = 'Veebruar';
$labels['longmar'] = 'Märts';
@@ -97,7 +119,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktoober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Detsember';
+
$labels['today'] = 'Täna';
+
+// toolbar buttons
$labels['refresh'] = 'Värskenda';
$labels['checkmail'] = 'Kontrolli uusi kirju';
$labels['compose'] = 'Koosta kiri';
@@ -130,6 +155,7 @@ $labels['moreactions'] = 'Muud toimingud...';
$labels['more'] = 'Rohkem';
$labels['back'] = 'Tagasi';
$labels['options'] = 'Valikud';
+
$labels['select'] = 'Vali';
$labels['all'] = 'kõik';
$labels['none'] = 'Puudub';
@@ -148,6 +174,7 @@ $labels['expand-all'] = 'Laienda kõik';
$labels['expand-unread'] = 'Laienda lugemata';
$labels['collapse-all'] = 'Pane kõik kokku';
$labels['threaded'] = 'Lõimedena';
+
$labels['autoexpand_threads'] = 'Laienda kirjade lõimed';
$labels['do_expand'] = 'kõik lõimed';
$labels['expand_only_unread'] = 'ainult lugemata kirjadega';
@@ -163,24 +190,27 @@ $labels['listcolumns'] = 'Näita veerge';
$labels['listsorting'] = 'Järjestus veerg';
$labels['listorder'] = 'Järjestus suund';
$labels['listmode'] = 'Nimekirja vaatamise režiim';
+
$labels['folderactions'] = 'Kausta tegevused...';
$labels['compact'] = 'Tihenda';
$labels['empty'] = 'Tühjenda';
-$labels['importmessages'] = 'Impordi kirju';
+
$labels['quota'] = 'Kettakasutus';
$labels['unknown'] = 'teadmata';
$labels['unlimited'] = 'piiramatu';
+
$labels['quicksearch'] = 'Kiirotsing';
$labels['resetsearch'] = 'Lähtesta otsing';
$labels['searchmod'] = 'Otsingu laiendid';
$labels['msgtext'] = 'Kogu kirjast';
$labels['body'] = 'Keha';
-$labels['type'] = 'Tüüp';
-$labels['namex'] = 'Nimi';
+
$labels['openinextwin'] = 'Ava uues aknas';
$labels['emlsave'] = 'Salvesta (.eml)';
$labels['changeformattext'] = 'Näita lihttekstina';
$labels['changeformathtml'] = 'Näita HTMLis';
+
+// message compose
$labels['editasnew'] = 'Kasuta uue kirja põhjana';
$labels['send'] = 'Saada';
$labels['sendmessage'] = 'Saada kiri kohe';
@@ -192,22 +222,26 @@ $labels['returnreceipt'] = 'Kättesaamiskinnitus';
$labels['dsn'] = 'Kohalejõudmise teavitus';
$labels['mailreplyintro'] = '$date kirjutas $sender:';
$labels['originalmessage'] = 'Esialgne kiri';
+
$labels['editidents'] = 'Muuda Identiteete';
$labels['spellcheck'] = 'Õigekiri';
$labels['checkspelling'] = 'Kontrolli õigekirja';
$labels['resumeediting'] = 'Jätka muutmist';
$labels['revertto'] = 'Pööra tagasi';
+
$labels['attach'] = 'Manusta';
$labels['attachments'] = 'Manused';
$labels['upload'] = 'Kinnita manus';
$labels['uploadprogress'] = '$percent ($current, kokku $total)';
$labels['close'] = 'Sulge';
$labels['messageoptions'] = 'Kirja valikud...';
+
$labels['low'] = 'Madal';
$labels['lowest'] = 'Madalaim';
$labels['normal'] = 'Tavaline';
$labels['high'] = 'Kõrge';
$labels['highest'] = 'Kõrgeim';
+
$labels['nosubject'] = '(teema puudub)';
$labels['showimages'] = 'Näita pilte';
$labels['alwaysshow'] = 'Näita alati $sender saadetud pilte';
@@ -215,19 +249,25 @@ $labels['isdraft'] = 'See on mustand.';
$labels['andnmore'] = '$nr veel…';
$labels['togglemoreheaders'] = 'Näita rohkem kirja päiseid';
$labels['togglefullheaders'] = 'Näita/peida algseid päiseid';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Lihttekst';
$labels['savesentmessagein'] = 'Salvesta saadetud kirjad kausta';
$labels['dontsave'] = 'ära salvesta';
$labels['maxuploadsize'] = 'Faili maksimaalne lubatud suurus on $size';
+
$labels['addcc'] = 'Lisa koopia';
$labels['addbcc'] = 'Lisa pimekoopia';
$labels['addreplyto'] = 'Lisa vastus aadressile';
$labels['addfollowupto'] = 'Lisa Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Selle kirja saatja soovib saada kinnitust kirja lugemise kohta. Kas soovid kinnituse saata?';
$labels['receiptread'] = 'Kättesaamiskinnitus (leotud)';
$labels['yourmessage'] = 'See on sinu saadetud kirja kättesaamiskinnitus';
$labels['receiptnote'] = 'Märkus: Kättesaamiskinnituse saamine tähendab ainult seda, et saaja on kirja avanud. Pole mingit garantiid, et ta kirja tegelikult luges ja selle sisust aru sai.';
+
+// address boook
$labels['name'] = 'Näidatav nimi';
$labels['firstname'] = 'Eesnimi';
$labels['surname'] = 'Perekonnanimi';
@@ -262,6 +302,7 @@ $labels['search'] = 'Otsi';
$labels['advsearch'] = 'Täpsem otsing';
$labels['advanced'] = 'Edasijõudnutele';
$labels['other'] = 'Muu';
+
$labels['typehome'] = 'Kodu';
$labels['typework'] = 'Töö';
$labels['typeother'] = 'Muu';
@@ -276,12 +317,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Veebileht';
$labels['typeblog'] = 'Ajaveeb';
$labels['typeprofile'] = 'Profiil';
+
$labels['addfield'] = 'Lisa väli...';
$labels['addcontact'] = 'Uue kontakti lisamine';
$labels['editcontact'] = 'Muuda kontakti';
$labels['contacts'] = 'Kontaktid';
$labels['contactproperties'] = 'Kontakti omadused';
$labels['personalinfo'] = 'Isiklik info';
+
$labels['edit'] = 'Muuda';
$labels['cancel'] = 'Katkesta';
$labels['save'] = 'Salvesta';
@@ -290,6 +333,7 @@ $labels['rename'] = 'Nimeta ümber';
$labels['addphoto'] = 'Lisa';
$labels['replacephoto'] = 'Asenda';
$labels['uploadphoto'] = 'Lisa foto';
+
$labels['newcontact'] = 'Uue sissekande loomine';
$labels['deletecontact'] = 'Kustuta märgistatud kontaktid';
$labels['composeto'] = 'Kirjuta kiri';
@@ -303,32 +347,41 @@ $labels['newcontactgroup'] = 'Loo uus kontaktigrupp';
$labels['grouprename'] = 'Nimeta grupp ümber';
$labels['groupdelete'] = 'Kustuta grupp';
$labels['groupremoveselected'] = 'Eemalda valitud kontaktid grupist';
+
$labels['previouspage'] = 'Näita eelmist lehte';
$labels['firstpage'] = 'Näita esimest komplekti';
$labels['nextpage'] = 'Näita järgmist lehte';
$labels['lastpage'] = 'Näita viimast komplekti';
+
$labels['group'] = 'Grupp';
$labels['groups'] = 'Grupid';
-$labels['listgroup'] = 'Näita grupi liikmeid';
$labels['personaladrbook'] = 'Isiklikud aadressid';
+
$labels['searchsave'] = 'Salvesta otsing';
$labels['searchdelete'] = 'Kustuta otsing';
+
$labels['import'] = 'Impordi';
$labels['importcontacts'] = 'Impordi kontakte';
$labels['importfromfile'] = 'Impordi failist:';
+$labels['importtarget'] = 'Lisa uued kontaktid aadressiraamatusse:';
$labels['importreplace'] = 'Asenda kogu aadressiraamat';
$labels['importdesc'] = 'Sa saad laadida kontakte olemasolevast aadressiraamatust.<br/>Praegu on võimalik importida <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> või CSV (komaga eraldatud) formaadis andmeid. ';
$labels['done'] = 'Valmis';
+
+// settings
$labels['settingsfor'] = 'Kasutajaeelistused kontole';
$labels['about'] = 'Programmist lähemalt';
$labels['preferences'] = 'Eelistused';
$labels['userpreferences'] = 'Kasutaja eelistused';
$labels['editpreferences'] = 'Muuda kasutaja eelistusi';
+
$labels['identities'] = 'Identiteedid';
$labels['manageidentities'] = 'Halda selle konto identiteete';
$labels['newidentity'] = 'Uus identiteet';
+
$labels['newitem'] = 'Uus sissekanne';
$labels['edititem'] = 'Muuda sissekannet';
+
$labels['preferhtml'] = 'Eelista HTMLi';
$labels['defaultcharset'] = 'Vaikimisi märgistik';
$labels['htmlmessage'] = 'HTML kirjad';
@@ -424,6 +477,7 @@ $labels['standardwindows'] = 'Käsitle hüpikaknaid tavaliste akendena';
$labels['forwardmode'] = 'Kirja edastamine';
$labels['inline'] = 'kirja sees';
$labels['asattachment'] = 'manusena';
+
$labels['folder'] = 'Kaust';
$labels['folders'] = 'Kaustad';
$labels['foldername'] = 'Kausta nimi';
@@ -444,20 +498,26 @@ $labels['foldertype'] = 'Kausta tüüp';
$labels['personalfolder'] = 'Isiklik kaust';
$labels['otherfolder'] = 'Teiste kasutajate kaust';
$labels['sharedfolder'] = 'Avalik kaust';
+
$labels['sortby'] = 'Järjesta';
$labels['sortasc'] = 'Järjesta kasvavalt';
$labels['sortdesc'] = 'Järjesta kahanevalt';
$labels['undo'] = 'Võta tagasi';
+
$labels['installedplugins'] = 'Paigaldatud pluginad';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versioon';
$labels['source'] = 'Allikas';
$labels['license'] = 'Litsents';
$labels['support'] = 'Küsi abi';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KiB';
$labels['MB'] = 'MiB';
$labels['GB'] = 'GiB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'inglise';
$labels['westerneuropean'] = 'Lääne-Euroopa';
@@ -476,4 +536,5 @@ $labels['vietnamese'] = 'vietnami';
$labels['japanese'] = 'jaapani';
$labels['korean'] = 'korea';
$labels['chinese'] = 'hiina';
+
?>
diff --git a/program/localization/et_EE/messages.inc b/program/localization/et_EE/messages.inc
index 0d2c79b5a..c73d92c48 100644
--- a/program/localization/et_EE/messages.inc
+++ b/program/localization/et_EE/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ilmnes tõrge!';
$messages['loginfailed'] = 'Sisselogimine ebaõnnestus';
$messages['cookiesdisabled'] = 'Sinu veebilehitseja ei võta präänikuid vastu';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Otsitud kontakti ei leitud';
$messages['contactsearchonly'] = 'Sisesta otsingusõna kontaktide leidmiseks';
$messages['sendingfailed'] = 'Kirja saatmine ebaõnnestus';
$messages['senttooquickly'] = 'Palun oota enne selle kirja saatmist $sec sekundit.';
+$messages['errorsavingsent'] = 'Saadetud kirja salvestamisel ilmnes tõrge';
+$messages['errorsaving'] = 'Salvestamise ajal ilmnes viga';
$messages['errormoving'] = 'Ei suutnud seda kirja liigutada';
$messages['errorcopying'] = 'Kirju ei õnnestunud kopeerida';
$messages['errordeleting'] = 'Ei suutnud seda kirja kustutada';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Eemaldan kirjast vormindust...';
$messages['messageopenerror'] = 'Kirjade serverist laadimine ebaõnnestus';
$messages['fileuploaderror'] = 'Faili üleslaadimine ebaõnnestus';
$messages['filesizeerror'] = 'Üleslaetava faili suurus ületab maksimaalse suuruse $size';
-$messages['copysuccess'] = '$nr kontakti edukalt kopeeritud.';
-$messages['movesuccess'] = '$nr kontakti edukalt liigutatud.';
-$messages['copyerror'] = 'Ühegi kontakti kopeerimine ei õnnestunud.';
-$messages['moveerror'] = 'Ühegi kontakti liigutamine ei õnnestunud.';
+$messages['copysuccess'] = '$nr aadressi edukalt kopeeritud';
+$messages['copyerror'] = 'Ühegi aadressi kopeerimine ei õnnestunud';
$messages['sourceisreadonly'] = 'Aadressi asukohas puuduvad kirjutusõigused';
$messages['errorsavingcontact'] = 'Kontakti aadressi salvestamine ebaõnnestus';
$messages['movingmessage'] = 'Liigutan kirja...';
$messages['copyingmessage'] = 'Kopeerin kirja...';
$messages['copyingcontact'] = 'Kontakti(de) kopeerimine…';
-$messages['movingcontact'] = 'Kontakti(de) liigutamine…';
$messages['deletingmessage'] = 'Kustutan kirja...';
$messages['markingmessage'] = 'Märgin kirja...';
$messages['addingmember'] = 'Kontakti(de) gruppi lisamine…';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Impordin, palun oota...';
$messages['importformaterror'] = 'Import nurjus! Laaditud fail ei sisalda sobilikke andmeid.';
$messages['importconfirm'] = '<b>Edukalt imporditud $inserted kontakti, $skipped olemasolevat sissekannet vahele jäetud</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b> $skipped olemasolevat kirjet jäeti vahele</b>';
-$messages['importmessagesuccess'] = '$nr kirja edukalt imporditud';
-$messages['importmessageerror'] = 'Import nurjus! Laaditud fail ei ole kirja ega postkasti fail';
$messages['opnotpermitted'] = 'Tegevus pole lubatud!';
$messages['nofromaddress'] = 'Valitud identiteedil puudub e-posti aadress';
$messages['editorwarning'] = 'Klaarteksti redaktorile lülitamine kaotab kogu teksti vorminduse. Soovid jätkata?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP tõrge: $msg';
$messages['emailformaterror'] = 'Lubamatu e-posti aadress: $email';
$messages['toomanyrecipients'] = 'Liiga palju adressaate. Vähenda kirja saajate hulka $max-ni.';
$messages['maxgroupmembersreached'] = 'Grupi liikmete arv ületab suurima lubatud $max';
+$messages['internalerror'] = 'Ilmnes sisemine tõrge. Palun proovi uuesti.';
$messages['contactdelerror'] = 'Kontaktide kustutamine nurjus';
$messages['contactdeleted'] = 'Kontaktide kustutamine õnnestus';
$messages['contactrestoreerror'] = 'Kustutatud kontakti(de) taastamine nurjus.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Kasuta loomine/liigutamine valitud kausta nurj
$messages['messagetoobig'] = 'Kiri on töötlemiseks liiga suur.';
$messages['attachmentvalidationerror'] = 'HOIATUS! See manus on kahtlane, sest selle tüüp ei ole vastavuses kirjas määratuga. Kui sa ei usalda kirja saatjat, siis ei tohiks seda brauseris avada, sest see võib sisaldada pahavara.<br/><br/><em>Oodati: $expected; leiti: $detected</em>';
$messages['noscriptwarning'] = 'Hoiatus: see veebimaili teenus vajab Javascripti! Teenuse kasutamiseks luba Javascript oma brauseri seadetes.';
+
?>
diff --git a/program/localization/eu_ES/labels.inc b/program/localization/eu_ES/labels.inc
index bbfd0c6ac..8052d69e8 100644
--- a/program/localization/eu_ES/labels.inc
+++ b/program/localization/eu_ES/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Ongi etorri $product';
$labels['username'] = 'Erabiltzailea';
$labels['password'] = 'Pasahitza';
$labels['server'] = 'Zerbitzaria';
$labels['login'] = 'Saio hasiera';
+
+// taskbar
$labels['logout'] = 'Irten';
$labels['mail'] = 'ePosta';
$labels['settings'] = 'Ezarpen Pertsonalak';
$labels['addressbook'] = 'Helbide Liburua';
+
+// mailbox names
$labels['inbox'] = 'Sarrera';
$labels['drafts'] = 'Zirriborroak';
$labels['sent'] = 'Bidalitakoak';
$labels['trash'] = 'Zakarrontzia';
$labels['junk'] = 'Zabor-posta';
-$labels['show_real_foldernames'] = 'Erakutsi karpeta berezien benetako izenak';
+
+// message listing
$labels['subject'] = 'Gaia';
$labels['from'] = 'Nork';
$labels['sender'] = 'Igorlea';
@@ -44,21 +53,27 @@ $labels['priority'] = 'Lehentasuna';
$labels['organization'] = 'Erakundea';
$labels['readstatus'] = 'Irakurketaren egoera';
$labels['listoptions'] = 'Zerrendaren aukerak...';
+
$labels['mailboxlist'] = 'Karpetak';
$labels['messagesfromto'] = '$from -tik $to -ra $count mezuetatik';
$labels['threadsfromto'] = '$from -etik $to -rako gaiak (guztira $count)';
$labels['messagenrof'] = '$nr mezua $count -tik';
$labels['fromtoshort'] = '$from - $to , guztira $count';
+
$labels['copy'] = 'Kopia';
$labels['move'] = 'Mugitu';
$labels['moveto'] = 'mugitu hona...';
$labels['download'] = 'deskargatu';
-$labels['open'] = 'Ireki';
-$labels['showattachment'] = 'Erakutsi';
-$labels['showanyway'] = 'Erakutsi edonola';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Fitxategi Izena';
$labels['filesize'] = 'Fitxategi Tamaina';
+
$labels['addtoaddressbook'] = 'Helbide liburura gehitu';
+
+// weekdays short
$labels['sun'] = 'Iga';
$labels['mon'] = 'Al';
$labels['tue'] = 'As';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Azt';
$labels['thu'] = 'Og';
$labels['fri'] = 'Or';
$labels['sat'] = 'Lar';
+
+// weekdays long
$labels['sunday'] = 'Igandea';
$labels['monday'] = 'Astelehena';
$labels['tuesday'] = 'Asteartea';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Asteazkena';
$labels['thursday'] = 'Osteguna';
$labels['friday'] = 'Ostirala';
$labels['saturday'] = 'Larunbata';
+
+// months short
$labels['jan'] = 'Urt';
$labels['feb'] = 'Ots';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Ira';
$labels['oct'] = 'Urr';
$labels['nov'] = 'Aza';
$labels['dec'] = 'Abe';
+
+// months long
$labels['longjan'] = 'Urtarrila';
$labels['longfeb'] = 'Otsaila';
$labels['longmar'] = 'Martxoa';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Iraila';
$labels['longoct'] = 'Urria';
$labels['longnov'] = 'Azaroa';
$labels['longdec'] = 'Abendua';
+
$labels['today'] = 'Gaur';
+
+// toolbar buttons
$labels['refresh'] = 'Eguneratu';
$labels['checkmail'] = 'Mezu berrien bila arakatu';
$labels['compose'] = 'Mezu bat sortu';
@@ -108,7 +132,7 @@ $labels['replytoallmessage'] = 'Bidaltzaile eta hartzaile guztiei erantzun';
$labels['replyall'] = 'Guztiei erantzun';
$labels['replylist'] = 'Erantzun zerrenda';
$labels['forward'] = 'Berbidali';
-$labels['forwardinline'] = 'Aurrera barnean';
+$labels['forwardinline'] = 'Forward inline';
$labels['forwardattachment'] = 'Erantsi gisa berbidali';
$labels['forwardmessage'] = 'Mezua Birbidali';
$labels['deletemessage'] = 'Mezua ezabatu';
@@ -130,301 +154,328 @@ $labels['moreactions'] = 'Ekintza gehiago...';
$labels['more'] = 'Gehiago';
$labels['back'] = 'Atzera';
$labels['options'] = 'Aukerak';
+
$labels['select'] = 'Hautatu';
$labels['all'] = 'Denak';
$labels['none'] = 'Bat ere ez';
$labels['currpage'] = 'Uneko orrialdea';
$labels['unread'] = 'Irakurri gabeak';
$labels['flagged'] = 'Banderaduna';
-$labels['unanswered'] = 'Erantzun gabea';
-$labels['withattachment'] = 'Eranskinarekin';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Ezabatuak';
$labels['undeleted'] = 'Ezabatu gabeak';
-$labels['invert'] = 'Alderantzizkatu';
-$labels['filter'] = 'Iragazkia';
-$labels['list'] = 'Zerrenda';
-$labels['threads'] = 'Hariak';
-$labels['expand-all'] = 'Irekin denak';
-$labels['expand-unread'] = 'Ireki irakurri gabeak';
-$labels['collapse-all'] = 'Tolestu guztiak';
-$labels['threaded'] = 'Harian';
-$labels['autoexpand_threads'] = 'Irekin mezu-hariak';
-$labels['do_expand'] = 'hari guztiak';
-$labels['expand_only_unread'] = 'soilik irakurri gabeko mezuak dutenak';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
$labels['fromto'] = 'Nork/Nori';
-$labels['flag'] = 'Bandera';
-$labels['attachment'] = 'Eranskina';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'Bat ere ez';
-$labels['sentdate'] = 'Bidalketa-data';
-$labels['arrival'] = 'Jasotze-data';
-$labels['asc'] = 'gora';
-$labels['desc'] = 'behera';
-$labels['listcolumns'] = 'Zerrenda-zutabeak';
-$labels['listsorting'] = 'Zutabea ordenatzen';
-$labels['listorder'] = 'Ordenatze era';
-$labels['listmode'] = 'Zerrenda ikuspegia';
-$labels['folderactions'] = 'Karpeta-ekintzak...';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Trinkotu';
$labels['empty'] = 'Hustu';
-$labels['importmessages'] = 'Inportatu mezuak';
+
$labels['quota'] = 'Disko erabilera';
$labels['unknown'] = 'ezezaguna';
$labels['unlimited'] = 'mugagabea';
+
$labels['quicksearch'] = 'Bilaketa azkarra';
$labels['resetsearch'] = 'Bilaketa berrabiarazi';
-$labels['searchmod'] = 'Bilatu modifikadoreak';
-$labels['msgtext'] = 'Mezu osoa';
-$labels['body'] = 'Gorputza';
-$labels['type'] = 'Mota';
-$labels['namex'] = 'Izena';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Lehio berrian ireki';
-$labels['emlsave'] = 'Deskargatu (.eml)';
-$labels['changeformattext'] = 'Bistaratu testua formaturik gabe';
-$labels['changeformathtml'] = 'Bistaratu HTML formatuan';
-$labels['editasnew'] = 'Editatu berri bezala';
-$labels['send'] = 'Bidali';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Mezua orain bidali';
$labels['savemessage'] = 'Zirriborro hau gorde';
$labels['addattachment'] = 'Fitxategia erantsi';
$labels['charset'] = 'Karaktere jokoa';
$labels['editortype'] = 'Editore mota';
-$labels['returnreceipt'] = 'Bidali jasotze-agiria';
-$labels['dsn'] = 'Entrega-egoeraren jakinarazpena';
-$labels['mailreplyintro'] = '$date egunean, $sender-(e)k idatzi du:';
+$labels['returnreceipt'] = 'Bidaltzaileari itzuli';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
$labels['originalmessage'] = 'Jatorrizko mezua';
-$labels['editidents'] = 'Editatu identitateak';
-$labels['spellcheck'] = 'Ortografia-egiaztatu';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Egiaztaketa ortografikoa';
$labels['resumeediting'] = 'Editatzen jarraitu';
$labels['revertto'] = 'Itzuli hona';
-$labels['attach'] = 'Erantsi';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Eranskinak';
$labels['upload'] = 'Igo';
-$labels['uploadprogress'] = '$percent ($current/$total)';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Itxi';
-$labels['messageoptions'] = 'Mezu-aukerak';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Baxua';
$labels['lowest'] = 'Baxuena';
$labels['normal'] = 'Normala';
$labels['high'] = 'Altua';
$labels['highest'] = 'Altuena';
+
$labels['nosubject'] = '(gairik gabea)';
$labels['showimages'] = 'Irudiak bistarazi';
$labels['alwaysshow'] = 'Beti ikusi $sender -en irudiak';
-$labels['isdraft'] = 'Hau zirriborro bat da';
-$labels['andnmore'] = '$nr gehiago...';
-$labels['togglemoreheaders'] = 'Erakutsi mezu mezu-goiburu gehiago';
-$labels['togglefullheaders'] = 'Aldatu mezu gordinen goiburuak';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Testu laua';
$labels['savesentmessagein'] = 'Gorde mezua hemen';
$labels['dontsave'] = 'ez gorde';
-$labels['maxuploadsize'] = 'Baimendutako gehienezko fitxategi tamaina: $size';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Gehitu Cc (kopia)';
$labels['addbcc'] = 'Gehitu Bcc (kopia ezkutua)';
$labels['addreplyto'] = 'Gehitu erantzun-honi';
-$labels['addfollowupto'] = 'Gehitu Jarraitu honi';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Mezu honen bidaltzaileak mezua irakurtzen duzunean jakinaraztea eskatu du. Bidaltzailea ohartu nahi duzu?';
-$labels['receiptread'] = 'Bidali jasotze-agiria (irakurria)';
-$labels['yourmessage'] = 'Hau zure mezuaren jasotze-agiria da';
-$labels['receiptnote'] = 'Oharra: jasotze-agiri honek hartzailearen ordenagailuan mezua ikusi dala adierazten du besterik gabe. Honek ez du esan nahi hartzaileak mezua irakurri edo/eta ulertu duenik:';
+$labels['receiptread'] = 'Itzulketa agiria (irakurria)';
+$labels['yourmessage'] = 'Hau zure mezuaren Itzulketa Agiria da';
+$labels['receiptnote'] = 'Oharra: Agiri honek hartzailearen ordenagailuan mezua ikusi dala adierazten du besterik gabe. Honek ez du esan nahi hartzaileak mezua irakurri edo/eta ulertu duenik:';
+
+// address boook
$labels['name'] = 'Izena bistarazi';
$labels['firstname'] = 'Izena';
$labels['surname'] = 'Abizena';
-$labels['middlename'] = 'Izenaren bigarren partea';
-$labels['nameprefix'] = 'Aurrizkia';
-$labels['namesuffix'] = 'Atzizkia';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'Ezizena';
-$labels['jobtitle'] = 'Lanpostua ';
-$labels['department'] = 'Departamentoa';
-$labels['gender'] = 'Generoa';
-$labels['maidenname'] = 'Ezkondu aurreko izena';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'ePosta';
-$labels['phone'] = 'Telefonoa';
+$labels['phone'] = 'Phone';
$labels['address'] = 'Helbidea';
$labels['street'] = 'Kalea';
-$labels['locality'] = 'Herria';
+$labels['locality'] = 'City';
$labels['zipcode'] = 'Posta kodea';
-$labels['region'] = 'Estatua/Probintzia';
-$labels['country'] = 'Herrialdea';
-$labels['birthday'] = 'Urtebetetze-eguna';
-$labels['anniversary'] = 'Urteurren-eguna';
-$labels['website'] = 'Webgunea';
-$labels['instantmessenger'] = 'Txata';
-$labels['notes'] = 'Oharrak';
-$labels['male'] = 'gizon';
-$labels['female'] = 'emakume';
-$labels['manager'] = 'Kudeatzailea';
-$labels['assistant'] = 'Laguntzailea';
-$labels['spouse'] = 'Ezkontidea';
-$labels['allfields'] = 'Eremu guztiak';
-$labels['search'] = 'Bilatu';
-$labels['advsearch'] = 'Bilaketa aurreratua';
-$labels['advanced'] = 'Aurreratua';
-$labels['other'] = 'Beste';
-$labels['typehome'] = 'Etxekoa';
-$labels['typework'] = 'Lanekoa';
-$labels['typeother'] = 'Beste';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
$labels['typemobile'] = 'Mugikorra';
-$labels['typemain'] = 'Nagusia';
-$labels['typehomefax'] = 'Etxeko faxa';
-$labels['typeworkfax'] = 'Laneko faxa';
-$labels['typecar'] = 'Autoa';
-$labels['typepager'] = 'Bilagailua';
-$labels['typevideo'] = 'Bideo';
-$labels['typeassistant'] = 'Laguntzailea';
-$labels['typehomepage'] = 'Etxeko orria';
-$labels['typeblog'] = 'Bloga';
-$labels['typeprofile'] = 'Profila';
-$labels['addfield'] = 'Gehitu eremua...';
-$labels['addcontact'] = 'Gehitu kontaktu berria';
-$labels['editcontact'] = 'Editatu kontaktua';
-$labels['contacts'] = 'Kontaktuak';
-$labels['contactproperties'] = 'Kontaktuen ezaugarriak';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
+$labels['addcontact'] = 'Txartel berria gehitu';
+$labels['editcontact'] = 'Txartela editatu';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'Informazio pertsonala';
+
$labels['edit'] = 'Editatu';
$labels['cancel'] = 'Utzi';
$labels['save'] = 'Gorde';
$labels['delete'] = 'Ezabatu';
-$labels['rename'] = 'Berrizendatu';
-$labels['addphoto'] = 'Gehitu';
-$labels['replacephoto'] = 'Ordeztu';
-$labels['uploadphoto'] = 'Kargatu argazkia';
-$labels['newcontact'] = 'Sortu kontaktu-txartel berria';
-$labels['deletecontact'] = 'Ezabatu hautatutako kontaktuak';
-$labels['composeto'] = 'Idatzi mezua honi:';
-$labels['contactsfromto'] = '$from -tik $to -ra $count kontaktuak';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
+$labels['newcontact'] = 'Helbide liburu txartel berria sortu';
+$labels['deletecontact'] = 'Aukeraturiko txartelak ezabatu';
+$labels['composeto'] = 'Bidali mezua honi:';
+$labels['contactsfromto'] = '$from -tik $to -ra $count txarteletatik';
$labels['print'] = 'Inprimatu';
$labels['export'] = 'Esportatu';
-$labels['exportall'] = 'Esportatu dena';
-$labels['exportsel'] = 'Esportatu hautaketa';
-$labels['exportvcards'] = 'Esportatu kontaktuak vCard formatuan';
-$labels['newcontactgroup'] = 'Sortu kontaktu-talde berria';
-$labels['grouprename'] = 'Berrizendatu taldea';
-$labels['groupdelete'] = 'Ezabatu taldea';
-$labels['groupremoveselected'] = 'Ezabatu taldetik hautatutako kontaktuak';
-$labels['previouspage'] = 'Aurreko orria ikusi';
-$labels['firstpage'] = 'Lehenengo orria ikusi';
-$labels['nextpage'] = 'Hurrengo orria ikusi';
-$labels['lastpage'] = 'Azken orria ikusi';
-$labels['group'] = 'Taldea';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
+$labels['previouspage'] = 'Aurreko sorta ikusi';
+$labels['firstpage'] = 'Lehenengo sorta ikusi';
+$labels['nextpage'] = 'Hurrengo sorta ikusi';
+$labels['lastpage'] = 'Azken sorta ikusi';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Taldeak';
-$labels['listgroup'] = 'Zerrendatu taldeko partaideak';
$labels['personaladrbook'] = 'Helbide pertsonalak';
-$labels['searchsave'] = 'Gorde bilaketa';
-$labels['searchdelete'] = 'Ezabatu bilaketa';
-$labels['import'] = 'Inportatu';
-$labels['importcontacts'] = 'Inportatu kontaktoak';
-$labels['importfromfile'] = 'Inportatu fitxategi honetatik:';
-$labels['importreplace'] = 'Ordezkatu helbide-liburu osoa';
-$labels['importdesc'] = 'Gehitzen ahal duzu kontaktuak dagoen helbide-liburu batetik.<br/>Inportatzeko onartzen diren formatuak: <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> eta CSV (komaz banandutakoak).';
-$labels['done'] = 'Egina';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'Honen ezarpenak:';
-$labels['about'] = 'Honi buruz';
+$labels['about'] = 'About';
$labels['preferences'] = 'Hobespenak';
$labels['userpreferences'] = 'Erabiltzaile hobespenak';
$labels['editpreferences'] = 'Erabiltzaile hobespenak editatu';
+
$labels['identities'] = 'Identitateak';
$labels['manageidentities'] = 'Kontu honetako identitateak kudeatu';
$labels['newidentity'] = 'Identitate berria';
+
$labels['newitem'] = 'Elementu berria';
$labels['edititem'] = 'Elementua Editatu';
+
$labels['preferhtml'] = 'HTML nahiago';
-$labels['defaultcharset'] = 'Lehenetsitako karaktere-jokoa';
-$labels['htmlmessage'] = 'HTML mezua';
-$labels['messagepart'] = 'Zatia';
-$labels['digitalsig'] = 'Sinadura digitala';
-$labels['dateformat'] = 'Data-formatua';
-$labels['timeformat'] = 'Ordu-formatua';
+$labels['defaultcharset'] = 'Default Character Set';
+$labels['htmlmessage'] = 'HTML Mezua';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Data politak';
$labels['setdefault'] = 'Lehenespenak ezarri';
-$labels['autodetect'] = 'Automatikoa';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Hizkuntza';
$labels['timezone'] = 'Ordu zonaldea';
$labels['pagesize'] = 'Lerro orrialdeko';
$labels['signature'] = 'Sinadura';
$labels['dstactive'] = 'Eguneko gordeketak';
-$labels['showinextwin'] = 'Ireki mezua leiho berrian';
-$labels['composeextwin'] = 'Idatzi leiho berrian';
-$labels['htmleditor'] = 'Idatzi HTML mezuak';
-$labels['htmlonreply'] = 'HTML mezua erantzuteko';
-$labels['htmlonreplyandforward'] = 'HTML mezua erantzuteko edo birbidaltzeko';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'HTML mezuak sortu';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML sinadura';
-$labels['showemail'] = 'Erakutsi helbide elektronikoak bere pantaila izenarekin';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Aurrebista panela ikusi';
$labels['skin'] = 'Azal-interfazea';
$labels['logoutclear'] = 'Garbitu Zakarronzia irtetean';
$labels['logoutcompact'] = 'Trinkotu Sarrera irtetean';
$labels['uisettings'] = 'Erabiltzaile-interfazea';
$labels['serversettings'] = 'Zerbitzariaren ezarpenak';
-$labels['mailboxview'] = 'Posta-kutxatila ikuspegia';
+$labels['mailboxview'] = 'Postakutxatilaren ikuspegia';
$labels['mdnrequests'] = 'Bidaltzailearen jakinarazpena';
$labels['askuser'] = 'galdetu erabiltzaileari';
-$labels['autosend'] = 'bidali jasotze-agiria';
-$labels['autosendknown'] = 'bidali jasotze-agiria nire kontaktuei, bestela galdetu niri';
-$labels['autosendknownignore'] = 'bidali jasotze-agiria nire kontaktuei, bestela ez ikusi egin';
-$labels['ignore'] = 'ez ikusi';
+$labels['autosend'] = 'bidali automatikoki';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ezikusi';
$labels['readwhendeleted'] = 'Markatu mezua irakurrita bezala ezabatzerakoan';
$labels['flagfordeletion'] = 'Markatu mezua ezabatzeko ezabatu beharrean';
-$labels['skipdeleted'] = 'Ez erakutsi ezabatutako mezuak';
-$labels['deletealways'] = 'Zakarrontzira bidaltzeak huts egiten badu, ezabatu';
-$labels['deletejunk'] = 'Ezabatu zuzenean
-zabor-mezuak';
-$labels['showremoteimages'] = 'Erakutsi konektatutako urrutiko irudiak';
-$labels['fromknownsenders'] = 'bidaltzaile ezagunengandik';
-$labels['always'] = 'beti';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
$labels['showinlineimages'] = 'Erakutsi erantzitako irudiak mezuaren azpian';
$labels['autosavedraft'] = 'Zirriborroa automatikoki gorde';
-$labels['everynminutes'] = '$n minuturo';
-$labels['refreshinterval'] = 'Freskatu (bilatu mezu berriak eta abar)';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'inoiz ez';
-$labels['immediately'] = 'berehala';
-$labels['messagesdisplaying'] = 'Mezuak bistaratzen';
-$labels['messagescomposition'] = 'Mezuak idazten';
-$labels['mimeparamfolding'] = 'Eranskinen izenak';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Mezuak ikusi';
+$labels['messagescomposition'] = 'Mezuak sortu';
+$labels['mimeparamfolding'] = 'Attachment names';
$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
-$labels['2047folding'] = 'Full RFC 2047 (beste batzuk)';
-$labels['force7bit'] = 'Erabili MIME kodeketa 8 bitekok karakterentzat';
-$labels['advancedoptions'] = 'Aukera aurreratuak';
-$labels['focusonnewmessage'] = 'Fokatu leihoa mezu berrian';
-$labels['checkallfolders'] = 'Egiaztatu karpeta guztiak mezu berrien bila';
-$labels['displaynext'] = 'Mezu bat ezabatu/mugitzean erakutsi hurrengo mezua';
-$labels['defaultfont'] = 'Lehenetsitako letra-mota HTML mezuetarako';
-$labels['mainoptions'] = 'Aukera nagusiak';
-$labels['browseroptions'] = 'Nabigatze-aukerak';
-$labels['section'] = 'Atala';
-$labels['maintenance'] = 'Mantenua';
-$labels['newmessage'] = 'Mezu berria';
-$labels['signatureoptions'] = 'Sinadura-aukerak';
-$labels['whenreplying'] = 'Erantzutean';
-$labels['replyempty'] = 'ez aipatu jatorrizko mezua';
-$labels['replytopposting'] = 'hasi mezu berria aipamenaren gainean';
-$labels['replybottomposting'] = 'hasi mezu berria aipamenaren azpian';
-$labels['replyremovesignature'] = 'Erantzutean ezabatu mezuaren jatorrizko sinadura';
-$labels['autoaddsignature'] = 'Gehitu sinadura automatikoki';
-$labels['newmessageonly'] = 'bakarrik mezu berria';
-$labels['replyandforwardonly'] = 'bakarri erantzun eta birbidalketak';
-$labels['insertsignature'] = 'Txertatu sinadura';
-$labels['previewpanemarkread'] = 'Markatu ikusitako mezuak irakurrita bezala';
-$labels['afternseconds'] = '$n segundo eta gero';
-$labels['reqmdn'] = 'Eskatu beti jasotze-agiria';
-$labels['reqdsn'] = 'Eskatu beti entrega-egoeraren jakinarazpena';
-$labels['replysamefolder'] = 'Kokatu erantzunak erantzuten ari den mezuarenkarpeta berean';
-$labels['defaultabook'] = 'Lehenetsitako helbide-liburua';
-$labels['autocompletesingle'] = 'Saltatu helbide elektroniko alternatiboak osatze automatikoan';
-$labels['listnamedisplay'] = 'Zerrendatu kontaktuak honela';
-$labels['spellcheckbeforesend'] = 'Egiaztatu ortografia mezua bidali aurretik';
-$labels['spellcheckoptions'] = 'Ortografia-egiaztatzearen aukerak';
-$labels['spellcheckignoresyms'] = 'Ez ikusi sinboloak dituzten hitzak';
-$labels['spellcheckignorenums'] = 'Ez ikusi zenbakiak dituzten hitzak';
-$labels['spellcheckignorecaps'] = 'Ez ikusi letra kapitalak dituzten hitzak';
-$labels['addtodict'] = 'Gehitu hiztegira';
-$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: estekak';
-$labels['standardwindows'] = 'Tratatu laster-leihoak leiho estandar bezala';
-$labels['forwardmode'] = 'Mezuak birbidaltzen';
-$labels['inline'] = 'Konektatua';
-$labels['asattachment'] = 'eranskin moduan';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Karpeta';
$labels['folders'] = 'Karpetak';
$labels['foldername'] = 'Karpeta izena';
@@ -434,47 +485,54 @@ $labels['create'] = 'Sortu';
$labels['createfolder'] = 'Karpeta berria sortu';
$labels['managefolders'] = 'Karpeta kudeaketa';
$labels['specialfolders'] = 'Karpeta bereziak';
-$labels['properties'] = 'Ezaugarriak';
-$labels['folderproperties'] = 'Karpeta-ezaugarriak';
-$labels['parentfolder'] = 'Goragoko karpeta';
-$labels['location'] = 'Kokalekua';
-$labels['info'] = 'Informazioa';
-$labels['getfoldersize'] = 'Klikatu ikusteko karpetaren tamaina';
-$labels['changesubscription'] = 'Klikatu harpidetza aldatzeko';
-$labels['foldertype'] = 'Karpeta mota';
-$labels['personalfolder'] = 'Karpeta pribatua';
-$labels['otherfolder'] = 'Beste erabiltzaileen karpetak';
-$labels['sharedfolder'] = 'Karpeta publikoa';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Honela ordenatu';
$labels['sortasc'] = 'Goraka ordenatu';
$labels['sortdesc'] = 'Beheraka ordenatu';
-$labels['undo'] = 'Desegin';
-$labels['installedplugins'] = 'Instalatutako plugin-ak';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Plugin';
-$labels['version'] = 'Bertsioa';
-$labels['source'] = 'Iturria';
-$labels['license'] = 'Lizentzia';
-$labels['support'] = 'Eskuratu laguntza';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
-$labels['english'] = 'Ingelesa';
-$labels['westerneuropean'] = 'Mendebaldeko Europearra';
-$labels['easterneuropean'] = 'Ekialdeko europearra';
-$labels['southeasterneuropean'] = 'Hego-ekialdeko europearra';
-$labels['baltic'] = 'Baltikoa';
-$labels['cyrillic'] = 'Zirilikoa';
-$labels['arabic'] = 'Arabiarra';
-$labels['greek'] = 'Grekoa';
-$labels['hebrew'] = 'Hebrearra';
-$labels['turkish'] = 'Turkiarra';
-$labels['nordic'] = 'Nordikoa';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
$labels['thai'] = 'Thai';
-$labels['celtic'] = 'Zeltiar';
-$labels['vietnamese'] = 'Vietnamdarra';
-$labels['japanese'] = 'Japoniarra';
-$labels['korean'] = 'Korearra';
-$labels['chinese'] = 'Txinatarra';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/eu_ES/messages.inc b/program/localization/eu_ES/messages.inc
index 7d2025804..a3985b233 100644
--- a/program/localization/eu_ES/messages.inc
+++ b/program/localization/eu_ES/messages.inc
@@ -15,28 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'Errore bat gertatu da!';
-$messages['loginfailed'] = 'Saio hasierak huts egin du.';
-$messages['cookiesdisabled'] = 'Zure nabigatzaileak ez ditu cookie-rik onartzen';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'Saio sarrerak huts egin du';
+$messages['cookiesdisabled'] = 'Zure nabigatzaileak ez ditu cookie-ak onartzen';
$messages['sessionerror'] = 'Zure saioa baliogabea da edo iraungita dago';
-$messages['storageerror'] = 'Huts egin du biltegiratze-zerbitzarira konektatzean';
-$messages['servererror'] = 'Zerbitzari-errorea!';
-$messages['servererrormsg'] = 'Zerbitzari-errorea: $msg';
-$messages['dberror'] = 'Datu-basearen errorea!';
-$messages['requesttimedout'] = 'Eskaera denboraz kanpo.';
-$messages['errorreadonly'] = 'Ezin da ekintza burutu. Karpeta soilik irakurtzekoa da.';
-$messages['errornoperm'] = 'Ezin da ekintza burutu. Baimena ukatua.';
-$messages['erroroverquota'] = 'Ezin da ekintza burutu. Diskoan ez dago tokirik.';
-$messages['erroroverquotadelete'] = 'Diskoan ez dago tokirik. Erabili SHIFT+DEL mezua ezabatzeko.';
-$messages['invalidrequest'] = 'Eskaera ez da baliozkoa! Datuak ez dira gorde.';
-$messages['invalidhost'] = 'Zerbitzari-izena ez da baliozkoa.';
+$messages['storageerror'] = 'Huts IMAP zerbitzarira konektatzean';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Ez da mezurik aurkitu posta kutxa honetan';
$messages['loggedout'] = 'Saioa behar bezala amaitu duzu. Agur!';
$messages['mailboxempty'] = 'Posta kutxa hutsik dago';
-$messages['refreshing'] = 'Freskatzen...';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Kargatzen...';
-$messages['uploading'] = 'Fitxategia kargatzen...';
-$messages['uploadingmany'] = 'Fitxategiak kargatzen...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Datuak kargatzen...';
$messages['checkingmail'] = 'Mezu berrien bila arakatzen...';
$messages['sendingmessage'] = 'Mezua bidaltzen...';
@@ -46,125 +48,124 @@ $messages['messagesaved'] = 'Mezua zirriborroetan gordea';
$messages['successfullysaved'] = 'Behar bezala gorde da';
$messages['addedsuccessfully'] = 'Txartela behar bezala gehitu da helbide liburura';
$messages['contactexists'] = 'ePosta honetako txartel bat badago dagoeneko';
-$messages['contactnameexists'] = 'Lehendik badago izen hori duen kontaktua.';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Zure pribazitatea mantentzeko urruneko irudiak blokeatu egin dira.';
$messages['encryptedmessage'] = 'Hau enkriptaturiko mezu bat da eta ezin da bistarazi. Barkatu!';
$messages['nocontactsfound'] = 'Ez da txartelik aurkitu';
$messages['contactnotfound'] = 'Eskatutako txartela ez da aurkitu';
-$messages['contactsearchonly'] = 'Sartu kontaktua aurkitzeko bilaketa daturen bat.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Huts mezua bidaltzerakoan';
-$messages['senttooquickly'] = 'Itxaron $sec segundo mezua bidali aurretik, mesedez.';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'Errorea gertatu da bidalitako mezua gordetzean';
+$messages['errorsaving'] = 'Errore bat gertatu da gordetzean';
$messages['errormoving'] = 'Ezin da mezua mugitu';
-$messages['errorcopying'] = 'Ezin d(ir)a kopiatu mezua(k).';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Ezin da mezua ezabatu';
-$messages['errormarking'] = 'Ezin d(ir)a markatu mezua(k).';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Benetan hautaturiko kontaktuak ezabatu nahi dituzula?';
-$messages['deletegroupconfirm'] = 'Seguru zaude hautatutako taldea ezabatu nahi duzula?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Benetan hautaturiko mezuak ezabatu nahi dituzula?';
$messages['deletefolderconfirm'] = 'Benetan Karpeta hau ezabatu nahi duzu?';
$messages['purgefolderconfirm'] = 'Benetan karpeta honetako mezu guziak ezabatu nahi dituzu?';
-$messages['contactdeleting'] = 'Kontaktua(k) ezabatzen...';
-$messages['groupdeleting'] = 'Taldea ezabatzen...';
-$messages['folderdeleting'] = 'Karpeta ezabatzen...';
-$messages['foldermoving'] = 'Karpeta mugitzen...';
-$messages['foldersubscribing'] = 'Karpeta harpidetzen...';
-$messages['folderunsubscribing'] = 'Karpetaren harpidetza kentzen...';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Inprimakia ez guztiz bete';
$messages['noemailwarning'] = 'Mesedez idatzi baliozko eposta helbide bat';
$messages['nonamewarning'] = 'Mesedez izen bat idatzi';
$messages['nopagesizewarning'] = 'Mesedez paper tamaina idatzi';
-$messages['nosenderwarning'] = 'Sartu bidaltzailearen helbide elektronikoa, mesedez.';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Mesedez behintzat hartzaile bat idatzi';
$messages['nosubjectwarning'] = '"Gaia" eremua hutsik dago. Bat idatzi nahi al duzu?';
$messages['nobodywarning'] = 'Testu gabeko mezu hau bidali?';
$messages['notsentwarning'] = 'Mezua ez da bidali. Mezua ezeztatu nahi al duzu?';
$messages['noldapserver'] = 'Mesedez hautatu bilaketa egiteko LDAP zerbitzari bat';
$messages['nosearchname'] = 'Mesedez idatzi kontaktu izen bat edo eposta helbide bat';
-$messages['notuploadedwarning'] = 'Oraindik ez dira kargatu eranskin guztiak. Itxaron edo ezeztatu karga.';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr mezu aurkiturik';
-$messages['contactsearchsuccessful'] = '$nr kontaktu aurkitu dira.';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Bilaketak ez du emaitzarik itzuli';
$messages['searching'] = 'Bilatzen...';
$messages['checking'] = 'Arakatzen...';
$messages['nospellerrors'] = 'Ez da ortografia errorerik aurkitu';
$messages['folderdeleted'] = 'Karpeta behar bezala ezabatu da';
-$messages['foldersubscribed'] = 'Karpeta ongi harpidetu da.';
-$messages['folderunsubscribed'] = 'Karpetaren harpidetza ongi kendu da.';
-$messages['folderpurged'] = 'Karpeta ongi hustu da.';
-$messages['folderexpunged'] = 'Karpeta ongi trinkotu da.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'Behar bezala ezabatu da';
$messages['converting'] = 'Mezuaren formatua ezabatzen';
$messages['messageopenerror'] = 'Ezin da zerbitzaritik mezua kargatu';
$messages['fileuploaderror'] = 'Huts fitxategia eransterakoan';
$messages['filesizeerror'] = 'Erantsi nahi duzun fitxategian $size tamaina muga gainditzen du';
-$messages['copysuccess'] = '$nr kontaktu ongi kopiatu dira.';
-$messages['movesuccess'] = '$nr kontaktu ongi mugitu dira.';
-$messages['copyerror'] = 'Ezin da kontakturik kopiatu.';
-$messages['moveerror'] = 'Ezin da kontakturik mugitu.';
+$messages['copysuccess'] = 'Ondo kopiatu dira $nr helbideak';
+$messages['copyerror'] = 'Ezin da helbiderik kopiatu';
$messages['sourceisreadonly'] = 'Helbide iturburua irakurtzeko soilik da';
$messages['errorsavingcontact'] = 'Ezin da kontaktuaren helbidea gorde';
$messages['movingmessage'] = 'Mezua mugitzen...';
-$messages['copyingmessage'] = 'Mezuak kopiatzen...';
-$messages['copyingcontact'] = 'Kontaktua(k) kopiatzen...';
-$messages['movingcontact'] = 'Kontaktua(k) mugitzen...';
-$messages['deletingmessage'] = 'Mezua(k) ezabatzen...';
-$messages['markingmessage'] = 'Mezua(k) markatzen...';
-$messages['addingmember'] = 'Kontaktua(k) taldera gehitzen...';
-$messages['removingmember'] = 'Kontaktua(k) taldetik ezabatzen...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'Ondo bidalia irakurritako agiria';
$messages['errorsendingreceipt'] = 'Ezin da agiria bidali';
-$messages['deleteidentityconfirm'] = 'Seguru zaude identitate hau ezabatu nahi duzula?';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Ezin da izaera hau ezabatu, zure bakarra da';
$messages['forbiddencharacter'] = 'Karpeta izenak debekatutako karaktereak ditu';
-$messages['selectimportfile'] = 'Hautatu kargatzeko fitxategia.';
-$messages['addresswriterror'] = 'Hautatutako helbide-liburua ezin da editatu.';
-$messages['contactaddedtogroup'] = 'Kontaktuak ongi gehitu dira taldera.';
-$messages['contactremovedfromgroup'] = 'Kontaktuak ongi ezabatu dira taldetik.';
-$messages['nogroupassignmentschanged'] = 'Talde-esleipena ez da aldatu.';
-$messages['importwait'] = 'Inportatzen, itxaron mesedez...';
-$messages['importformaterror'] = 'Huts egin du inportatzean. Kargatu duzun fitxategia ez da inportatzeko fitxategi baliozkoa.';
-$messages['importconfirm'] = '<b>Ongi inportatu dira $inserted kontaktu</b>';
-$messages['importconfirmskipped'] = '<b>Saltatu dira $skipped sarrera</b>';
-$messages['importmessagesuccess'] = '$nr mezu ongi inportatu dira.';
-$messages['importmessageerror'] = 'Inportazio akatsa! Kargatutako fitxategia ez da baliozko mezua edo posta-fitxategia.';
-$messages['opnotpermitted'] = 'Ekintza ez baimendua!';
-$messages['nofromaddress'] = 'Helbide elektronikoa falta da hautatutako identitatean.';
-$messages['editorwarning'] = 'Formaturik gabeko testu-editorera pasatzeak ekar dezake testu-formatu guztien galera. Jarraitu nahi duzu?';
-$messages['httpreceivedencrypterror'] = 'Ezarpen akats larria gertatu da. Jarri harremanetan zure administratzailearekin ahalik eta lasterren. <b>Zure mezua ezin da bidali.</b>';
-$messages['smtpconnerror'] = 'SMTP errorea ($code): Zerbitzariarekiko konexioak huts egin du.';
-$messages['smtpautherror'] = 'SMTP errorea ($code): Egiaztapenak huts egin du.';
-$messages['smtpfromerror'] = 'SMTP errorea ($code): "$from" ($msg) bidaltzailearen ezartzeak huts egin du.';
-$messages['smtptoerror'] = 'SMTP errorea ($code): "$to" ($msg) hartzailea gehitzen huts egin du.';
-$messages['smtprecipientserror'] = 'SMTP errorea: Ezin da hartzaileen zerrenda analizatu.';
-$messages['smtperror'] = 'SMTP errorea: $msg';
-$messages['emailformaterror'] = 'Helbide elektronikoa ez da baliozkoa: $email';
-$messages['toomanyrecipients'] = 'Hartzaile gehiegi. Txikitu hartzaile kopura hona $max.';
-$messages['maxgroupmembersreached'] = 'Taldeko partaideen kopurua $max -ko maximoa gainditzen du:';
-$messages['contactdelerror'] = 'Ezin d(ir)a kontaktua(k) ezabatu.';
-$messages['contactdeleted'] = 'Kontaktua(k) ongi ezabatu dira.';
-$messages['contactrestoreerror'] = 'Ezin d(ir)a ezabatutako kontaktua(k) leheneratu.';
-$messages['contactrestored'] = 'Kontaktua(k) ongi leheneratu d(ir)a.';
-$messages['groupdeleted'] = 'Taldea ongi ezabatu da.';
-$messages['grouprenamed'] = 'Taldea ongi berrizendatu da.';
-$messages['groupcreated'] = 'Taldea ongi sortu da.';
-$messages['savedsearchdeleted'] = 'Bilaketaren gordetzea ongi ezabatu da.';
-$messages['savedsearchdeleteerror'] = 'Ezin da ezabatu bilaketaren gordeketa.';
-$messages['savedsearchcreated'] = 'Bilaketaren gordeketa ongi sortu da.';
-$messages['savedsearchcreateerror'] = 'Ezin da sortu bilaketaren gordeketa.';
-$messages['messagedeleted'] = 'Mezua(k) ongi ezabatu dira.';
-$messages['messagemoved'] = 'Mezua(k) ongi mugitu d(ir)a.';
-$messages['messagecopied'] = 'Mezua(k) ongi kopiatu d(ir)a';
-$messages['messagemarked'] = 'Mezua(k) ongi markatu d(ir)a';
-$messages['autocompletechars'] = 'Sartu gutxienez $min karaktere osatze automatikorako';
-$messages['autocompletemore'] = 'Bat datozen sarrera gehiago topatu dira. Idatzi karaktere gehiago.';
-$messages['namecannotbeempty'] = 'Izena ezin da hutsik egon.';
-$messages['nametoolong'] = 'Izena luzeegia da.';
-$messages['folderupdated'] = 'Karpeta ongi eguneratu da.';
-$messages['foldercreated'] = 'Karpeta ongi sortu da.';
-$messages['invalidimageformat'] = 'Irudi formatua ez da baliozkoa.';
-$messages['mispellingsfound'] = 'Ortografia akatsak detektatu dira mezuan.';
-$messages['parentnotwritable'] = 'Ezin da karpeta sortu/mugi hautatutako goragoko karpetan. Sartzeko baimenik ez.';
-$messages['messagetoobig'] = 'Mezu-zatia handiegia da prozesatzeko.';
-$messages['attachmentvalidationerror'] = 'KONTUZ! Eranskin hau susmagarria da zeren bere izaera ez dator bat mezuan deklaratutakoarekin. Bidaltzailearekin fidatzen ez bazara ez zenuke nabigatzailean ireki behar eduki maltzurra izan dezakeelako.<br/><br/><em>Deklaratua: $expected; erreala: $detected</em>';
-$messages['noscriptwarning'] = 'Kontuz: web-posta zerbitzu honek Javascript behar du! Erabili nahi baduzu gaitu Javascript zure nabigatzailearen hobespenetan.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/fa_AF/labels.inc b/program/localization/fa_AF/labels.inc
index 4abf65245..70113bc49 100644
--- a/program/localization/fa_AF/labels.inc
+++ b/program/localization/fa_AF/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'به اين پروژه خوش امديد';
$labels['username'] = 'نام کاربر';
$labels['password'] = 'Ø´Ùر';
$labels['server'] = 'سرور';
$labels['login'] = 'داخل شدن';
+
+// taskbar
$labels['logout'] = 'خروج';
$labels['mail'] = 'ايميل';
$labels['settings'] = 'تنظیمات شخصی';
$labels['addressbook'] = 'کتاب ادرس';
+
+// mailbox names
$labels['inbox'] = 'نامه های ارسالي';
$labels['drafts'] = 'نامه های ناتکمیل';
$labels['sent'] = 'ارسال شده';
$labels['trash'] = 'اشغال دانی';
$labels['junk'] = 'بیکاره';
+
+// message listing
$labels['subject'] = 'مضمون';
$labels['from'] = 'ارسال کننده';
+$labels['sender'] = 'Sender';
$labels['to'] = 'ګيرينده';
$labels['cc'] = 'تکثیر';
$labels['bcc'] = 'تکثیر پنهان';
$labels['replyto'] = 'جواب نامه';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'تاريخ';
$labels['size'] = 'اندازه';
$labels['priority'] = 'اولویت';
$labels['organization'] = 'تنظیمات';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'پوشه ها';
$labels['messagesfromto'] = 'از مقدار پيغام به مقدار حساب شده';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'از شمار پيغام های حساب شده';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'تکثیر';
+$labels['move'] = 'Move';
$labels['moveto'] = 'انتقال بدهید به ...';
$labels['download'] = 'داونلود کردن';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'نام Ùايل';
$labels['filesize'] = 'اندازه Ùايل';
+
$labels['addtoaddressbook'] = 'در کتاب ادرس علاوه نماييد';
+
+// weekdays short
$labels['sun'] = 'يکشنپبه';
$labels['mon'] = 'دوشنبه';
$labels['tue'] = 'سه شنبه';
@@ -55,6 +81,8 @@ $labels['wed'] = 'چهارشنبه';
$labels['thu'] = 'پنج شنبه';
$labels['fri'] = 'جمعه';
$labels['sat'] = 'شنبه';
+
+// weekdays long
$labels['sunday'] = 'يکشنبه';
$labels['monday'] = 'دوشنبه';
$labels['tuesday'] = 'سه شنبه';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'چهارشنبه';
$labels['thursday'] = 'پنج شنبه';
$labels['friday'] = 'جمعه';
$labels['saturday'] = 'شنبه';
+
+// months short
$labels['jan'] = 'جنوری';
$labels['feb'] = 'Ùبروری';
$labels['mar'] = 'مارچ';
@@ -74,6 +104,8 @@ $labels['sep'] = 'سپتمبر';
$labels['oct'] = 'اکتوبر';
$labels['nov'] = 'نومبر';
$labels['dec'] = 'دسمبر';
+
+// months long
$labels['longjan'] = 'جنوری';
$labels['longfeb'] = 'Ùبروری';
$labels['longmar'] = 'مارچ';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'سپتمبر';
$labels['longoct'] = 'اکتوبر';
$labels['longnov'] = 'نومبر';
$labels['longdec'] = 'دسمبر';
+
$labels['today'] = 'امروز';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'بررسي کردن پيغام های جديد';
$labels['compose'] = 'نوشتن پیام حدید';
$labels['writenewmessage'] = 'ساختن پيغام جديد';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'جواب دادن به پيغام';
$labels['replytoallmessage'] = 'به Ùرستنده Ùˆ تمام گيرينده ها جواب بدهيد';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Ùرستادن این پیام به دیگران / Ùارورد';
$labels['deletemessage'] = 'حذ٠کردن پيغام';
$labels['movemessagetotrash'] = 'پيغام را به اشيآيي حذ٠شده منتقل نماييد';
@@ -102,98 +144,250 @@ $labels['nextmessage'] = 'پيغام بعدي رانشان دهيد';
$labels['lastmessage'] = 'پيغام اخير را نشان دهيد';
$labels['backtolist'] = 'بازگشتن به لست پيغام';
$labels['viewsource'] = 'منبع / کود را نشان دهيد';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'پيغام ها را نشاني کنيد';
$labels['markread'] = 'مانند خوانده شده';
$labels['markunread'] = 'مانند خوانده نشده';
$labels['markflagged'] = 'مانند نشانی شده';
$labels['markunflagged'] = 'مانند نشانی ناشده';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'انتخاب کردن';
$labels['all'] = 'تمام';
$labels['none'] = 'هيچ کدام';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'ناخوانده';
$labels['flagged'] = 'نشانی شده';
$labels['unanswered'] = 'پیامهای جواب نداده شده';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
$labels['filter'] = 'تصÙیه کردن';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'هيچ کدام';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'خلاصه';
$labels['empty'] = 'خالي';
+
$labels['quota'] = '‌طريقه استعمال ديسک';
$labels['unknown'] = 'نامعلوم';
$labels['unlimited'] = 'نامعين/ نامحدود';
+
$labels['quicksearch'] = 'جستجوی سریع';
$labels['resetsearch'] = 'بازنشاندن جستجو';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'در پینجره ای جدید باز کنید';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'پيغام را همين حالا ارسال کنيد';
$labels['savemessage'] = 'این پیش نویس را Ø­Ùظ نمایید';
$labels['addattachment'] = 'ضميمه نمودن ÙŠÚ© Ùايل';
$labels['charset'] = 'ست کرکتر ها';
$labels['editortype'] = 'روش تصحیح کننده / نوشتاری';
$labels['returnreceipt'] = 'رسید برای مراجعت نامه';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'املا را بررسي کنيد';
$labels['resumeediting'] = 'ادامه / بازگشت به تصحیی کردن / نوشتن';
$labels['revertto'] = 'رجوع کردن به';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'ضميمه ها';
$labels['upload'] = 'اپلود کردن';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'بستن';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Ú©Ù…';
$labels['lowest'] = 'کمترین';
$labels['normal'] = 'عادی';
$labels['high'] = 'عالي';
$labels['highest'] = 'عاليترين';
+
$labels['nosubject'] = 'مضمون ندارد';
$labels['showimages'] = 'نمايش دادن تصاوير';
$labels['alwaysshow'] = 'همیشه نشان بده تصاویر را از این Ùرسیتنده﷼';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'ایچ تی ام ایل';
$labels['plaintoggle'] = 'متن ساده';
$labels['savesentmessagein'] = 'پیام ارسال شده را ذخیره کن در';
$labels['dontsave'] = 'ذخیره نکنید';
$labels['maxuploadsize'] = '$sizeزیاد ترین اندازه اجازه داده شده Ùایل عبارت است از';
+
$labels['addcc'] = 'نسخیه دوم را علاوه کنید';
$labels['addbcc'] = 'نسخه پنهان را علاوه کنید';
$labels['addreplyto'] = 'علاوه کردن';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Ùرستانده این پیام خواهش نموده زمانیکه شما نامه را خواندید براش آگاهی داده شود آيا شما ميخواهيد Ú©Ù‡ Ùرستنده را آګاه سازيد';
$labels['receiptread'] = 'بازگشت رسید (خوانده شده)';
$labels['yourmessage'] = 'برای پيغام شما اين يک رسید بازگشت است';
$labels['receiptnote'] = 'يادداشت : اين رسيد شما را Ùقط اګاه ميسازد Ú©Ù‡ پيغام به کامپیوتر گیرنده نمایش داده شده است هیچ گارنتی وجود ندارد Ú©Ù‡ گیرنده پیام این پیام را خوانده Ùˆ یا مطالب آن را درک کرده باشد.';
+
+// address boook
$labels['name'] = 'نشان دادن نام';
$labels['firstname'] = 'اسم/ نام';
$labels['surname'] = 'اسم Ùاميلي / تخلص';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'ايميل';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'آدرس جديد را علاوه کنيد';
$labels['editcontact'] = 'آدرس جدید را تصحیح کنید';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'تصحيح کردن';
$labels['cancel'] = 'لغو کردن/ حذ٠کردن';
$labels['save'] = 'Ø­Ùظ کردن';
$labels['delete'] = 'حذ٠کردن';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'کارت تماس جديد را بسازيد';
$labels['deletecontact'] = 'آدرس های انتخاب شده را حذ٠کنيد';
$labels['composeto'] = 'ايمیل را نوشته کنيد به';
$labels['contactsfromto'] = 'از$count$to به $from آدرس ها از';
$labels['print'] = 'چاپ کردن';
$labels['export'] = 'صادر کردن';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'صادر نماییدVcardآدرس ها را به Ùرمت';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'بسته قبلي را نشان دهيد';
$labels['firstpage'] = 'بسته اولي را نشان دهيد';
$labels['nextpage'] = 'بسته بعدي را نشان دهيد';
$labels['lastpage'] = 'بسته اخير را نشان دهيد';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'گروه ها';
$labels['personaladrbook'] = 'ادرس های شخصي';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'وارد کردن';
$labels['importcontacts'] = 'آدرس ها را وارد نمایید';
$labels['importfromfile'] = 'از یک Ùایل وارد نمایید';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'تمام کتاب آدرس ها را عوض نمایید';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'اجرا شد';
+
+// settings
$labels['settingsfor'] = 'تنظیمات برای';
+$labels['about'] = 'About';
$labels['preferences'] = 'ترجيحات';
$labels['userpreferences'] = 'ترجيحات کاربر';
$labels['editpreferences'] = 'تصحيح کردن ترجيحات کاربر';
+
$labels['identities'] = 'شناخت ها';
$labels['manageidentities'] = 'اداره کردن شناسای ها برای اين آدرس';
$labels['newidentity'] = 'شناخت جديد';
+
$labels['newitem'] = 'Ùقره جديد';
$labels['edititem'] = 'تصحيح کردن Ùقره';
+
$labels['preferhtml'] = 'نشان دادن ايچ ټي ام ايل';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'پيغام ايچ ټي‌ام ايل';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'تاريخ های مهم';
$labels['setdefault'] = 'بطور همیشگی انتخاب نمایید';
$labels['autodetect'] = 'اتومات';
@@ -202,8 +396,13 @@ $labels['timezone'] = 'ناحيه زمانی';
$labels['pagesize'] = 'تعداد سطر ها در صÙحه';
$labels['signature'] = 'امضا';
$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'پيغام ايچ ټي ام ايل رانوشته کنيد';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'امضای حساب ایمیل بشکل ایچ تی ام ال';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'چوکات پیشنما را نشان دهید';
$labels['skin'] = 'تمپلیت محیط کاربری';
$labels['logoutclear'] = 'Clear Trash on logout';
@@ -214,26 +413,69 @@ $labels['mailboxview'] = 'طرز نمایش صندوق پستی';
$labels['mdnrequests'] = 'آگاهی های ارسال کننده';
$labels['askuser'] = 'از کاربر بپرسید';
$labels['autosend'] = 'پیام را بطور خودکار روان کنید';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'رد کردن';
$labels['readwhendeleted'] = 'در هنگام Ø­Ùظ پیام را خوانده شده نشانی کنید';
$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
$labels['skipdeleted'] = 'پیام های حذ٠شده را نمایش ندهید';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Display remote inline images';
$labels['fromknownsenders'] = 'نامه های از آدرس های شناخته شده';
$labels['always'] = 'همیشه';
$labels['showinlineimages'] = 'تصاویر ضمیمه شده را در پایین پیام نشان دهید.';
$labels['autosavedraft'] = 'بصورت خودکار پیش نويس را Ø­Ùظ کنيد';
$labels['everynminutes'] = 'دقیÙÙ‡$n هر';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'هیچگاه';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'نمایش دادن پیام ها';
$labels['messagescomposition'] = 'ایجاد کردن پیام جدید';
$labels['mimeparamfolding'] = 'نام های ضمیمه ها';
$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Full RFC 2047 (دیگر ها)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'انتخاب های پیشرÙته';
$labels['focusonnewmessage'] = 'Ùوکس دادن پینجره مرورگر به پیام جدید';
$labels['checkallfolders'] = 'تمام پوشه ها را بخاطر پیام های جدید بررسی کنید';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'پوشه';
$labels['folders'] = 'پوشه ها';
$labels['foldername'] = 'نام پوشه';
@@ -243,11 +485,54 @@ $labels['create'] = 'ایجاد کردن';
$labels['createfolder'] = 'ایجاد پوشه جدید';
$labels['managefolders'] = 'اداره کردن پوشه ها';
$labels['specialfolders'] = 'پوشه های مخصوص';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Ùهرست کردن توسط';
$labels['sortasc'] = 'Ùهرست کردن از طر٠بالا به پايين';
$labels['sortdesc'] = 'Ùهرست کردن از طر٠پايين به بالا';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'بایت';
$labels['KB'] = 'کیلو بایت';
$labels['MB'] = 'میگا بایت';
$labels['GB'] = 'گیگا بایت';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/fa_AF/messages.inc b/program/localization/fa_AF/messages.inc
index 643a9f7db..4f3d4be55 100644
--- a/program/localization/fa_AF/messages.inc
+++ b/program/localization/fa_AF/messages.inc
@@ -15,51 +15,67 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'خطا رخ داد';
-$messages['loginfailed'] = 'خطا در ورود به سیستم';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'داخل شدن به سيستم موÙÙ‚ نه شد';
$messages['cookiesdisabled'] = 'جستجوگر شما cookies را قبول نميکند';
$messages['sessionerror'] = 'جلسه شما وجود ندارد و يا هم از زمان معين آن گذشته است';
$messages['storageerror'] = 'وصل شدن به آیمیپ سرور موÙÙ‚ نشد';
-$messages['servererrormsg'] = 'خطای سرور: $msg';
-$messages['dberror'] = 'خطای پایگاه داده';
-$messages['requesttimedout'] = 'عدم پاسخگویی در زمان مقرر';
-$messages['invalidhost'] = 'نام سرور نامعتبر است';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'هيچ پيغامی در اين صندوق پستي درياÙت نه شد';
$messages['loggedout'] = 'جلسه شما بصورت مکمل Ùسخ شده است خدا حاÙظ';
$messages['mailboxempty'] = 'صندوق پستي خالي است';
-$messages['refreshing'] = 'دوباره سازی....';
-$messages['loading'] = 'در حال بارگزاری...';
-$messages['uploading'] = 'در حال بارگزاری Ùایل...';
-$messages['uploadingmany'] = 'در حال بارگزاری Ùایل ها...';
-$messages['loadingdata'] = 'در حال بارگزاری داده';
+$messages['refreshing'] = 'Refreshing...';
+$messages['loading'] = 'در حال باز شدن ...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
+$messages['loadingdata'] = 'در حال بار کردن دیتا';
$messages['checkingmail'] = 'پيغام های جديد را بررسي ميکند';
$messages['sendingmessage'] = 'پيغام ها را ارسال ميکند';
$messages['messagesent'] = 'پیام موÙقانه ارسال گردید';
-$messages['savingmessage'] = 'در حال ذخیره کردن پیام';
+$messages['savingmessage'] = 'در حال Ø­Ùظ کردن پیام';
$messages['messagesaved'] = 'پيغام را به پیش نويس Ø­Ùظ کرد';
$messages['successfullysaved'] = 'Ø­Ùظ پیام موÙقانه صورت گرÙت';
$messages['addedsuccessfully'] = 'آدرس بصورت مکمل در کتاب ادرس علاوه شد';
$messages['contactexists'] = 'يک آدرس همرا اين ايميل ادرس قبلاً وجود دارد';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'برای Ø­Ùظ استقلال پيغام شما، تصاویر اجنبی این پیام بلاک شده اند';
$messages['encryptedmessage'] = 'اين ÙŠÚ© پيغام مخÙÙŠ است Ùˆ اشکار شده نميتواند معذرت ميخواهيم';
$messages['nocontactsfound'] = 'هيچ آدرسی درياÙت نه شد';
$messages['contactnotfound'] = 'آدرس خواسته شده درياÙت نه شد';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Ùرستادن پيغام موÙÙ‚ نه شد';
$messages['senttooquickly'] = 'ثانیه منتظر باشید$secلطÙا مدت قبل از ارسال این پیام';
+$messages['errorsavingsent'] = 'در جريان Ø­Ùظ کردن پیام ارسال شده يکاشتباه به وجود امد';
+$messages['errorsaving'] = 'در جريان Ø­Ùظ کردن يکاشتباه به وجود امد';
$messages['errormoving'] = 'پيغام نقل مکان شده نتوانست';
-$messages['errorcopying'] = 'امکان کپی پیام (ها) وجود ندارد';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'پيغام حذ٠شده نتوانست';
-$messages['errormarking'] = 'امکان انتخاب پیام (ها) وجود ندارد';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'آيا واقعاً شما ميخواهيد که آدرس های انتخاب شده را حذ٠کنيد؟';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'آيا واقعاً شما ميخواهيد که پيغام هاي انتخاب شده را حذ٠کنيد؟';
$messages['deletefolderconfirm'] = 'آيا واقعاً شما ميخواهيد که اين پوشه را حذ٠کنيد؟';
$messages['purgefolderconfirm'] = 'آيا واقعاً شما ميخواهيد تمام پيغام های که در اين پوشه وجود دارد حذ٠کنيد؟';
-$messages['groupdeleting'] = 'در حال حذ٠گروه...';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'در حال حذ٠پوشه';
$messages['foldermoving'] = 'در حال انتقال پوشه';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Ùورمه بصورت مکمل خانه پري نه شده است';
$messages['noemailwarning'] = 'لطÙاً ÙŠÚ© ايميل ادرس موجود را داخل کنيد';
-$messages['nonamewarning'] = 'لطÙاً ÙŠÚ© نام وارد کنيد';
+$messages['nonamewarning'] = 'لطÙاً ÙŠÚ© نام را داخل کنيد';
$messages['nopagesizewarning'] = 'لطÙاً اندازه ÙŠÚ© صÙحه را داخل کنيد';
$messages['nosenderwarning'] = 'لطÙاً ایمیل آدرس ارسال کننده را داخل کنید';
$messages['norecipientwarning'] = 'لطÙاً Ú©Ù… از Ú©Ù… ÙŠÚ© آدرس گيرينده را نوشته / داخل کنيد';
@@ -68,31 +84,88 @@ $messages['nobodywarning'] = 'اين پيغام را بدون متن بÙرستÛ
$messages['notsentwarning'] = 'پيغام ارسال نه شده است آیا میخواهید که از این نامه صر٠نظر نمایید';
$messages['noldapserver'] = 'لطÙاً ÙŠÚ© ايل دپ سرور را بخاطر جستجو انتخاب کنيد';
$messages['nosearchname'] = 'لطÙاً ÙŠÚ© نام تماس Ùˆ يا هم ÙŠÚ© ايميل ادرس را داخل کنيد';
-$messages['searchsuccessful'] = '$nr پیام یاÙت شد';
-$messages['contactsearchsuccessful'] = '$nr حساب کاربری یاÙت شد';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
+$messages['searchsuccessful'] = '$nr پیام دریاÙت شد';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'جستجو گر موÙÙ‚ به دریاÙت هیچ گونه اثری نشد';
-$messages['searching'] = 'در حال جستجو..';
+$messages['searching'] = 'در حال جستجو';
$messages['checking'] = 'در حال بررسی';
$messages['nospellerrors'] = 'هيچ اشتباه املايي را درياÙت نه کرد';
$messages['folderdeleted'] = 'پوشه موÙقانه از بين رÙت/ حذ٠گرديد';
-$messages['folderpurged'] = 'محتوای پوشه ها با موÙقیت پاک شدند';
-$messages['deletedsuccessfully'] = 'با موÙقیت حذ٠شد';
-$messages['converting'] = 'در حال پاک کردن ساختار';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
+$messages['deletedsuccessfully'] = 'موÙقانه حذ٠شد';
+$messages['converting'] = 'در حال از بین بردن Ø´Ú©Ù„ دهی Ùˆ ساختار (Ùرمت)';
$messages['messageopenerror'] = 'پيغام از سرور جريان کرده نتوانست';
-$messages['fileuploaderror'] = 'بارگزاری Ùايل با خطا مواجه شد.';
+$messages['fileuploaderror'] = 'اپلود کردن Ùايل موÙÙ‚ نه شد.';
$messages['filesizeerror'] = 'تثبیت شده میباشد$size حجم Ùایل آپلود شده بیشتر از حجم Ú©Ù„ÛŒ';
+$messages['copysuccess'] = 'آدرس ها کاپی شد. $nrموÙقانه بع تعداد';
+$messages['copyerror'] = 'هيچ يک از تماس ها را کاپي کرده نتوانست';
$messages['sourceisreadonly'] = 'اجازه نمامه کود / منبع این آدرس Ù‚ÙØ· خواندنی است';
$messages['errorsavingcontact'] = 'ادرس این پیام را Ø­Ùظکرده نتوانست';
$messages['movingmessage'] = 'ذر حال انتقال پیام...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'یک رسید برای ارسال کننده این پیام Ùرستاده شد.';
$messages['errorsendingreceipt'] = 'رسيد ارسال شده نتوانست';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'شما این شناخت نامه را حذ٠کرده نمیتوانید. این آخرین شناخت نامه شما است.';
$messages['forbiddencharacter'] = 'نام پوشه دارای یک کرکتر ممنوعه است.';
$messages['selectimportfile'] = 'لطÙاً یک Ùایل را برای آپلود کردن انتخاب نمایید.';
$messages['addresswriterror'] = 'کتابچه آدرس انتخاب شده دارای اجازه نامه نوشتاری نیست.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'در حال وارد کردن لطÙا صبر کنید.';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts, $skipped existing entries skipped</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'اجازه این عملکرد را ندارید';
$messages['nofromaddress'] = 'بخش ایمیل آدرس در شناخت نامه انتخاب شده Ù…Ùقود است.';
$messages['editorwarning'] = 'استÙاده از تصحیح کننده متن ساده تمام Ùرمت Ùˆ ساختار داده شده را از بین خواهد برد. آیا میخواهید Ú©Ù‡ ادامه بدهید.';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/fa_IR/labels.inc b/program/localization/fa_IR/labels.inc
index 14f6f8621..221e4b891 100644
--- a/program/localization/fa_IR/labels.inc
+++ b/program/localization/fa_IR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'به $product خوش آمدید';
$labels['username'] = 'نام کاربری';
$labels['password'] = 'گذرواژه';
-$labels['server'] = 'سرور';
+$labels['server'] = 'سرویس‌دهنده';
$labels['login'] = 'ورود';
-$labels['logout'] = 'خروج';
+
+// taskbar
+$labels['logout'] = 'برون‌رÙت';
$labels['mail'] = 'نامه';
$labels['settings'] = 'تنظیمات';
$labels['addressbook'] = 'دÙتر نشانی';
+
+// mailbox names
$labels['inbox'] = 'صندوق ورودی';
$labels['drafts'] = 'پیش‌نویس‌ها';
$labels['sent'] = 'Ùرستاده شده';
-$labels['trash'] = 'زباله‌دان';
+$labels['trash'] = 'سطل آشغال';
$labels['junk'] = 'بنجل';
-$labels['show_real_foldernames'] = 'نمایش نام واقعی برای پوشه‌های ویژه';
+
+// message listing
$labels['subject'] = 'موضوع';
$labels['from'] = 'از';
$labels['sender'] = 'Ùرستنده';
@@ -44,11 +53,13 @@ $labels['priority'] = 'اولویت';
$labels['organization'] = 'سازمان';
$labels['readstatus'] = 'وضعیت خوانده شدن';
$labels['listoptions'] = 'Ùهرست گزینه‌ها...';
+
$labels['mailboxlist'] = 'پوشه‌ها';
$labels['messagesfromto'] = 'پیغام‌ها $from تا $to از $count';
$labels['threadsfromto'] = 'رشته‌ها $from تا $to از $count';
$labels['messagenrof'] = 'پیغام $nr از $count';
$labels['fromtoshort'] = '$from - $to از $count';
+
$labels['copy'] = 'رونوشت';
$labels['move'] = 'انتقال';
$labels['moveto'] = 'انتقال به...';
@@ -56,9 +67,13 @@ $labels['download'] = 'بارگیری';
$labels['open'] = 'باز کردن';
$labels['showattachment'] = 'نمایش';
$labels['showanyway'] = 'نمایش آن در هر صورت';
+
$labels['filename'] = 'نام پرونده';
$labels['filesize'] = 'اندازه پرونده';
+
$labels['addtoaddressbook'] = 'اÙزودن به دÙتر نشانی‌ها';
+
+// weekdays short
$labels['sun'] = '۱ش';
$labels['mon'] = '۲ش';
$labels['tue'] = '۳ش';
@@ -66,13 +81,17 @@ $labels['wed'] = 'Û´Ø´';
$labels['thu'] = '۵ش';
$labels['fri'] = 'جم';
$labels['sat'] = 'Ø´';
+
+// weekdays long
$labels['sunday'] = 'یک‌شنبه';
$labels['monday'] = 'دوشنبه';
$labels['tuesday'] = 'سه‌شنبه';
$labels['wednesday'] = 'چهارشنبه';
$labels['thursday'] = 'پنج‌شنبه';
-$labels['friday'] = 'آدینه';
+$labels['friday'] = 'جمعه';
$labels['saturday'] = 'شنبه';
+
+// months short
$labels['jan'] = 'ژان';
$labels['feb'] = 'Ùور';
$labels['mar'] = 'مار';
@@ -85,6 +104,8 @@ $labels['sep'] = 'سپت';
$labels['oct'] = 'اÙکت';
$labels['nov'] = 'نوا';
$labels['dec'] = 'دسا';
+
+// months long
$labels['longjan'] = 'ژانویه';
$labels['longfeb'] = 'Ùوریه';
$labels['longmar'] = 'مارس';
@@ -97,20 +118,23 @@ $labels['longsep'] = 'سپتامبر';
$labels['longoct'] = 'اکتبر';
$labels['longnov'] = 'نوامبر';
$labels['longdec'] = 'دسامبر';
+
$labels['today'] = 'امروز';
-$labels['refresh'] = 'بازخوانی';
+
+// toolbar buttons
+$labels['refresh'] = 'نوسازی';
$labels['checkmail'] = 'بررسی پیغام‌های جدید';
-$labels['compose'] = 'نوشتن';
+$labels['compose'] = 'نوشتن پیغام';
$labels['writenewmessage'] = 'ایجاد پیغام جدید';
$labels['reply'] = 'پاسخ';
$labels['replytomessage'] = 'پاسخ به Ùرستنده';
$labels['replytoallmessage'] = 'پاسخ به Ùهرست یا به Ùرستنده Ùˆ تمام گیرنده‌ها';
$labels['replyall'] = 'پاسخ به همه';
$labels['replylist'] = 'پاسخ به Ùهرست';
-$labels['forward'] = 'باز ارسال';
-$labels['forwardinline'] = 'باز ارسال خطی';
-$labels['forwardattachment'] = 'باز ارسال به صورت پیوست';
-$labels['forwardmessage'] = 'باز ارسال پیغام';
+$labels['forward'] = 'ارجاع';
+$labels['forwardinline'] = 'ارجاع خطی';
+$labels['forwardattachment'] = 'ارجاع به صورت پیوست';
+$labels['forwardmessage'] = 'ارجاع پیغام';
$labels['deletemessage'] = 'حذ٠پیغام';
$labels['movemessagetotrash'] = 'انتقال پیغام به زباله‌دان';
$labels['printmessage'] = 'چاپ این پیغام';
@@ -129,7 +153,8 @@ $labels['markunflagged'] = 'به عنوان نشانه‌گذاری نشده'
$labels['moreactions'] = 'کارهای دیگر...';
$labels['more'] = 'بيشتر';
$labels['back'] = 'بازگشت';
-$labels['options'] = 'گزینه‌ها';
+$labels['options'] = 'تنظیمات';
+
$labels['select'] = 'انتخاب';
$labels['all'] = 'همه';
$labels['none'] = 'هیچ‌کدام';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'صÙحه جاری';
$labels['unread'] = 'خوانده‌نشده';
$labels['flagged'] = 'پرچم‌دار';
$labels['unanswered'] = 'پاسخ داده نشده';
-$labels['withattachment'] = 'با پیوست';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'حذ٠شده';
$labels['undeleted'] = 'حذ٠نشده';
$labels['invert'] = 'وارونه';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'باز کردن همه';
$labels['expand-unread'] = 'بازکردن خوانده نشده‌ها';
$labels['collapse-all'] = 'جمع کردن همه';
$labels['threaded'] = 'رشته شده';
+
$labels['autoexpand_threads'] = 'باز کردن رشته‌های پیغام';
$labels['do_expand'] = 'همه رشته‌ها';
$labels['expand_only_unread'] = 'Ùقط با پیغام‌های خوانده نشده';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'ستون‌های Ùهرست';
$labels['listsorting'] = 'ستون مرتب‌سازی';
$labels['listorder'] = 'ترتیب مرتب‌سازی';
$labels['listmode'] = 'نوع مشاهده Ùهرست';
+
$labels['folderactions'] = 'اعمال پوشه...';
$labels['compact'] = 'Ùشرده';
$labels['empty'] = 'خالی';
-$labels['importmessages'] = 'وارد کردن پیغام‌ها';
+
$labels['quota'] = 'Ùضای استÙاده شده';
$labels['unknown'] = 'ناشناخته';
$labels['unlimited'] = 'نامحدود';
+
$labels['quicksearch'] = 'جستجوی سریع';
$labels['resetsearch'] = 'جستجوی دوباره';
$labels['searchmod'] = 'اصلاحات جستجو';
$labels['msgtext'] = 'کل پیغام';
$labels['body'] = 'بدنه';
-$labels['type'] = 'نوع';
-$labels['namex'] = 'نام';
+
$labels['openinextwin'] = 'باز کردن در پنجره‌ی جدید';
$labels['emlsave'] = 'بارگیری (.eml)';
$labels['changeformattext'] = 'نمایش در قالب متنی';
$labels['changeformathtml'] = 'نمایش در قالب اچ‌تی‌ام‌ال';
+
+// message compose
$labels['editasnew'] = 'ویرایش به عنوان جدید';
$labels['send'] = 'ارسال';
$labels['sendmessage'] = 'ارسال پیغام';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'رسید دریاÙت';
$labels['dsn'] = 'اعلام وضعیت دریاÙت';
$labels['mailreplyintro'] = 'در $date، $sender نوشته است:';
$labels['originalmessage'] = 'پیغام اصلی';
+
$labels['editidents'] = 'ویرایش شناسه‌ها';
$labels['spellcheck'] = 'املاء';
$labels['checkspelling'] = 'بررسی املایی';
$labels['resumeediting'] = 'ادامه‌ی ویرایش';
$labels['revertto'] = 'برگرداندن به';
-$labels['responses'] = 'پاسخ‌ها';
-$labels['insertresponse'] = 'درج پاسخ';
-$labels['manageresponses'] = 'مدیریت پاسخ‌ها';
-$labels['savenewresponse'] = 'ذخیره پاسخ جدید';
-$labels['editresponses'] = 'ویرایش پاسخ‌ها';
-$labels['editresponse'] = 'ویرایش پاسخ';
-$labels['responsename'] = 'نام';
-$labels['responsetext'] = 'متن پاسخ';
+
$labels['attach'] = 'پیوست کردن';
$labels['attachments'] = 'پیوست‌ها';
$labels['upload'] = 'بارگذاری';
$labels['uploadprogress'] = '$percent ($current از$total)';
$labels['close'] = 'بستن';
$labels['messageoptions'] = 'گزینه‌های پیغام...';
+
$labels['low'] = 'Ú©Ù…';
$labels['lowest'] = 'کم‌ترین';
$labels['normal'] = 'معمولی';
$labels['high'] = 'زیاد';
$labels['highest'] = 'بیش‌ترین';
+
$labels['nosubject'] = '(بدون موضوع)';
$labels['showimages'] = 'نمایش عکس‌ها';
$labels['alwaysshow'] = 'همیشه عکس‌های دریاÙتی از $sender را نمایش داده شود';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'این یک پیغام پیش‌نویس است.';
$labels['andnmore'] = '$nr بیشتر...';
$labels['togglemoreheaders'] = 'نمایش سربرگ‌های بیشتر پیغام';
$labels['togglefullheaders'] = 'تعویض سربرگ‌های پیغام خام';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'متن ساده';
$labels['savesentmessagein'] = 'ذخیره پیغام ارسالی در';
$labels['dontsave'] = 'ذخیره نکن';
$labels['maxuploadsize'] = 'حجم پرونده حداکثر تا میزان $size می‌باشد';
+
$labels['addcc'] = 'اÙزودن رونوشت';
$labels['addbcc'] = 'اÙزودن رونوشت مخÙÛŒ';
$labels['addreplyto'] = 'اÙزودن پاسخ-به';
$labels['addfollowupto'] = 'اÙزودن پیگیری-به';
+
+// mdn
$labels['mdnrequest'] = 'Ùرستنده‌ی این پیغام خواسته است Ú©Ù‡ وقتی شما این پیغام را می‌خوانید، آگاه شود. آیا مایلید Ùرستنده را آگاه سازید؟';
$labels['receiptread'] = 'رسید دریاÙت (خواندن)';
$labels['yourmessage'] = 'این یک رسید دریاÙت برای پیغام شماست';
$labels['receiptnote'] = 'تذکر: این رسید Ùقط تصدیق می‌کند Ú©Ù‡ پیغام، روی رایانه گیرنده نمایش داده شده است. هیچ تضمینی نیست Ú©Ù‡ گیرنده، محتوای پیغام را خوانده یا Ùهمیده باشد.';
+
+// address boook
$labels['name'] = 'نمایش نام';
$labels['firstname'] = 'نام';
$labels['surname'] = 'نام خانوادگی';
@@ -270,6 +301,7 @@ $labels['search'] = 'جستجو';
$labels['advsearch'] = 'جستجوی پیشرÙته';
$labels['advanced'] = 'پیشرÙته';
$labels['other'] = 'سایر';
+
$labels['typehome'] = 'منزل';
$labels['typework'] = 'کار';
$labels['typeother'] = 'سایر';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'دستیار';
$labels['typehomepage'] = 'صÙحه خانگی';
$labels['typeblog'] = 'بلاگ';
$labels['typeprofile'] = 'نمایه';
+
$labels['addfield'] = 'اÙزودن زمینه...';
$labels['addcontact'] = 'اÙزودن تماس جدید';
$labels['editcontact'] = 'ویرایش تماس';
$labels['contacts'] = 'تماس‌ها';
$labels['contactproperties'] = 'خصوصیات تماس';
$labels['personalinfo'] = 'اطلاعات شخصی';
+
$labels['edit'] = 'ویرایش';
$labels['cancel'] = 'لغو';
$labels['save'] = 'ذخیره';
@@ -298,6 +332,7 @@ $labels['rename'] = 'تغییر نام';
$labels['addphoto'] = 'اÙزودن';
$labels['replacephoto'] = 'جایگزینی';
$labels['uploadphoto'] = 'بارگذاری تصویر';
+
$labels['newcontact'] = 'ایجاد کارت تماس جدید';
$labels['deletecontact'] = 'حذ٠تماس‌های انتخاب شده';
$labels['composeto'] = 'نوشتن پیغام به';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'اÙزودن گروه تماس جدید';
$labels['grouprename'] = 'تغییر نام گروه';
$labels['groupdelete'] = 'حذ٠گروه';
$labels['groupremoveselected'] = 'حذ٠نشانی‌های انتخاب شده از گروه';
+
$labels['previouspage'] = 'نمایش صÙحه قبلی';
$labels['firstpage'] = 'نمایش صÙحه اول';
$labels['nextpage'] = 'نمایش صÙحه بعدی';
$labels['lastpage'] = 'نمایش صÙحه آخر';
+
$labels['group'] = 'گروه';
$labels['groups'] = 'گروه‌ها';
-$labels['listgroup'] = 'Ùهرست اعضاء گروه';
$labels['personaladrbook'] = 'نشانی‌های شخصی';
+
$labels['searchsave'] = 'ذخیره جستجو';
$labels['searchdelete'] = 'حذ٠جستجو';
+
$labels['import'] = 'وارد کردن';
$labels['importcontacts'] = 'وارد کردن تماس‌ها';
$labels['importfromfile'] = 'وارد کردن از پرونده‌ی:';
-$labels['importtarget'] = 'اÙزودن تماس‌ها به';
+$labels['importtarget'] = 'اÙزودن تماس‌های جدید به دÙتر نشانی:';
$labels['importreplace'] = 'جایگیزینی کامل دÙتر نشانی';
-$labels['importgroups'] = 'وارد کردن وظای٠گروه';
-$labels['importgroupsall'] = 'همه (ایجاد گروه‌ها در صورت نیاز)';
-$labels['importgroupsexisting'] = 'Ùقط برای گروه‌های موجود';
$labels['importdesc'] = 'شما می‌توانید تماس‌ها را از یک دÙتر نشانی موجود بارگذاری نمایید.<br/> هم اکنون ما وارد کردن آدرس‌ها را از <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> یا قالب داده CVS (جدا شده با کاما) پشتیبانی می‌کنیم.';
$labels['done'] = 'انجام شد';
+
+// settings
$labels['settingsfor'] = 'تنظیمات برای';
$labels['about'] = 'درباره';
$labels['preferences'] = 'ترجیحات';
$labels['userpreferences'] = 'ترجیحات کاربر';
$labels['editpreferences'] = 'ویرایش ترجیحات کاربر';
+
$labels['identities'] = 'شناسه‌ها';
$labels['manageidentities'] = 'مدیریت شناسه‌ها برای این حساب';
$labels['newidentity'] = 'شناسه جدید';
+
$labels['newitem'] = 'مورد جدید';
$labels['edititem'] = 'ویرایش مورد';
+
$labels['preferhtml'] = 'HTML نمایش';
$labels['defaultcharset'] = 'مجموعه نمایه پیش‌Ùرض';
$labels['htmlmessage'] = 'HTML پیغام';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'HTML ‌نوشتن پیغام‌های';
$labels['htmlonreply'] = 'Ùقط در پاسخ به پیغام HTML';
$labels['htmlonreplyandforward'] = 'در بازگردانی یا پاسخ به پیغام‌های HTML';
$labels['htmlsignature'] = 'HTML امضای';
-$labels['showemail'] = 'نمایش آدرس ایمیل با نام نمایشی';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'نمایش قاب پیش‌نمایش';
$labels['skin'] = 'پوسته ظاهری';
$labels['logoutclear'] = 'تمیز کردن زباله دان هنگام برون‌رÙت';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'نادیده گرÙتن کلمات دارای
$labels['spellcheckignorecaps'] = 'نادیده گرÙتن کلمات با حرو٠بزرگ';
$labels['addtodict'] = 'اضاÙÙ‡ کردن به واژه‌نامه';
$labels['mailtoprotohandler'] = 'ثبت نگه‌دارنده پروتوکل برای mailto: پیوندها';
-$labels['standardwindows'] = 'بکار بردن پاپ‌آپ‌ها به صورت پنجره‌ی استاندارد';
$labels['forwardmode'] = 'بازگردانی پیغام';
$labels['inline'] = 'خطی';
$labels['asattachment'] = 'به عنوان پیوست';
+
$labels['folder'] = 'پوشه';
$labels['folders'] = 'پوشه‌ها';
$labels['foldername'] = 'نام پوشه';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'نوع پوشه';
$labels['personalfolder'] = 'پوشه خصوصی';
$labels['otherfolder'] = 'پوشه کاربران دیگر';
$labels['sharedfolder'] = 'پوشه عمومی';
+
$labels['sortby'] = 'مرتب‌سازی بر اساس';
$labels['sortasc'] = 'مرتب‌سازی صعودی';
$labels['sortdesc'] = 'مرتب‌سازی نزولی';
$labels['undo'] = 'برگردان';
+
$labels['installedplugins'] = 'اÙزونه‌های نصب شده';
$labels['plugin'] = 'اÙزونه';
$labels['version'] = 'نسخه';
$labels['source'] = 'منبع';
$labels['license'] = 'گواهینامه';
$labels['support'] = 'پشتیبانی';
+
+// units
$labels['B'] = 'بایت';
$labels['KB'] = 'کیلوبایت';
$labels['MB'] = 'مگابایت';
$labels['GB'] = 'گیگابایت';
+
+// character sets
$labels['unicode'] = 'یونیکد';
$labels['english'] = 'انگلیسی';
$labels['westerneuropean'] = 'اروپای غربی';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'ویتنامی';
$labels['japanese'] = 'ژاپنی';
$labels['korean'] = 'کره‌ای';
$labels['chinese'] = 'چینی';
+
?>
diff --git a/program/localization/fa_IR/messages.inc b/program/localization/fa_IR/messages.inc
index 502b0445a..ff53c650e 100644
--- a/program/localization/fa_IR/messages.inc
+++ b/program/localization/fa_IR/messages.inc
@@ -15,23 +15,25 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'خطایی رخ داد!';
$messages['loginfailed'] = 'ورود ناموÙÙ‚ بود.';
$messages['cookiesdisabled'] = 'مرورگر شما کوکی‌ها را قبول نمی‌کند.';
$messages['sessionerror'] = 'نشست شما معتبر نیست، یا منقضی شده است.';
-$messages['storageerror'] = 'اتصال به سرور مخزن ناموÙÙ‚ بود.';
+$messages['storageerror'] = 'اتصال به سرور انباره ناموÙÙ‚ بود.';
$messages['servererror'] = 'خطای سرور!';
$messages['servererrormsg'] = 'خطای سرور: $msg';
-$messages['dberror'] = 'خطای پایگاه داده';
+$messages['dberror'] = 'خطای پایگاه‌داده';
$messages['requesttimedout'] = 'زمان درخواست تمام شد';
-$messages['errorreadonly'] = ' عمل مورد نظر انجام نشد. پوشه Ùقط خواندنی است.';
-$messages['errornoperm'] = ' عمل مورد نظر انجام نشد. دسترسی وجود ندارد.';
-$messages['erroroverquota'] = 'عملیات انجام نشد. دیسک Ùضای خالی ندارد.';
-$messages['erroroverquotadelete'] = 'دیسک Ùضای خالی ندارد. برای حذ٠پیغام از SHIFT+DEL استÙاده کنید.';
+$messages['errorreadonly'] = 'ناتوانی در انجام عملیات. پوشه Ùقط خواندنی است.';
+$messages['errornoperm'] = 'ناتوانی در انجام عملیات. دسترسی وجود ندارد.';
+$messages['erroroverquota'] = 'ناتوانی در انجام عملیات. Ùضای دیسک خالی نیست.';
+$messages['erroroverquotadelete'] = 'Ùضای دیسک خالی نیست. برای حذ٠پیغام از SHIFT+DEL استÙاده کنید.';
$messages['invalidrequest'] = 'درخواست نامعتبر! هیچ داده‌ای ذخیره نشد.';
$messages['invalidhost'] = 'نام سرور غیرمعتبر.';
-$messages['nomessagesfound'] = 'هیچ پیغامی در این صندوق‌پستی پیدا نشد.';
-$messages['loggedout'] = 'شما با موÙقیت نشست را پایان دادید. خدانگهدار!';
+$messages['nomessagesfound'] = 'هیچ پیغامی در این صندوق پیدا نشد.';
+$messages['loggedout'] = 'شما با موÙقیت نشست را پایان دادید. خدا نگه‌دار!';
$messages['mailboxempty'] = 'صندوق‌پستی خالی است.';
$messages['refreshing'] = 'نوسازی...';
$messages['loading'] = 'در حال بارگذاری...';
@@ -44,130 +46,126 @@ $messages['messagesent'] = 'پیغام با موÙقیت Ùرستاده شد.';
$messages['savingmessage'] = 'درحال ذخیره‌ی پیغام...';
$messages['messagesaved'] = 'پیغام در پیش‌نویس‌ها ذخیره شد';
$messages['successfullysaved'] = 'با موÙقیت ذخیره شد.';
-$messages['addedsuccessfully'] = 'مخاطب با موÙقیت به دÙتر نشانی‌ها اضاÙÙ‡ شد.';
-$messages['contactexists'] = 'یک مخاطب با این ایمیل از قبل وجود دارد.';
-$messages['contactnameexists'] = 'یک مخاطب با این نام از قبل وجود دارد.';
-$messages['blockedimages'] = 'برای Ø­Ùاظت از حریم شخصی شما، عکس‌های با آدرس خارجی در این پیغام مسدود شده‌اند.';
+$messages['addedsuccessfully'] = 'تماس با موÙقیت به دÙتر نشانی‌ها اضاÙÙ‡ شد';
+$messages['contactexists'] = 'یک تماس با این نشانی ایمیل از قبل وجود دارد.';
+$messages['contactnameexists'] = 'یک تماس با این نام از قبل وجود دارد.';
+$messages['blockedimages'] = 'برای Ø­Ùاظت از حریم شخصی شما، عکس‌های دوردست از پیغام حذ٠شد.';
$messages['encryptedmessage'] = '!این یک پیغام رمزنگاری شده است و قابل نمایش نیست. ببخشید';
-$messages['nocontactsfound'] = 'هیج مخاطبی پیدا نشد.';
-$messages['contactnotfound'] = 'مخاطب درخواست شده پیدا نشد.';
-$messages['contactsearchonly'] = 'برای یاÙتن مخاطب عبارتی را جستجو کنید';
-$messages['sendingfailed'] = 'ارسال پیغام ناموÙÙ‚ بود.';
-$messages['senttooquickly'] = 'لطÙا قبل از ارسال این پیغام $sec ثانیه صبر کنید.';
-$messages['errorsavingsent'] = 'خطایی رخ داده است پیام ارسالی ذخیره می گردد.';
-$messages['errorsaving'] = 'خطایی در ذخیره کردن رخ داده است.';
-$messages['errormoving'] = 'پیغام(ها) منتقل نشدند.';
-$messages['errorcopying'] = 'پیغام(ها) کپی نشدند.';
-$messages['errordeleting'] = 'پیغام(ها) حذ٠نشدند.';
-$messages['errormarking'] = 'پیغام(ها) نشانه‌گذاری نشدند.';
-$messages['deletecontactconfirm'] = 'آیا واقعاً می‌خواهید مخاطب(های) انتخاب شده را حذ٠کنید؟';
+$messages['nocontactsfound'] = 'هیج تماسی پیدا نشد.';
+$messages['contactnotfound'] = 'تماس درخواست شده پیدا نشد.';
+$messages['contactsearchonly'] = 'چند عبارات جستجو برای یاÙتن تماس ها وارد نمایید';
+$messages['sendingfailed'] = 'ناموÙÙ‚ در Ùرستادن پیغام.';
+$messages['senttooquickly'] = 'لطÙا قبل از ارسال این پیغام $sec صبر کنید.';
+$messages['errorsavingsent'] = 'در لحظه ذخیره پیغام ارسال شده، مشکل به وجود آمد.';
+$messages['errorsaving'] = 'هنگام ذخیره‌سازی، اشکالی پیش آمد.';
+$messages['errormoving'] = 'ناتوان در انتقال پیغام(ها).';
+$messages['errorcopying'] = 'ناتوان در رونوشت پیغام(ها).';
+$messages['errordeleting'] = 'ناتوان در حذ٠پیغام(ها).';
+$messages['errormarking'] = 'ناتوان در نشانه گذاری پیغام(ها).';
+$messages['deletecontactconfirm'] = 'آیا واقعاً می‌خواهید تماس(های) انتخاب شده را حذ٠کنید؟';
$messages['deletegroupconfirm'] = 'آیا واقعا می‌خواهید گروه انتخاب شده را حذ٠کنید؟';
$messages['deletemessagesconfirm'] = 'آیا واقعاً می‌خواهید پیغام(های) انتخاب شده را حذ٠کنید؟';
$messages['deletefolderconfirm'] = 'آیا واقعاً می‌خواهید این پوشه را حذ٠کنید؟';
$messages['purgefolderconfirm'] = 'آیا واقعاً می‌خواهید همه‌ی پیغام‌های داخل این پوشه را حذ٠کنید؟';
-$messages['contactdeleting'] = 'حذ٠مخاطب(ها)...';
+$messages['contactdeleting'] = 'حذ٠تماس(ها)...';
$messages['groupdeleting'] = 'حذ٠گروه...';
$messages['folderdeleting'] = 'حذ٠پوشه...';
$messages['foldermoving'] = 'انتقال پوشه...';
$messages['foldersubscribing'] = 'اشتراک پوشه...';
$messages['folderunsubscribing'] = 'لغو اشتراک پوشه...';
-$messages['formincomplete'] = 'Ùرم کامل پر نشده بود.';
-$messages['noemailwarning'] = 'لطÙا یک پست الکترونیکی معتبر وارد کنید.';
+$messages['formincomplete'] = 'Ùرم کاملاً پر نشده بود.';
+$messages['noemailwarning'] = 'لطÙا یک نشانی پست الکترونیکی معتبر وارد کنید.';
$messages['nonamewarning'] = 'لطÙا یک نام وارد کنید.';
-$messages['nopagesizewarning'] = 'لطÙا اندازه‌ی صÙحه را وارد کنید.';
-$messages['nosenderwarning'] = 'لطÙا پست الکترونیکی Ùرستنده را وارد کنید.';
+$messages['nopagesizewarning'] = 'لطÙا اندازه ÛŒ صÙحه را وارد کنید.';
+$messages['nosenderwarning'] = 'لطÙا آدرس پست الکترونیکی Ùرستنده را وارد کنید.';
$messages['norecipientwarning'] = 'لطÙاً حداقل یک گیرنده وارد کنید.';
-$messages['nosubjectwarning'] = 'قسمت "موضوع" خالی است. می‌خواهید اکنون وارد کنید؟';
+$messages['nosubjectwarning'] = 'قسمت "موضوع" خالی است. آیا می‌خواهید اکنون وارد کنید؟';
$messages['nobodywarning'] = 'این پیغام بدون متن ارسال شود؟';
$messages['notsentwarning'] = 'پیغام ارسال نشده است. آیا می‌خواهید پیغام را از بین ببرید؟';
-$messages['noldapserver'] = 'لطÙا یک سرور LDAP برای جست‌و‌جو انتخاب کنید.';
-$messages['nosearchname'] = 'لطÙا نام یک مخاطب یا یک نشانی ایمیل وارد کنید.';
-$messages['notuploadedwarning'] = 'همه پیوست ها هنوز بارگذاری نشده‌اند. لطÙا صبر کرده یا بارگذاری را لغو کنید.';
-$messages['searchsuccessful'] = '$nr پیغام پیدا شد.';
-$messages['contactsearchsuccessful'] = '$nr مخاطب ییدا شد.';
-$messages['searchnomatch'] = 'جست‌و‌جو هیچ نتیجه‌ای نداشت.';
-$messages['searching'] = 'در حال جست‌و‌جو...';
+$messages['noldapserver'] = 'برای جست Ùˆ جو انتخاب کنید LDAP لطÙا یک سرور.';
+$messages['nosearchname'] = 'لطÙا نام یک تماس Ùˆ یا یک نشانی ایمیل وارد کنید.';
+$messages['notuploadedwarning'] = 'همه پیوست ها هنوز بارگذاری نشده اند. لطÙا صبر کنید یا بارگذاری را لغو کنید.';
+$messages['searchsuccessful'] = '$nr پیغام پیدا شد';
+$messages['contactsearchsuccessful'] = '$nr تماس ییدا شد.';
+$messages['searchnomatch'] = 'جست و جو هیچ نتیجه‌ای نداشت.';
+$messages['searching'] = 'در حال جست و جو...';
$messages['checking'] = 'در حال بررسی...';
$messages['nospellerrors'] = 'هیچ اشکال املایی پیدا نشد.';
$messages['folderdeleted'] = 'پوشه با موÙقیت حذ٠شد.';
-$messages['foldersubscribed'] = 'اشتراک پوشه با موÙقیت انجام شد.';
+$messages['foldersubscribed'] = 'پوشه با موÙقیت اشتراک شد.';
$messages['folderunsubscribed'] = 'اشتراک پوشه با موÙقیت لغو شد.';
$messages['folderpurged'] = 'پوشه با موÙقیت خالی شد.';
$messages['folderexpunged'] = 'پوشه با موÙقیت Ùشرده شد.';
$messages['deletedsuccessfully'] = 'با موÙقیت حذ٠شد.';
$messages['converting'] = 'در حال حذ٠قالب‌بندی...';
-$messages['messageopenerror'] = 'بارگذاری پیغام از روی سرور انجام نشد.';
+$messages['messageopenerror'] = 'ناتوان در بارگذاری پیغام از روی سرور.';
$messages['fileuploaderror'] = 'بارگذاری پرونده ناموÙÙ‚ بود.';
$messages['filesizeerror'] = 'اندازه‌ی پرونده‌ی بارگذاری شده از بیشینه اندازه‌ی $size بیشتر است.';
-$messages['copysuccess'] = '$nr مخاطب با موÙقیت Ú©Ù¾ÛŒ شد.';
-$messages['movesuccess'] = '$nr مخاطب با موÙقیت جابجا شد.';
-$messages['copyerror'] = 'مخاطب‌ها کپی نشدند.';
-$messages['moveerror'] = 'مخاطب‌ها جابجا نشدند.';
-$messages['sourceisreadonly'] = 'این منبع نشانی Ùقط خواندنی است.';
-$messages['errorsavingcontact'] = 'ذخیره‌ی نشانی مخاطب ناموÙÙ‚ بود.';
+$messages['copysuccess'] = '$nr نشانی با موÙقیت رونوشت‌برداری شدند.';
+$messages['copyerror'] = 'رونوشت‌برداری از نشانی‌ها ناموÙÙ‚ بود.';
+$messages['sourceisreadonly'] = 'این منبع نشانی Ùقط‌خواندنی است.';
+$messages['errorsavingcontact'] = 'ذخیره‌ی نشانی تماس ناموÙÙ‚ بود.';
$messages['movingmessage'] = 'در حال انتقال پیغام(ها)...';
-$messages['copyingmessage'] = 'در حال کپی‌برداری از پیغام(ها)...';
-$messages['copyingcontact'] = 'در حال کپی‌برداری مخاطب(ها)...';
-$messages['movingcontact'] = 'در حال جابجایی مخاطب(ها)...';
+$messages['copyingmessage'] = 'در حال رونوشت پیغام(ها)...';
+$messages['copyingcontact'] = 'در حال رونوشت تماس(ها)...';
$messages['deletingmessage'] = 'در حال حذ٠پیغام(ها)...';
$messages['markingmessage'] = 'در حال نشانه‌گذاری پیغام(ها)...';
-$messages['addingmember'] = 'در حال اÙزودن مخاطب(ها) به گروه...';
-$messages['removingmember'] = 'در حال حذ٠مخاطب(ها) از گروه...';
+$messages['addingmember'] = 'در حال اÙزودن تماس(ها) به گروه...';
+$messages['removingmember'] = 'در حال انتقال تماس(ها) از گروه...';
$messages['receiptsent'] = 'رسید خواندن با موÙقیت ارسال شد.';
-$messages['errorsendingreceipt'] = 'ارسال رسید انجام نشد.';
-$messages['deleteidentityconfirm'] = 'آیا از حذ٠این شناسه مطمئن هستید؟';
-$messages['nodeletelastidentity'] = 'این شناسه را نمی‌توانید حذ٠کنید، زیرا آخرین شناسه شما است.';
-$messages['forbiddencharacter'] = 'نام پوشه شامل یک کاراکتر غیر مجاز است.';
-$messages['selectimportfile'] = 'لطÙاً پرونده‌ای را برای بارگذاری انتخاب کنید.';
+$messages['errorsendingreceipt'] = 'ناتوان در ارسال رسید.';
+$messages['deleteidentityconfirm'] = 'آیا شما مطمئن به حذ٠این شناسه هستید.';
+$messages['nodeletelastidentity'] = 'نمی‌توانید این شناسه را حذ٠کنید، زیرا آخرین شناسه شما است.';
+$messages['forbiddencharacter'] = 'نام پوشه شامل یک حر٠غیر مجاز است.';
+$messages['selectimportfile'] = 'لطÙاً پرونده ای را برای بارگیری انتخاب کنید.';
$messages['addresswriterror'] = 'دÙترچه آدرس انتخابی قابل نوشتن نیست.';
-$messages['contactaddedtogroup'] = 'مخاطب‌ها با موÙقیت به این گروه اضاÙÙ‡ شدند.';
-$messages['contactremovedfromgroup'] = 'مخاطب‌ها با موÙقیت از این گروه حذ٠شدند.';
+$messages['contactaddedtogroup'] = 'تماس ها با موÙقیت به این گروه اضاÙÙ‡ شدند.';
+$messages['contactremovedfromgroup'] = 'تماس ها با موÙقیت از این گروه حذ٠شدند.';
$messages['nogroupassignmentschanged'] = 'هیچ تکلی٠گروهی تغییر نکرده است.';
$messages['importwait'] = 'در حال وارد کردن، لطÙا صبر کنید...';
$messages['importformaterror'] = 'وارد کردن ناموÙÙ‚! Ùایل بارگذاری شده یک Ùایل اطلاعات معتبر نیست.';
-$messages['importconfirm'] = '<b>$inserted مخاطب با موÙقیت وارد شدند</b>';
-$messages['importconfirmskipped'] = '<b>$skipped ورودی موجود نادیده گرÙته شدند</b>';
-$messages['importmessagesuccess'] = 'با موÙقیت $nr پیغام وارد شد.';
-$messages['importmessageerror'] = 'وارد کردن ناموÙÙ‚! Ùایل بارگذاری شده یک پیغام یا صندوق‌پستی معتبر نیست.';
+$messages['importconfirm'] = '<b>تماس های $inserted با موÙقیت وارد شدند</b>';
+$messages['importconfirmskipped'] = '<b>ورودی های موجود $skipped نادیده گرÙته شدند</b>';
$messages['opnotpermitted'] = 'عملیات مجاز نیست!';
-$messages['nofromaddress'] = 'شناسه انتخاب شده پست الکترونیکی ندارد.';
+$messages['nofromaddress'] = 'آدرس پست الکترونیکی های Ù…Ùقود در شناسه انتخاب شده.';
$messages['editorwarning'] = 'تعویض به ویرایشگر متن ساده باعث از دست رÙتن قالب‌بندی همه متن‌ها می‌شود، آیا می‌خواهید عملیات را ادامه بدهید؟';
-$messages['httpreceivedencrypterror'] = 'یک خطای پیکربندی خطرناک رخ داده است. سریعا با سرپرست یا مسئول خود تماس بگیرید. <b>امکان ارسال پیغام شما وجود ندارد.</b>';
+$messages['httpreceivedencrypterror'] = 'یک خطای تنظیم وخیم رخ داده است. سریعا با سرپرست یا مدیر خود تماس بگیرید. <b>امکان ارسال پیغام شما وجود ندارد.</b>';
$messages['smtpconnerror'] = 'خطای SMTP (%code): اتصال به سرور ناموÙÙ‚ بود.';
$messages['smtpautherror'] = 'خطای SMTP (%code): تصدیق هویت ناموÙÙ‚ بود.';
$messages['smtpfromerror'] = 'خطای SMTP (%code): ناموÙÙ‚ در تنظیم Ùرستنده "$from" ($msg).';
$messages['smtptoerror'] = 'خطای SMTP (%code): نام موÙÙ‚ در اÙزودن گیرنده "$to" ($msg).';
$messages['smtprecipientserror'] = 'خطای SMTP: ناتوان در تجزیه Ùهرست گیرنده‌ها.';
$messages['smtperror'] = 'خطای SMTP: $msg';
-$messages['emailformaterror'] = 'پست الکترونیکی نامعتبر: $email';
-$messages['toomanyrecipients'] = 'گیرنده‌های بیش از اندازه: تعداد گیرنده ها را به $max کاهش دهید.';
-$messages['maxgroupmembersreached'] = 'تعداد اعضای گروه بیشتر از $max است.';
-$messages['internalerror'] = 'یک خطای داخلی رخ داده است. لطÙا دوباره سعی کنید.';
-$messages['contactdelerror'] = 'حذ٠مخاطب(ها) انجام شد.';
-$messages['contactdeleted'] = 'مخاطب(ها) با موÙقیت حذ٠شدند.';
-$messages['contactrestoreerror'] = 'مخاطب(های) حذ٠شده بازگردانی نخواهند شد.';
-$messages['contactrestored'] = 'مخاطب(ها) با موÙقیت بازگردانده شدند.';
+$messages['emailformaterror'] = 'آدرس پیت الکترونیکی نامعتبر: $email';
+$messages['toomanyrecipients'] = 'گیرنده های خیلی زیاد: تعداد گیرنده ها را به تعداد $max کاهش دهید.';
+$messages['maxgroupmembersreached'] = 'تعداد اعضاء گروه از مقدار بیشینه $max بیشتر است.';
+$messages['internalerror'] = 'خطای داخلی رخ داد. لطÙا دوباره امتحان کنید.';
+$messages['contactdelerror'] = 'تماس(ها) حذ٠نخواهند شد.';
+$messages['contactdeleted'] = 'تماس(ها) با موÙقیت حذ٠شدند.';
+$messages['contactrestoreerror'] = 'تماس(های) حذ٠شده بازگردانی نخواهند شد.';
+$messages['contactrestored'] = 'تماس(ها) با موÙقیت بازگردانده شدند.';
$messages['groupdeleted'] = 'گروه با موÙقیت حذ٠شد.';
-$messages['grouprenamed'] = 'نام گروه با موÙقیت تغییر داده شد.';
+$messages['grouprenamed'] = 'گروه با موÙقیت تغییر نام داده شد.';
$messages['groupcreated'] = 'گروه با موÙقیت ایجاد شد.';
-$messages['savedsearchdeleted'] = 'جستجوی ذخیره شده با موÙقیت حذ٠شد.';
-$messages['savedsearchdeleteerror'] = 'حذ٠جستجوی ذخیره شده انجام نشد.';
-$messages['savedsearchcreated'] = 'جستجوی حذ٠شده با موÙقیت ایجاد شد.';
-$messages['savedsearchcreateerror'] = 'ساخت جستجوی ذخیره شده انجام نشد.';
+$messages['savedsearchdeleted'] = 'جستجوی ذخیره شد با موÙقیت حذ٠شد.';
+$messages['savedsearchdeleteerror'] = 'جستجوی ذخیره شد حذ٠نخواهد شد.';
+$messages['savedsearchcreated'] = 'جستجوی حذ٠شده با موÙقیت حذ٠شد.';
+$messages['savedsearchcreateerror'] = 'جستجوی ذخیره شده اÙزوده نخواهد شد.';
$messages['messagedeleted'] = 'پیغام(ها) با موÙقیت حذ٠شدند.';
$messages['messagemoved'] = 'پیغام(ها) با موÙقیت منتقل شدند.';
-$messages['messagecopied'] = 'پیغام(ها) با موÙقیت Ú©Ù¾ÛŒ شدند.';
-$messages['messagemarked'] = 'پیغام(ها) با موÙقیت نشانه‌گذاری شدند.';
+$messages['messagecopied'] = 'پیغام(ها) با موÙقیت رونوشت شدند.';
+$messages['messagemarked'] = 'پیغام(ها) با موÙقیت نشانه گذاری شدند.';
$messages['autocompletechars'] = 'حداقل $min حر٠برای تکمیل خودکار وارد نمایید.';
-$messages['autocompletemore'] = 'نتایج زیادی یاÙت شد. لطÙا حرو٠بیشتری وارد نمایید.';
+$messages['autocompletemore'] = 'تعداد ورودی های هماهنگ زیادی یاÙت شد. لطÙا حرو٠بیشتری وارد نمایید.';
$messages['namecannotbeempty'] = 'نام نمی‌تواند خالی باشد.';
$messages['nametoolong'] = 'نام خیلی طولانی است.';
-$messages['folderupdated'] = 'پوشه با موÙقیت به‌روز شد.';
+$messages['folderupdated'] = 'پوشه با موÙقیت بارگذاری شد.';
$messages['foldercreated'] = 'پوشه با موÙقیت اÙزوده شد.';
-$messages['invalidimageformat'] = 'Ùرمت تصویر نامعتبر است.';
+$messages['invalidimageformat'] = 'Ùرمت تصویر نامعتبر.';
$messages['mispellingsfound'] = 'خطای املایی در پیغام شناسایی شد.';
-$messages['parentnotwritable'] = 'به دلیل نداشتن حق دسترسی، ایجاد/انتقال پوشه به پوشه والد انتخاب شده، انجام نشد.';
-$messages['messagetoobig'] = 'بخش پیغام برای پردازش آن خیلی بزرگ است.';
-$messages['attachmentvalidationerror'] = 'هشدار! این پیوست مشکوک است زیرا نوع آن با نوعی Ú©Ù‡ در پیغام اشاره شده مطابقت ندارد. اگر شما به Ùرستنده اطمینان ندارید، نباید آن را در مرورگر باز نمایید زیرا ممکن است Ú©Ù‡ شامل محتوای مخرب باشد.<br><br><em>مورد انتظار: $expected; یاÙت شده: $detected</em>';
-$messages['noscriptwarning'] = 'هشدار: این برنامه به جاوااسکریپت نیاز دارد! برای استÙاده از این برنامه لطÙا جاوااسکریپت را در تنظیمات مرورگر خود Ùعال نمایید.';
+$messages['parentnotwritable'] = 'ناتوانی در ایجاد/انتقال پوشه به پوشه والد انتخاب شده. بدون حق دسترسی.';
+$messages['messagetoobig'] = 'بخش پیغام برای اجرای آن خیلی بزرگ است.';
+$messages['attachmentvalidationerror'] = 'هشدار! این پیوست مشکوک است زیرا نوع آن با نوعی Ú©Ù‡ در پیغام اشاره شده مطابقت ندارد. اگر شما Ùرستنده را تایید نمی‌کنید، شما نباید آن را در مرورگر باز نمایید زیرا ممکن است Ú©Ù‡ شامل محتوای مخرب باشد.<br/><br/><em>مورد انتظار: $expected; یاÙت شده: $detected</em>';
+$messages['noscriptwarning'] = 'هشدار: این برنامه به جاوااسکریپت نیاز دارد! برای استÙاده از این لطÙا جاوااسکریپت را در تنظیمات مرورگر خود Ùعال نمایید.';
+
?>
diff --git a/program/localization/fi_FI/labels.inc b/program/localization/fi_FI/labels.inc
index 1e5e26193..ea856b389 100644
--- a/program/localization/fi_FI/labels.inc
+++ b/program/localization/fi_FI/labels.inc
@@ -15,20 +15,31 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Tervetuloa $product -käyttäjäksi';
$labels['username'] = 'Käyttäjätunnus';
$labels['password'] = 'Salasana';
$labels['server'] = 'Palvelin';
$labels['login'] = 'Kirjaudu';
+
+// taskbar
$labels['logout'] = 'Kirjaudu ulos';
$labels['mail'] = 'Sähköposti';
$labels['settings'] = 'Asetukset';
$labels['addressbook'] = 'Osoitekirja';
+
+// mailbox names
$labels['inbox'] = 'Saapuneet';
$labels['drafts'] = 'Luonnokset';
$labels['sent'] = 'Lähetetyt';
$labels['trash'] = 'Roskakori';
$labels['junk'] = 'Roskaposti';
+$labels['show_real_foldernames'] = 'Show real names for special folders';
+
+// message listing
$labels['subject'] = 'Aihe';
$labels['from'] = 'Lähettäjä';
$labels['sender'] = 'Lähettäjä';
@@ -43,11 +54,13 @@ $labels['priority'] = 'Tärkeys';
$labels['organization'] = 'Organisaatio';
$labels['readstatus'] = 'Luettu';
$labels['listoptions'] = 'Listaa valinnat...';
+
$labels['mailboxlist'] = 'Kansiot';
$labels['messagesfromto'] = 'Viestit $from-$to/$count';
$labels['threadsfromto'] = 'Viestiketjut $from-$to/$count';
$labels['messagenrof'] = 'Viesti $nr/$count';
$labels['fromtoshort'] = '$from - $to (yhteensä $count)';
+
$labels['copy'] = 'Kopioi';
$labels['move'] = 'Siirrä';
$labels['moveto'] = 'siirrä kansioon...';
@@ -55,9 +68,13 @@ $labels['download'] = 'lataa';
$labels['open'] = 'Avaa';
$labels['showattachment'] = 'Näytä';
$labels['showanyway'] = 'Näytä silti';
+
$labels['filename'] = 'Tiedoston nimi';
$labels['filesize'] = 'Tiedoston koko';
+
$labels['addtoaddressbook'] = 'Lisää osoitekirjaan';
+
+// weekdays short
$labels['sun'] = 'Su';
$labels['mon'] = 'Ma';
$labels['tue'] = 'Ti';
@@ -65,6 +82,8 @@ $labels['wed'] = 'Ke';
$labels['thu'] = 'To';
$labels['fri'] = 'Pe';
$labels['sat'] = 'La';
+
+// weekdays long
$labels['sunday'] = 'Sunnuntai';
$labels['monday'] = 'Maanantai';
$labels['tuesday'] = 'Tiistai';
@@ -72,6 +91,8 @@ $labels['wednesday'] = 'Keskiviikko';
$labels['thursday'] = 'Torstai';
$labels['friday'] = 'Perjantai';
$labels['saturday'] = 'Lauantai';
+
+// months short
$labels['jan'] = 'Tammi';
$labels['feb'] = 'Helmi';
$labels['mar'] = 'Maalis';
@@ -84,6 +105,8 @@ $labels['sep'] = 'Syys';
$labels['oct'] = 'Loka';
$labels['nov'] = 'Marras';
$labels['dec'] = 'Joulu';
+
+// months long
$labels['longjan'] = 'Tammikuu';
$labels['longfeb'] = 'Helmikuu';
$labels['longmar'] = 'Maaliskuu';
@@ -96,7 +119,10 @@ $labels['longsep'] = 'Syyskuu';
$labels['longoct'] = 'Lokakuu';
$labels['longnov'] = 'Marraskuu';
$labels['longdec'] = 'Joulukuu';
+
$labels['today'] = 'Tänään';
+
+// toolbar buttons
$labels['refresh'] = 'Päivitä';
$labels['checkmail'] = 'Tarkista saapuneet viestit';
$labels['compose'] = 'Viestin kirjoitus';
@@ -129,6 +155,7 @@ $labels['moreactions'] = 'Lisää toimintoja...';
$labels['more'] = 'Lisää';
$labels['back'] = 'Takaisin';
$labels['options'] = 'Asetukset';
+
$labels['select'] = 'Valitse';
$labels['all'] = 'Kaikki';
$labels['none'] = 'Ei mikään';
@@ -147,6 +174,7 @@ $labels['expand-all'] = 'Laajenna kaikki';
$labels['expand-unread'] = 'Laajenna lukemattomat';
$labels['collapse-all'] = 'Kutista kaikki';
$labels['threaded'] = 'Säikeet';
+
$labels['autoexpand_threads'] = 'Laajenna viestiketjut automaattisesti';
$labels['do_expand'] = 'kaikki viestiketjut';
$labels['expand_only_unread'] = 'vain ne joissa lukemattomia viestejä';
@@ -162,24 +190,27 @@ $labels['listcolumns'] = 'Näkyvät kentät';
$labels['listsorting'] = 'Lajittelu kenttä';
$labels['listorder'] = 'Lajittelu järjestys';
$labels['listmode'] = 'Listausnäkymä';
+
$labels['folderactions'] = 'Kansiotoiminnot...';
$labels['compact'] = 'Tiivistä';
$labels['empty'] = 'Tyhjennä';
-$labels['importmessages'] = 'Tuo viestejä';
+
$labels['quota'] = 'Levytila';
$labels['unknown'] = 'tuntematon';
$labels['unlimited'] = 'rajoittamaton';
+
$labels['quicksearch'] = 'Pikahaku';
$labels['resetsearch'] = 'Nollaa haku';
$labels['searchmod'] = 'Hakukriteerit';
$labels['msgtext'] = 'Koko viesti';
$labels['body'] = 'Runko';
-$labels['type'] = 'Tyyppi';
-$labels['namex'] = 'Nimi';
+
$labels['openinextwin'] = 'Avaa uudessa ikkunassa';
$labels['emlsave'] = 'Tallenna (.eml)';
$labels['changeformattext'] = 'Näytä raakatekstimuodossa';
$labels['changeformathtml'] = 'Näytä HTML-muodossa';
+
+// message compose
$labels['editasnew'] = 'Muokkaa uutena';
$labels['send'] = 'Lähetä';
$labels['sendmessage'] = 'Lähetä viesti';
@@ -191,29 +222,26 @@ $labels['returnreceipt'] = 'Perillesaapumisilmoitus';
$labels['dsn'] = 'Toimituksen tilailmoitus';
$labels['mailreplyintro'] = '$sender kirjoitti $date:';
$labels['originalmessage'] = 'Alkuperäinen viesti';
+
$labels['editidents'] = 'Muokkaa identiteettejä';
$labels['spellcheck'] = 'Oikeinkirjoitus';
$labels['checkspelling'] = 'Tarkista oikeinkirjoitus';
$labels['resumeediting'] = 'Jatka muokkausta';
$labels['revertto'] = 'Muuta takaisin';
-$labels['responses'] = 'Vastaukset';
-$labels['manageresponses'] = 'Hallitse vastauksia';
-$labels['savenewresponse'] = 'Tallenna uusi vastaus';
-$labels['editresponses'] = 'Muokkaa vastauksia';
-$labels['editresponse'] = 'Muokkaa vastausta';
-$labels['responsename'] = 'Nimi';
-$labels['responsetext'] = 'Vastausteksti';
+
$labels['attach'] = 'Liitä';
$labels['attachments'] = 'Liitetiedostot';
$labels['upload'] = 'Lisää';
$labels['uploadprogress'] = '$percent ($current, yhteensä $total)';
$labels['close'] = 'Sulje';
$labels['messageoptions'] = 'Viestin asetukset...';
+
$labels['low'] = 'Matala';
$labels['lowest'] = 'Matalin';
$labels['normal'] = 'Normaali';
$labels['high'] = 'Korkea';
$labels['highest'] = 'Korkein';
+
$labels['nosubject'] = '(ei otsikkoa)';
$labels['showimages'] = 'Näytä kuvat';
$labels['alwaysshow'] = 'Näytä aina lähettäjältä $sender saapuneet kuvat';
@@ -221,19 +249,25 @@ $labels['isdraft'] = 'Tämä on luonnosviesti.';
$labels['andnmore'] = '$nr lisää...';
$labels['togglemoreheaders'] = 'Näytä lisää viestiotsakkeita';
$labels['togglefullheaders'] = 'Viestin otsakkeet päällä/pois';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Tavallinen teksti';
$labels['savesentmessagein'] = 'Tallenna lähetetty viesti kansioon';
$labels['dontsave'] = 'Älä tallenna';
$labels['maxuploadsize'] = 'Suurin sallittu tiedostokoko on $size';
+
$labels['addcc'] = 'Lisää kopio';
$labels['addbcc'] = 'Lisää piilokopio';
$labels['addreplyto'] = 'Lisää vastausosoite';
$labels['addfollowupto'] = 'Lisää keskustelunsiirto';
+
+// mdn
$labels['mdnrequest'] = 'Viestin lähettäjä on pyytänyt kuittauksen siitä että olet lukenut viestin. Haluatko lähettää kuittauksen?';
$labels['receiptread'] = 'Lukukuittaus';
$labels['yourmessage'] = 'Tämä viesti on kuittaus lähettämällesi viestille';
$labels['receiptnote'] = 'Huom! Kuittaus tarkoittaa vain sitä, että viesti on avattu vastaanottajan tietokoneella. Se ei tarkoita että vastaanottaja on myös lukenut tai ymmärtänyt viestin.';
+
+// address boook
$labels['name'] = 'Näkyvä nimi';
$labels['firstname'] = 'Etunimi';
$labels['surname'] = 'Sukunimi';
@@ -268,6 +302,7 @@ $labels['search'] = 'Haku';
$labels['advsearch'] = 'Tarkennettu haku';
$labels['advanced'] = 'Lisäasetukset';
$labels['other'] = 'Muu';
+
$labels['typehome'] = 'Koti';
$labels['typework'] = 'Työ';
$labels['typeother'] = 'Muu';
@@ -282,12 +317,14 @@ $labels['typeassistant'] = 'Avustaja';
$labels['typehomepage'] = 'Kotisivu';
$labels['typeblog'] = 'Blogi';
$labels['typeprofile'] = 'Profiili';
+
$labels['addfield'] = 'Lisää kenttä...';
$labels['addcontact'] = 'Lisää uusi yhteystieto';
$labels['editcontact'] = 'Muokkaa yhteystietoa';
$labels['contacts'] = 'Yhteystiedot';
$labels['contactproperties'] = 'Yhteystiedon ominaisuudet';
$labels['personalinfo'] = 'Henkilökohtaiset tiedot';
+
$labels['edit'] = 'Muokkaa';
$labels['cancel'] = 'Peruuta';
$labels['save'] = 'Tallenna';
@@ -296,6 +333,7 @@ $labels['rename'] = 'Nimeä uudelleen';
$labels['addphoto'] = 'Lisää';
$labels['replacephoto'] = 'Korvaa';
$labels['uploadphoto'] = 'Lähetä kuva';
+
$labels['newcontact'] = 'Luo uusi yhteystieto';
$labels['deletecontact'] = 'Poista valitut yhteystiedot';
$labels['composeto'] = 'Kirjoita viesti yhteystiedolle';
@@ -309,35 +347,45 @@ $labels['newcontactgroup'] = 'Luo uusi yhteystietoryhmä';
$labels['grouprename'] = 'Nimeä ryhmä uudelleen';
$labels['groupdelete'] = 'Poista ryhmä';
$labels['groupremoveselected'] = 'Poista valitut yhteystiedot ryhmästä';
+
$labels['previouspage'] = 'Näytä edellinen luettelo';
$labels['firstpage'] = 'Näytä ensimmäinen luettelo';
$labels['nextpage'] = 'Näytä seuraava luettelo';
$labels['lastpage'] = 'Näytä viimeinen luettelo';
+
$labels['group'] = 'Ryhmä';
$labels['groups'] = 'Ryhmät';
$labels['personaladrbook'] = 'Henkilökohtaiset osoitteet';
+
$labels['searchsave'] = 'Tallenna haku';
$labels['searchdelete'] = 'Poista haku';
+
$labels['import'] = 'Tuo';
$labels['importcontacts'] = 'Tuo yhteystiedot';
$labels['importfromfile'] = 'Tuo tiedostosta:';
+$labels['importtarget'] = 'Lisää uudet yhteystiedot osoitekirjaan:';
$labels['importreplace'] = 'Korvaa koko osoitekirja';
-$labels['importgroupsall'] = 'Kaikki (luo ryhmät tarvittaessa)';
$labels['importdesc'] = 'Voit tuoda yhteystietoja olemassa olevasta osoitekirjasta.<br/>Tuettuja muotoja ovat <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ja CSV (pilkuin erotetut arvot).';
$labels['done'] = 'Valmis';
+
+// settings
$labels['settingsfor'] = 'Asetukset';
$labels['about'] = 'Tietoja';
$labels['preferences'] = 'Asetukset';
$labels['userpreferences'] = 'Käyttäjän asetukset';
$labels['editpreferences'] = 'Muokkaa käyttäjän asetuksia';
+
$labels['identities'] = 'Identiteetit';
$labels['manageidentities'] = 'Muokkaa tunnuksen identiteettejä';
$labels['newidentity'] = 'Uusi identiteetti';
+
$labels['newitem'] = 'Uusi';
$labels['edititem'] = 'Muokkaa';
+
$labels['preferhtml'] = 'Käytä HTML:aa';
$labels['defaultcharset'] = 'Oletusmerkistökoodaus';
$labels['htmlmessage'] = 'HTML-viesti';
+$labels['messagepart'] = 'Part';
$labels['digitalsig'] = 'Digitaalinen allekirjoitus';
$labels['dateformat'] = 'Päiväyksen muoto';
$labels['timeformat'] = 'Ajan muoto';
@@ -427,7 +475,9 @@ $labels['addtodict'] = 'Lisää sanakirjaan';
$labels['mailtoprotohandler'] = 'Rekisteröi mailto:-linkkien protokollakäsitteljä';
$labels['standardwindows'] = 'Käsittele popup-ikkunoita tavallisina ikkunoina';
$labels['forwardmode'] = 'Viestin välitys';
+$labels['inline'] = 'inline';
$labels['asattachment'] = 'liitteenä';
+
$labels['folder'] = 'Kansio';
$labels['folders'] = 'Kansiot';
$labels['foldername'] = 'Kansion nimi';
@@ -448,20 +498,26 @@ $labels['foldertype'] = 'Kansion tyyppi';
$labels['personalfolder'] = 'Yksityinen kansio';
$labels['otherfolder'] = 'Toisen käyttäjän kansio';
$labels['sharedfolder'] = 'Julkinen kansio';
+
$labels['sortby'] = 'Järjestä';
$labels['sortasc'] = 'Järjestä nousevasti (a-ö)';
$labels['sortdesc'] = 'Järjestä laskevasti (ö-a)';
$labels['undo'] = 'Kumoa';
+
$labels['installedplugins'] = 'Asennetut lisäosat';
$labels['plugin'] = 'Liitännäinen';
$labels['version'] = 'Versio';
$labels['source'] = 'Lähde';
$labels['license'] = 'Lisenssi';
$labels['support'] = 'Hanki tukea';
+
+// units
$labels['B'] = 't';
$labels['KB'] = 'Kt';
$labels['MB'] = 'Mt';
$labels['GB'] = 'Gt';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Englantilainen';
$labels['westerneuropean'] = 'Länsieurooppalainen';
@@ -480,4 +536,5 @@ $labels['vietnamese'] = 'Vietnamilainen';
$labels['japanese'] = 'Japanilainen';
$labels['korean'] = 'Korealainen';
$labels['chinese'] = 'Kiinalainen';
+
?>
diff --git a/program/localization/fi_FI/messages.inc b/program/localization/fi_FI/messages.inc
index a94339af1..3a8c393d6 100644
--- a/program/localization/fi_FI/messages.inc
+++ b/program/localization/fi_FI/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Virhe havaittu.';
$messages['loginfailed'] = 'Sisäänkirjautuminen epäonnistui';
$messages['cookiesdisabled'] = 'Selaimesi ei hyväksy evästeitä';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Viesti lähetetty';
$messages['savingmessage'] = 'Tallennetaan viestiä...';
$messages['messagesaved'] = 'Viesti tallennettu "Luonnokset"-kansioon';
$messages['successfullysaved'] = 'Tallennus onnistui';
-$messages['savingresponse'] = 'Tallennetaan vastaustekstiä...';
-$messages['deleteresponseconfirm'] = 'Haluatko varmasti poistaa tämän vastaustekstin?';
$messages['addedsuccessfully'] = 'Yhteystieto lisätty osoitekirjaan';
$messages['contactexists'] = 'Samalla sähköpostiosoitteella on jo olemassa yhteystieto';
$messages['contactnameexists'] = 'Yhteystieto samalla nimellä on jo olemassa';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'Pyydettyä yhteystietoa ei löytynyt';
$messages['contactsearchonly'] = 'Anna hakusanoja, joilla yhteystietoja haetaan';
$messages['sendingfailed'] = 'Viestin lähetys epäonnistui';
$messages['senttooquickly'] = 'Odota $sec sekunti(a) ennen viestin lähettämistä';
-$messages['errorsavingsent'] = 'Virhe tallennettaessa lähetettyä viestiä.';
-$messages['errorsaving'] = 'Virhe tallennettaessa.';
+$messages['errorsavingsent'] = 'Lähetetyn viestin tallennuksessa tapahtui virhe';
+$messages['errorsaving'] = 'Tallennuksessa tapahtui virhe';
$messages['errormoving'] = 'Viestiä ei voitu siirtää';
$messages['errorcopying'] = 'Viestiä ei voitu kopioida';
$messages['errordeleting'] = 'Viestiä ei voitu poistaa';
@@ -90,7 +90,7 @@ $messages['contactsearchsuccessful'] = 'Löydetty $nr yhteystietoa';
$messages['searchnomatch'] = 'Haku ei tuottanut tuloksia';
$messages['searching'] = 'Etsitään...';
$messages['checking'] = 'Tarkistetaan...';
-$messages['nospellerrors'] = 'Kirjoitusvirheitä ei löytynyt.';
+$messages['nospellerrors'] = 'Kirjoitusvirheitä ei löytynyt';
$messages['folderdeleted'] = 'Kansio poistettu onnistuneesti';
$messages['foldersubscribed'] = 'Kansio tilattu onnistuneesti.';
$messages['folderunsubscribed'] = 'Kansion tilaus poistettu onnistuneesti.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Poistetaan asettelu viestistä...';
$messages['messageopenerror'] = 'Virhe kopioitaessa viestiä palvelimelta';
$messages['fileuploaderror'] = 'Tiedoston lähettäminen epäonnistui';
$messages['filesizeerror'] = 'Lähetettävä tiedosto ylittää sallitun enimmäiskoon $size';
-$messages['copysuccess'] = '$nr yhteystietoa kopioitiin onnistuneesti.';
-$messages['movesuccess'] = '$nr yhteystietoa siirrettiin onnistuneesti.';
-$messages['copyerror'] = 'Yhdenkään yhteystiedon kopiointi ei onnistunut.';
-$messages['moveerror'] = 'Minkään yhteystiedon siirto ei onnistunut.';
+$messages['copysuccess'] = 'Kopioitu $nr osoitetta onnistuneesti';
+$messages['copyerror'] = 'Yhtään osoitetta ei voitu kopioida';
$messages['sourceisreadonly'] = 'Tämän osoitteen lähde on kirjoitussuojattu';
$messages['errorsavingcontact'] = 'Yhteystietoa ei voitu tallentaa';
$messages['movingmessage'] = 'Siirretään viestiä...';
$messages['copyingmessage'] = 'Kopioidaan viestiä...';
$messages['copyingcontact'] = 'Kopioidaan yhteystietoja...';
-$messages['movingcontact'] = 'Siirretään yhteystieto(j)a...';
$messages['deletingmessage'] = 'Poistetaan viestejä...';
$messages['markingmessage'] = 'Merkitään viestejä...';
$messages['addingmember'] = 'Lisätään yhteystietoja ryhmään...';
@@ -124,12 +121,11 @@ $messages['selectimportfile'] = 'Valitse lähetettävä tiedosto';
$messages['addresswriterror'] = 'Valittuun osoitekirjaan ei voi kirjoittaa';
$messages['contactaddedtogroup'] = 'Yhteystiedot lisätty ryhmään';
$messages['contactremovedfromgroup'] = 'Yhteystiedot poistettu ryhmästä';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'Tuodaan, odota...';
$messages['importformaterror'] = 'Tuonti epäonnistui! Lähetetty tiedosto ei ole kelvollinen tuontitiedosto.';
$messages['importconfirm'] = '<b>$inserted yhteystietoa tuotu onnistuneesti</b>';
$messages['importconfirmskipped'] = '<b>Ohitettu $skipped olemassa olevaa merkintää</b>';
-$messages['importmessagesuccess'] = '$nr viestiä tuotiin onnistuneesti';
-$messages['importmessageerror'] = 'Tuonti epäonnistui! Lähetetty tiedosto ei ole kelvollinen viesti tai mailbox-tiedosto';
$messages['opnotpermitted'] = 'Toiminto ei ole sallittu!';
$messages['nofromaddress'] = 'Valittu identiteetti ei sisällä sähköpostiosoitetta';
$messages['editorwarning'] = 'Vaihtaminen tekstieditoriin aiheuttaa viestin muotoilun katoamisen. Haluatko jatkaa?';
@@ -138,12 +134,12 @@ $messages['smtpconnerror'] = 'SMTP-virhe ($code): Palvelimelle yhdistäminen epÃ
$messages['smtpautherror'] = 'SMTP-virhe ($code): Tunnistus epäonnistui';
$messages['smtpfromerror'] = 'SMTP-virhe ($code): Lähettäjän "$from" asettaminen epäonnistui ($msg)';
$messages['smtptoerror'] = 'SMTP-virhe ($code): Vastaanottajan "$to" lisääminen epäonnistui ($msg)';
-$messages['smtprecipientserror'] = 'SMTP-virhe: Ei voida jäsentää vastaanottajien listaa.';
+$messages['smtprecipientserror'] = 'SMTP-virhe: Ei voida jäsentää vastaanottajien listaa';
$messages['smtperror'] = 'SMTP-virhe: $msg';
$messages['emailformaterror'] = 'Virheellinen sähköpostiosoite: $email';
$messages['toomanyrecipients'] = 'Liikaa vastaanottajia. Vähennä vastaanottajien määrä maksimiin $max.';
$messages['maxgroupmembersreached'] = 'Ryhmän jäsenten määrä ylittää maksimin $max';
-$messages['internalerror'] = 'Sisäinen virhe. Yritä uudelleen.';
+$messages['internalerror'] = 'Ilmeni sisäinen virhe. Yritä uudelleen.';
$messages['contactdelerror'] = 'Yhteystietoja ei voitu poistaa.';
$messages['contactdeleted'] = 'Yhteystiedot poistettu onnistuneesti.';
$messages['contactrestoreerror'] = 'Poistettujen yhteystietojen palautus epäonnistui.';
@@ -171,4 +167,5 @@ $messages['parentnotwritable'] = 'Kansiota ei voitu siirtää tai luoda valittuu
$messages['messagetoobig'] = 'Viestiosa on liian suuri prosessoitavaksi.';
$messages['attachmentvalidationerror'] = 'Varoitus! Tämä liitetiedosto on epäilyttävä, koska se ei vastaa ilmoitettua tiedostotyyppiä. Jos et luoda lähettäjään, älä avaa liitetiedostoa välttääksesi mahdollista vahingollista aineistoa.<br/><br/><em>Odotettu: $expected; löydetty: $detected</em>';
$messages['noscriptwarning'] = 'Varoitus: Tämä verkkopohjainen sähköpostipalvelu vaatii Javascriptin toimiakseen. Ota Javascript käyttöön selaimesi asetuksista.';
+
?>
diff --git a/program/localization/fr_FR/csv2vcard.inc b/program/localization/fr_FR/csv2vcard.inc
index d28df7a8a..bb77001b5 100644
--- a/program/localization/fr_FR/csv2vcard.inc
+++ b/program/localization/fr_FR/csv2vcard.inc
@@ -15,7 +15,14 @@
| Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
*/
+
+// This is a list of CSV column names specified in CSV file header
+// These must be original texts used in Outlook/Thunderbird exported csv files
+// Encoding UTF-8
+
$map = array();
+
+// MS Outlook 2010
$map['anniversary'] = "Anniversaire de mariage ou fête";
$map['assistants_name'] = "Nom de l''assistant(e)";
$map['assistants_phone'] = "Téléphone de l''assistant(e)";
@@ -62,6 +69,8 @@ $map['spouse'] = "Conjoint(e)";
$map['suffix'] = "Suffixe";
$map['title'] = "Titre";
$map['web_page'] = "Page Web";
+
+// Thunderbird
$map['birth_day'] = "Jour";
$map['birth_month'] = "Mois";
$map['birth_year'] = "Année de naissance";
@@ -82,4 +91,6 @@ $map['work_phone'] = "Tél. professionnel";
$map['work_address'] = "Adresse professionnelle";
$map['work_country'] = "Région";
$map['work_zipcode'] = "Code postal";
+
+// Other
$map['_home_city'] = "Ville";
diff --git a/program/localization/fr_FR/labels.inc b/program/localization/fr_FR/labels.inc
index 14d1066f9..8331bbb54 100644
--- a/program/localization/fr_FR/labels.inc
+++ b/program/localization/fr_FR/labels.inc
@@ -15,21 +15,31 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bienvenue sur $product';
$labels['username'] = 'Utilisateur';
$labels['password'] = 'Mot de passe';
$labels['server'] = 'Serveur';
$labels['login'] = 'Connexion';
+
+// taskbar
$labels['logout'] = 'Déconnexion';
$labels['mail'] = 'Courriel';
$labels['settings'] = 'Paramètres';
$labels['addressbook'] = 'Carnet d\'adresses';
+
+// mailbox names
$labels['inbox'] = 'Messages reçus';
$labels['drafts'] = 'Brouillons';
$labels['sent'] = 'Messages envoyés';
$labels['trash'] = 'Corbeille';
$labels['junk'] = 'Indésirables';
$labels['show_real_foldernames'] = 'Montrer les noms réels pour les dossiers spéciaux';
+
+// message listing
$labels['subject'] = 'Objet';
$labels['from'] = 'De';
$labels['sender'] = 'Expéditeur';
@@ -44,11 +54,13 @@ $labels['priority'] = 'Priorité';
$labels['organization'] = 'Organisation';
$labels['readstatus'] = 'Statut de lecture';
$labels['listoptions'] = 'Lister les options...';
+
$labels['mailboxlist'] = 'Dossiers';
$labels['messagesfromto'] = 'Messages de $from à $to sur $count';
$labels['threadsfromto'] = 'Fil de $from à $to sur $count';
$labels['messagenrof'] = 'Message $nr sur $count';
$labels['fromtoshort'] = '$from – $to de $count';
+
$labels['copy'] = 'Copier';
$labels['move'] = 'Déplacer';
$labels['moveto'] = 'Déplacer vers...';
@@ -56,9 +68,13 @@ $labels['download'] = 'Télécharger';
$labels['open'] = 'Ouvrir';
$labels['showattachment'] = 'Afficher';
$labels['showanyway'] = 'Afficher quand même';
+
$labels['filename'] = 'Nom du fichier';
$labels['filesize'] = 'Taille du fichier';
+
$labels['addtoaddressbook'] = 'Ajouter au carnet d\'adresses';
+
+// weekdays short
$labels['sun'] = 'Dim';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +82,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Jeu';
$labels['fri'] = 'Ven';
$labels['sat'] = 'Sam';
+
+// weekdays long
$labels['sunday'] = 'Dimanche';
$labels['monday'] = 'Lundi';
$labels['tuesday'] = 'Mardi';
@@ -73,6 +91,8 @@ $labels['wednesday'] = 'Mercredi';
$labels['thursday'] = 'Jeudi';
$labels['friday'] = 'Vendredi';
$labels['saturday'] = 'Samedi';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Fév';
$labels['mar'] = 'Mar';
@@ -85,6 +105,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Déc';
+
+// months long
$labels['longjan'] = 'Janvier';
$labels['longfeb'] = 'Février';
$labels['longmar'] = 'Mars';
@@ -97,7 +119,10 @@ $labels['longsep'] = 'Septembre';
$labels['longoct'] = 'Octobre';
$labels['longnov'] = 'Novembre';
$labels['longdec'] = 'Décembre';
+
$labels['today'] = 'Aujourd\'hui';
+
+// toolbar buttons
$labels['refresh'] = 'Actualiser';
$labels['checkmail'] = 'Vérification des nouveaux messages';
$labels['compose'] = 'Composer un nouveau message';
@@ -130,6 +155,7 @@ $labels['moreactions'] = 'Plus d\'actions...';
$labels['more'] = 'Plus';
$labels['back'] = 'Retour';
$labels['options'] = 'Paramètres';
+
$labels['select'] = 'Sélectionner';
$labels['all'] = 'Tous';
$labels['none'] = 'Aucun';
@@ -148,6 +174,7 @@ $labels['expand-all'] = 'Tout afficher';
$labels['expand-unread'] = 'Afficher non-lu(s)';
$labels['collapse-all'] = 'Fermer tous';
$labels['threaded'] = 'Par sujet';
+
$labels['autoexpand_threads'] = 'Développer les sujets';
$labels['do_expand'] = 'Tous les sujets';
$labels['expand_only_unread'] = 'uniquement avec des messages non-lus';
@@ -163,24 +190,27 @@ $labels['listcolumns'] = 'Lister les colonnes';
$labels['listsorting'] = 'Colonne de tri';
$labels['listorder'] = 'Ordre de tri';
$labels['listmode'] = 'Mode d\'affichage de la liste';
+
$labels['folderactions'] = 'Actions du dossier...';
$labels['compact'] = 'Compacter';
$labels['empty'] = 'Vider';
-$labels['importmessages'] = 'Importer des messages';
+
$labels['quota'] = 'Occupation disque';
$labels['unknown'] = 'inconnue';
$labels['unlimited'] = 'illimitée';
+
$labels['quicksearch'] = 'Recherche rapide';
$labels['resetsearch'] = 'Réinitialiser la recherche';
$labels['searchmod'] = 'Portée de la recherche';
$labels['msgtext'] = 'Message entier';
$labels['body'] = 'Corps';
-$labels['type'] = 'Type';
-$labels['namex'] = 'Nom';
+
$labels['openinextwin'] = 'Ouvrir dans une nouvelle fenêtre';
$labels['emlsave'] = 'Télécharger (.eml)';
$labels['changeformattext'] = 'Afficher au format texte';
$labels['changeformathtml'] = 'Afficher au format HTML';
+
+// message compose
$labels['editasnew'] = 'Éditer en tant que nouveau message';
$labels['send'] = 'Envoyer';
$labels['sendmessage'] = 'Envoyer un message';
@@ -192,30 +222,26 @@ $labels['returnreceipt'] = 'Accusé de réception';
$labels['dsn'] = 'Notification d\'état de distribution';
$labels['mailreplyintro'] = 'Le $date, $sender a écrit :';
$labels['originalmessage'] = 'Message original';
+
$labels['editidents'] = 'Modifier les identités';
$labels['spellcheck'] = 'Orthographe';
$labels['checkspelling'] = 'Vérifier l\'orthographe';
$labels['resumeediting'] = 'Retourner à l\'édition';
$labels['revertto'] = 'Revenir à';
-$labels['responses'] = 'Réponses';
-$labels['insertresponse'] = 'Insérer une réponse';
-$labels['manageresponses'] = 'Gérer les réponses';
-$labels['savenewresponse'] = 'Sauvegarder une nouvelle réponse';
-$labels['editresponses'] = 'Editer les réponses';
-$labels['editresponse'] = 'Editer la réponse';
-$labels['responsename'] = 'Nom';
-$labels['responsetext'] = 'Texte de la réponse';
+
$labels['attach'] = 'Joindre';
$labels['attachments'] = 'Fichiers joints';
$labels['upload'] = 'Transférer';
$labels['uploadprogress'] = '$percent ($current sur $total)';
$labels['close'] = 'Fermer';
$labels['messageoptions'] = 'Options du message';
+
$labels['low'] = 'Basse';
$labels['lowest'] = 'La plus basse';
$labels['normal'] = 'Normale';
$labels['high'] = 'Élevée';
$labels['highest'] = 'La plus élevée';
+
$labels['nosubject'] = '(pas de sujet)';
$labels['showimages'] = 'Afficher les images';
$labels['alwaysshow'] = 'Toujours afficher les images de $sender';
@@ -223,19 +249,25 @@ $labels['isdraft'] = 'Ceci est un brouillon.';
$labels['andnmore'] = 'Plus de $nr...';
$labels['togglemoreheaders'] = 'Afficher plus d\'en-têtes du message';
$labels['togglefullheaders'] = 'Afficher/Cacher l\'entête du message';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texte brut';
$labels['savesentmessagein'] = 'Enregistrer le message envoyé dans';
$labels['dontsave'] = 'ne pas enregistrer';
$labels['maxuploadsize'] = 'La taille maximum autorisée pour un fichier est $size';
+
$labels['addcc'] = 'Ajouter Cc';
$labels['addbcc'] = 'Ajouter Cci';
$labels['addreplyto'] = 'Ajouter Répondre à';
$labels['addfollowupto'] = 'Ajouter Faire suivre à';
+
+// mdn
$labels['mdnrequest'] = 'L\'expéditeur de ce message a demandé d\'être prévenu quand vous lirez ce message. Souhaitez-vous prévenir l\'expéditeur ?';
$labels['receiptread'] = 'Accusé de réception (lu)';
$labels['yourmessage'] = 'Ceci est un accusé de réception pour votre message';
$labels['receiptnote'] = 'Note : Cet accusé de réception indique seulement que le message a été affiché sur l\'ordinateur du destinataire. Il n\'y a aucune garantie que le destinataire ait lu ou compris le contenu du message.';
+
+// address boook
$labels['name'] = 'Nom à afficher';
$labels['firstname'] = 'Prénom';
$labels['surname'] = 'Nom';
@@ -270,6 +302,7 @@ $labels['search'] = 'Rechercher';
$labels['advsearch'] = 'Recherche avancée';
$labels['advanced'] = 'Détails';
$labels['other'] = 'Autre';
+
$labels['typehome'] = 'Domicile';
$labels['typework'] = 'Travail';
$labels['typeother'] = 'Autre';
@@ -284,12 +317,14 @@ $labels['typeassistant'] = 'Assistante';
$labels['typehomepage'] = 'Accueil';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Ajouter un champ...';
$labels['addcontact'] = 'Ajouter le contact sélectionné à votre carnet d\'adresses';
$labels['editcontact'] = 'Modifier le contact';
$labels['contacts'] = 'Contacts';
$labels['contactproperties'] = 'Propriétés du contact';
$labels['personalinfo'] = 'Informations personnelles';
+
$labels['edit'] = 'Modifier';
$labels['cancel'] = 'Annuler';
$labels['save'] = 'Enregistrer';
@@ -298,6 +333,7 @@ $labels['rename'] = 'Renommer';
$labels['addphoto'] = 'Ajouter';
$labels['replacephoto'] = 'Remplacer';
$labels['uploadphoto'] = 'Transférer une photo';
+
$labels['newcontact'] = 'Créer un nouveau contact';
$labels['deletecontact'] = 'Supprimer les contacts sélectionnés';
$labels['composeto'] = 'Écrire un message à';
@@ -311,36 +347,41 @@ $labels['newcontactgroup'] = 'Créer un nouveau groupe de contacts';
$labels['grouprename'] = 'Renommer le groupe';
$labels['groupdelete'] = 'Supprimer le groupe';
$labels['groupremoveselected'] = 'Retirer les contacts sélectionnés du groupe';
+
$labels['previouspage'] = 'Montrer page précédente';
$labels['firstpage'] = 'Voir la première page';
$labels['nextpage'] = 'Montrer page suivante';
$labels['lastpage'] = 'Voir la dernière page';
+
$labels['group'] = 'Groupe';
$labels['groups'] = 'Groupes';
-$labels['listgroup'] = 'Liste des membres du groupe';
$labels['personaladrbook'] = 'Adresses personnelles';
+
$labels['searchsave'] = 'Enregistrer la recherche';
$labels['searchdelete'] = 'Supprimer la recherche';
+
$labels['import'] = 'Importer';
$labels['importcontacts'] = 'Importer les contacts';
$labels['importfromfile'] = 'Importer depuis un fichier :';
-$labels['importtarget'] = 'Ajouter les contacts à';
+$labels['importtarget'] = 'Ajouter de nouveaux contact au carnet d’adresses :';
$labels['importreplace'] = 'Remplacer le carnet d\'adresses entier';
-$labels['importgroups'] = 'Importer les affectations de groupe';
-$labels['importgroupsall'] = 'Tous (créer les groupes si nécessaire)';
-$labels['importgroupsexisting'] = 'Uniquement pour les groupes existants';
$labels['importdesc'] = 'Vous pouvez transférer des contacts à partir d\'un carnet d\'adresses existant.<br/>Nous supportons actuellement l\'importation d\'adresses à partir des format de données <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (champs séparés par une virgule).';
$labels['done'] = 'Terminé';
+
+// settings
$labels['settingsfor'] = 'Paramètres pour';
$labels['about'] = 'A propos';
$labels['preferences'] = 'Préférences';
$labels['userpreferences'] = 'Préférences utilisateur';
$labels['editpreferences'] = 'Modifier les préférences utilisateur';
+
$labels['identities'] = 'Identités';
$labels['manageidentities'] = 'Gérer les identités pour ce compte';
$labels['newidentity'] = 'Nouvelle identité';
+
$labels['newitem'] = 'Nouvel élément';
$labels['edititem'] = 'Modifier l\'élément';
+
$labels['preferhtml'] = 'Afficher en HTML';
$labels['defaultcharset'] = 'Encodage par défaut';
$labels['htmlmessage'] = 'Message en HTML';
@@ -362,7 +403,7 @@ $labels['htmleditor'] = 'Composer un message au format HTML';
$labels['htmlonreply'] = 'en réponse aux messages HTML uniquement';
$labels['htmlonreplyandforward'] = 'Transférer ou répondre au message HTML';
$labels['htmlsignature'] = 'Signature HTML';
-$labels['showemail'] = 'Montrer l\'adresse de courriel avec le nom complet';
+$labels['showemail'] = 'Montrer l\'adresse mail avec le nom complet';
$labels['previewpane'] = 'Afficher le panneau d\'aperçu';
$labels['skin'] = 'Thème de l\'interface';
$labels['logoutclear'] = 'Vider la corbeille à la déconnexion';
@@ -423,9 +464,9 @@ $labels['reqmdn'] = 'Toujours demander un avis de réception';
$labels['reqdsn'] = 'Toujours demander une notification d\'état de distribution';
$labels['replysamefolder'] = 'Placer les réponses dans le dossier du message auquel il est répondu';
$labels['defaultabook'] = 'Carnet d\'adresses par défaut';
-$labels['autocompletesingle'] = 'Ne pas tenir compte des adresses de courriel alternatives dans l\'autoremplissage';
+$labels['autocompletesingle'] = 'Ne pas tenir compte des adresses emails alternatives dans l\'autoremplissage';
$labels['listnamedisplay'] = 'Lister les contacts comme';
-$labels['spellcheckbeforesend'] = 'Vérifier l’orthographe avant l’envoi d’un message';
+$labels['spellcheckbeforesend'] = 'Vérifier l’orthographe avant l’envoie d’un message';
$labels['spellcheckoptions'] = 'Options du vérificateur d\'orthographe';
$labels['spellcheckignoresyms'] = 'Ignorer les mots avec des symboles';
$labels['spellcheckignorenums'] = 'Ignorer les mots avec des nombres';
@@ -436,6 +477,7 @@ $labels['standardwindows'] = 'Manipuler les menus surgissants comme des fenêtre
$labels['forwardmode'] = 'Transfert des messages';
$labels['inline'] = 'dans le corps';
$labels['asattachment'] = 'en pièce jointe';
+
$labels['folder'] = 'Dossier';
$labels['folders'] = 'Dossiers';
$labels['foldername'] = 'Nom du dossier';
@@ -456,20 +498,26 @@ $labels['foldertype'] = 'Type de répertoire';
$labels['personalfolder'] = 'Répertoire privé';
$labels['otherfolder'] = 'Répertoire d\'autres utilisateurs';
$labels['sharedfolder'] = 'Répertoire public';
+
$labels['sortby'] = 'Trier par';
$labels['sortasc'] = 'Tri ascendant';
$labels['sortdesc'] = 'Tri descendant';
$labels['undo'] = 'Annuler';
+
$labels['installedplugins'] = 'Extensions installées';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Version';
$labels['source'] = 'Source';
$labels['license'] = 'Licence';
$labels['support'] = 'Obtenir un support technique';
+
+// units
$labels['B'] = 'o';
$labels['KB'] = 'ko';
$labels['MB'] = 'Mo';
$labels['GB'] = 'Go';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Anglais';
$labels['westerneuropean'] = 'Europe de l\'Ouest';
@@ -488,4 +536,5 @@ $labels['vietnamese'] = 'Vietnamien';
$labels['japanese'] = 'Japonais';
$labels['korean'] = 'Coréen';
$labels['chinese'] = 'Chinois';
+
?>
diff --git a/program/localization/fr_FR/messages.inc b/program/localization/fr_FR/messages.inc
index fcf9eaf92..8de50e9e5 100644
--- a/program/localization/fr_FR/messages.inc
+++ b/program/localization/fr_FR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Une erreur est survenue !';
$messages['loginfailed'] = 'L\'authentification a échoué.';
$messages['cookiesdisabled'] = 'Votre navigateur n\'accepte pas les cookies.';
@@ -54,8 +56,8 @@ $messages['contactnotfound'] = 'Le contact demandé n\'a pas été trouvé.';
$messages['contactsearchonly'] = 'Entrez un ou plusieurs mots clés pour trouver des contacts.';
$messages['sendingfailed'] = 'L\'envoi du message a échoué.';
$messages['senttooquickly'] = 'Veuillez patienter $sec s. pour envoyer ce message.';
-$messages['errorsavingsent'] = 'Une erreur est apparue durant l\'enregistrement du message envoyé.';
-$messages['errorsaving'] = 'Une erreur est apparue durant l\'enregistrement.';
+$messages['errorsavingsent'] = 'Une erreur est survenue pendant la sauvegarde du message envoyé.';
+$messages['errorsaving'] = 'Une erreur est survenue pendant la sauvegarde.';
$messages['errormoving'] = 'Impossible de déplacer le(s) message(s).';
$messages['errorcopying'] = 'Impossible de copier le(s) message(s).';
$messages['errordeleting'] = 'Impossible de supprimer le(s) message(s).';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Suppression de la mise en forme...';
$messages['messageopenerror'] = 'Impossible de charger le message depuis serveur.';
$messages['fileuploaderror'] = 'Transfert du fichier échoué';
$messages['filesizeerror'] = 'Le fichier transféré dépasse la taille maximale de $size.';
-$messages['copysuccess'] = '$nr contacts correctement copiés.';
-$messages['movesuccess'] = '$nr contacts correctement déplacés.';
-$messages['copyerror'] = 'Aucun contact n\'a pu être copié.';
-$messages['moveerror'] = 'Aucun contact n\'a pu être déplacé.';
+$messages['copysuccess'] = 'Les $nr adresses ont bien été copiées.';
+$messages['copyerror'] = 'Impossible de copier des adresses.';
$messages['sourceisreadonly'] = 'Cette source d\'adresse est en lecture seule.';
$messages['errorsavingcontact'] = 'Impossible de sauvegarder l\'adresse du contact.';
$messages['movingmessage'] = 'Message(s) en cours de déplacement...';
$messages['copyingmessage'] = 'Message(s) en cours de copie...';
$messages['copyingcontact'] = 'Contact(s) en cours de copie...';
-$messages['movingcontact'] = 'Contact(s) en cours de déplacement...';
$messages['deletingmessage'] = 'Message(s) en cours de suppression...';
$messages['markingmessage'] = 'Message(s) en cours de marquage...';
$messages['addingmember'] = 'Contact(s) en cours d\'ajout dans le groupe...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Import en cours, veuillez patienter...';
$messages['importformaterror'] = 'L\'import a échoué ! Le fichier transféré n\'est pas un fichier d\'import de données valide.';
$messages['importconfirm'] = '<b>Les $inserted contacts ont bien été importés</b>';
$messages['importconfirmskipped'] = '<b>$skipped entrée(s) déjà existante(s)</b>';
-$messages['importmessagesuccess'] = 'Importation de $nr messages avec succès';
-$messages['importmessageerror'] = 'L\'importation a échoué! Le fichier envoyé n\'est pas un message valide ou un fichier au format mailbox';
$messages['opnotpermitted'] = 'Cette opération n\'est pas permise !';
$messages['nofromaddress'] = 'Courriel manquant dans l\'identité sélectionnée.';
$messages['editorwarning'] = 'Passer à l\'éditeur de texte brut causera la perte du formatage du texte. Souhaitez-vous continuer ?';
@@ -142,7 +139,7 @@ $messages['smtperror'] = 'Erreur SMTP : $msg';
$messages['emailformaterror'] = 'Courriel incorrect : $email';
$messages['toomanyrecipients'] = 'Trop de destinataires. Réduisez leur nombre à $max maximum.';
$messages['maxgroupmembersreached'] = 'Le nombre de membres du groupe dépasse le maximum de $max.';
-$messages['internalerror'] = 'Une erreur interne est apparue. Merci de ré-essayer.';
+$messages['internalerror'] = 'Une erreur interne est survenue. Veuillez réessayer.';
$messages['contactdelerror'] = 'Impossible de supprimer le(s) contact(s).';
$messages['contactdeleted'] = 'Contact(s) correctement supprimé(s).';
$messages['contactrestoreerror'] = 'Impossible de restaurer le(s) contact(s) supprimé(s).';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'Impossible de créer/déplacer le dossier dans
$messages['messagetoobig'] = 'Le message est trop gros pour être traité.';
$messages['attachmentvalidationerror'] = 'ATTENTION ! Cette pièce jointe est suspecte car son type ne correspond pas au type déclaré dans ce message. Si vous ne faites pas confiance à l\'expéditeur, vous ne devriez pas l\'ouvrir dans le navigateur, car il peut contenir des contenus malveillants.<br/><br/><em>Attendu : $expected; trouvé : $detected</em>';
$messages['noscriptwarning'] = 'Atention : Ce service de webmail nécessite Javascript ! Pour pouvoir l\'utiliser, merci d\'activer Javascript dans les préférences de votre navigateur.';
+
?>
diff --git a/program/localization/fy_NL/labels.inc b/program/localization/fy_NL/labels.inc
index dc1e57969..891371f58 100644
--- a/program/localization/fy_NL/labels.inc
+++ b/program/localization/fy_NL/labels.inc
@@ -15,32 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
+$labels['welcome'] = 'Welcome to $product';
$labels['username'] = 'Brûkersnamme';
$labels['password'] = 'Wachtwurd';
$labels['server'] = 'Server';
$labels['login'] = 'Ynlogge';
+
+// taskbar
$labels['logout'] = 'Ôfmelde';
$labels['mail'] = 'Mail';
$labels['settings'] = 'Ynstellingen';
$labels['addressbook'] = 'Adresboek';
+
+// mailbox names
+$labels['inbox'] = 'Inbox';
$labels['drafts'] = 'Konsepten';
$labels['sent'] = 'Stjoerd';
$labels['trash'] = 'Jiskefet';
+$labels['junk'] = 'Junk';
+
+// message listing
$labels['subject'] = 'Ûnderwerp';
$labels['from'] = 'Fan';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Oan';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Antwurd oan';
$labels['followupto'] = 'Oanslutend oan';
$labels['date'] = 'Datum';
+$labels['size'] = 'Size';
+$labels['priority'] = 'Priority';
$labels['organization'] = 'Organisaasje';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Mappen';
+$labels['messagesfromto'] = 'Messages $from to $to of $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
+$labels['messagenrof'] = 'Message $nr of $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Kopieare';
$labels['move'] = 'Ferplaatse';
+$labels['moveto'] = 'Move to...';
$labels['download'] = 'Delhelje';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Toane';
+$labels['showanyway'] = 'Show it anyway';
+
+$labels['filename'] = 'File name';
$labels['filesize'] = 'Triemgrutte';
+
+$labels['addtoaddressbook'] = 'Add to address book';
+
+// weekdays short
$labels['sun'] = 'sne';
$labels['mon'] = 'moa';
$labels['tue'] = 'tii';
@@ -48,6 +81,8 @@ $labels['wed'] = 'woa';
$labels['thu'] = 'toa';
$labels['fri'] = 'fre';
$labels['sat'] = 'sno';
+
+// weekdays long
$labels['sunday'] = 'snein';
$labels['monday'] = 'moandei';
$labels['tuesday'] = 'tiisdei';
@@ -55,6 +90,8 @@ $labels['wednesday'] = 'woansdei';
$labels['thursday'] = 'tongersdei';
$labels['friday'] = 'freed';
$labels['saturday'] = 'sneon';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mrt';
@@ -67,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'des';
+
+// months long
$labels['longjan'] = 'jannewaris';
$labels['longfeb'] = 'febrewaris';
$labels['longmar'] = 'maart';
@@ -79,8 +118,421 @@ $labels['longsep'] = 'septimber';
$labels['longoct'] = 'oktober';
$labels['longnov'] = 'novimber';
$labels['longdec'] = 'desimber';
+
$labels['today'] = 'Hjoed';
+
+// toolbar buttons
$labels['refresh'] = 'Ferfarskje';
+$labels['checkmail'] = 'Check for new messages';
+$labels['compose'] = 'Compose';
+$labels['writenewmessage'] = 'Create a new message';
$labels['reply'] = 'Beäntwurdzje';
+$labels['replytomessage'] = 'Reply to sender';
+$labels['replytoallmessage'] = 'Reply to list or to sender and all recipients';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
+$labels['forwardmessage'] = 'Forward the message';
+$labels['deletemessage'] = 'Delete message';
+$labels['movemessagetotrash'] = 'Move message to trash';
+$labels['printmessage'] = 'Print this message';
+$labels['previousmessage'] = 'Show previous message';
+$labels['firstmessage'] = 'Show first message';
+$labels['nextmessage'] = 'Show next message';
+$labels['lastmessage'] = 'Show last message';
+$labels['backtolist'] = 'Back to message list';
+$labels['viewsource'] = 'Show source';
+$labels['mark'] = 'Mark';
+$labels['markmessages'] = 'Mark messages';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
+$labels['select'] = 'Select';
+$labels['all'] = 'All';
+$labels['none'] = 'None';
+$labels['currpage'] = 'Current page';
+$labels['unread'] = 'Unread';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
+$labels['nonesort'] = 'None';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
+$labels['compact'] = 'Compact';
+$labels['empty'] = 'Empty';
+
+$labels['quota'] = 'Disk usage';
+$labels['unknown'] = 'unknown';
+$labels['unlimited'] = 'unlimited';
+
+$labels['quicksearch'] = 'Quick search';
+$labels['resetsearch'] = 'Reset search';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
+$labels['sendmessage'] = 'Send message';
+$labels['savemessage'] = 'Save as draft';
+$labels['addattachment'] = 'Attach a file';
+$labels['charset'] = 'Charset';
+$labels['editortype'] = 'Editor type';
+$labels['returnreceipt'] = 'Return receipt';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
+$labels['checkspelling'] = 'Check spelling';
+$labels['resumeediting'] = 'Resume editing';
+$labels['revertto'] = 'Revert to';
+
+$labels['attach'] = 'Attach';
+$labels['attachments'] = 'Attachments';
+$labels['upload'] = 'Upload';
+$labels['uploadprogress'] = '$percent ($current from $total)';
+$labels['close'] = 'Close';
+$labels['messageoptions'] = 'Message options...';
+
+$labels['low'] = 'Low';
+$labels['lowest'] = 'Lowest';
+$labels['normal'] = 'Normal';
+$labels['high'] = 'High';
+$labels['highest'] = 'Highest';
+
+$labels['nosubject'] = '(no subject)';
+$labels['showimages'] = 'Display images';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Plain text';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
+$labels['name'] = 'Display Name';
+$labels['firstname'] = 'First Name';
+$labels['surname'] = 'Last Name';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
+$labels['email'] = 'Email';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
+$labels['addcontact'] = 'Add new contact';
+$labels['editcontact'] = 'Edit contact';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
+$labels['edit'] = 'Edit';
+$labels['cancel'] = 'Cancel';
+$labels['save'] = 'Save';
+$labels['delete'] = 'Delete';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
+$labels['newcontact'] = 'Create new contact card';
+$labels['deletecontact'] = 'Delete selected contacts';
+$labels['composeto'] = 'Compose mail to';
+$labels['contactsfromto'] = 'Contacts $from to $to of $count';
+$labels['print'] = 'Print';
+$labels['export'] = 'Export';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
+$labels['previouspage'] = 'Show previous page';
+$labels['firstpage'] = 'Show first page';
+$labels['nextpage'] = 'Show next page';
+$labels['lastpage'] = 'Show last page';
+
+$labels['group'] = 'Group';
+$labels['groups'] = 'Groups';
+$labels['personaladrbook'] = 'Personal Addresses';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
+$labels['settingsfor'] = 'Settings for';
+$labels['about'] = 'About';
+$labels['preferences'] = 'Preferences';
+$labels['userpreferences'] = 'User preferences';
+$labels['editpreferences'] = 'Edit user preferences';
+
+$labels['identities'] = 'Identities';
+$labels['manageidentities'] = 'Manage identities for this account';
+$labels['newidentity'] = 'New identity';
+
+$labels['newitem'] = 'New item';
+$labels['edititem'] = 'Edit item';
+
+$labels['preferhtml'] = 'Display HTML';
+$labels['defaultcharset'] = 'Default Character Set';
+$labels['htmlmessage'] = 'HTML Message';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
+$labels['prettydate'] = 'Pretty dates';
+$labels['setdefault'] = 'Set default';
+$labels['autodetect'] = 'Auto';
+$labels['language'] = 'Language';
+$labels['timezone'] = 'Time zone';
+$labels['pagesize'] = 'Rows per page';
+$labels['signature'] = 'Signature';
+$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'Compose HTML messages';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
+$labels['htmlsignature'] = 'HTML signature';
+$labels['showemail'] = 'Show email address with display name';
+$labels['previewpane'] = 'Show preview pane';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
+$labels['autosavedraft'] = 'Automatically save draft';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
+$labels['never'] = 'never';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
+$labels['folder'] = 'Folder';
$labels['folders'] = 'Mappen';
+$labels['foldername'] = 'Folder name';
+$labels['subscribed'] = 'Subscribed';
+$labels['messagecount'] = 'Messages';
+$labels['create'] = 'Create';
+$labels['createfolder'] = 'Create new folder';
+$labels['managefolders'] = 'Manage folders';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
+$labels['sortby'] = 'Sort by';
+$labels['sortasc'] = 'Sort ascending';
+$labels['sortdesc'] = 'Sort descending';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/fy_NL/messages.inc b/program/localization/fy_NL/messages.inc
index da4e39679..1dacf4adc 100644
--- a/program/localization/fy_NL/messages.inc
+++ b/program/localization/fy_NL/messages.inc
@@ -2,17 +2,15 @@
/*
+-----------------------------------------------------------------------+
- | localization/<lang>/messages.inc |
+ | localization/fy_NL/messages.inc |
| |
- | Localization file of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
- | |
- | Licensed under the GNU General Public License version 3 or |
- | any later version with exceptions for skins & plugins. |
- | See the README file for a full license statement. |
+ | Language file of the Roundcube Webmail client |
+ | Copyright (C) 2012, The Roundcube Dev Team |
+ | Licensed under the GNU General Public License |
| |
+-----------------------------------------------------------------------+
-
- For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
+ | Author: unknown |
+ +-----------------------------------------------------------------------+
*/
-?>
+
+$messages = array(); \ No newline at end of file
diff --git a/program/localization/ga_IE/labels.inc b/program/localization/ga_IE/labels.inc
index dc33d008d..9f0da6550 100644
--- a/program/localization/ga_IE/labels.inc
+++ b/program/localization/ga_IE/labels.inc
@@ -15,40 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Fáilte go $product';
$labels['username'] = 'Úsáideoir';
$labels['password'] = 'Pasfhocal';
$labels['server'] = 'Freastalaí';
$labels['login'] = 'Logáil isteach';
+
+// taskbar
$labels['logout'] = 'Logáil amach';
$labels['mail'] = 'Postas';
$labels['settings'] = 'Socruithe Pearsanta';
$labels['addressbook'] = 'Leabhair Seoltaí';
+
+// mailbox names
$labels['inbox'] = 'Isteach';
$labels['drafts'] = 'Dréachtaí';
$labels['sent'] = 'Amach';
$labels['trash'] = 'Bosca bruscair';
$labels['junk'] = 'Dramhaíl';
+
+// message listing
$labels['subject'] = 'Ãbhair';
$labels['from'] = 'Seolaí';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Faighteoir';
$labels['cc'] = 'Cóipeáil';
$labels['bcc'] = 'Cóip cheilte';
$labels['replyto'] = 'Freagair go';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Dáta';
$labels['size'] = 'Méid';
$labels['priority'] = 'Tosaíocht';
$labels['organization'] = 'Eagraíocht';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Fillteán';
$labels['messagesfromto'] = 'Teachtaireachta as $from go $to as $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Teachtaireacht $nr as $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Cóipeáil';
$labels['move'] = 'Bog';
$labels['moveto'] = 'bog go...';
$labels['download'] = 'síos-luchtú';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Comhad';
$labels['filesize'] = 'Toirt';
+
$labels['addtoaddressbook'] = 'Sábháil i mo leabhair seoltaí';
+
+// weekdays short
$labels['sun'] = 'Do';
$labels['mon'] = 'Lu';
$labels['tue'] = 'Mh';
@@ -56,6 +81,8 @@ $labels['wed'] = 'Ch';
$labels['thu'] = 'Dé';
$labels['fri'] = 'Ao';
$labels['sat'] = 'Sa';
+
+// weekdays long
$labels['sunday'] = 'Domhnach';
$labels['monday'] = 'An Luan';
$labels['tuesday'] = 'An Mháirt';
@@ -63,6 +90,8 @@ $labels['wednesday'] = 'An Chéadaoin';
$labels['thursday'] = 'An Déardaoin';
$labels['friday'] = 'Aoine';
$labels['saturday'] = 'An Satharn';
+
+// months short
$labels['jan'] = 'Ean';
$labels['feb'] = 'Fea';
$labels['mar'] = 'Már';
@@ -71,8 +100,12 @@ $labels['may'] = 'Bea';
$labels['jun'] = 'Mei';
$labels['jul'] = 'Iúi';
$labels['aug'] = 'Lún';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
$labels['nov'] = 'Sam';
$labels['dec'] = 'Nol';
+
+// months long
$labels['longjan'] = 'Eanáir';
$labels['longfeb'] = 'Feabhra';
$labels['longmar'] = 'Márta';
@@ -85,15 +118,25 @@ $labels['longsep'] = 'Meán Fómhair';
$labels['longoct'] = 'Deireadh Fómhair';
$labels['longnov'] = 'Samhain';
$labels['longdec'] = 'Nollag';
+
$labels['today'] = 'Inniu';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Seiceáil chun teachtaireacht nua';
$labels['compose'] = 'Scríobh teachtaireacht';
$labels['writenewmessage'] = 'Scríobh teachtaireacht nua';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Scríobh freagra chun an seolaí';
$labels['replytoallmessage'] = 'Scríobh freagra chun an seolaí agus na faighteoir';
$labels['replyall'] = 'Freagra gach';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Seol ar aghaidh an teachtaireacht';
$labels['deletemessage'] = 'Chuir an teachtaireacht i mo bosca bruscair';
+$labels['movemessagetotrash'] = 'Move message to trash';
$labels['printmessage'] = 'Priontáil an teachtaireacht seo';
$labels['previousmessage'] = 'Taispeáin an teachtaireacht roimhe seo';
$labels['firstmessage'] = 'Taispeáin an cead teachtaireacht';
@@ -101,92 +144,395 @@ $labels['nextmessage'] = 'Taispeáin an teachtaireacht ina dhiaidh sin';
$labels['lastmessage'] = 'Taispeáin an teachtaireacht deireanach';
$labels['backtolist'] = 'Téigh ar ais go dtí an liosta teachtaireachta';
$labels['viewsource'] = 'Éiriú bunchód';
+$labels['mark'] = 'Mark';
+$labels['markmessages'] = 'Mark messages';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'Togh';
$labels['all'] = 'An uile';
$labels['none'] = 'Aon cheann';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Na rudaí nach bhuil corraithe';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'Aon cheann';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Comhbhrúigh';
$labels['empty'] = 'Folmhaigh';
+
$labels['quota'] = 'Toilleadh diosca atá athláimhe';
$labels['unknown'] = 'gan aithne';
$labels['unlimited'] = 'gan teorainn';
+
$labels['quicksearch'] = 'Mearcuardaigh';
$labels['resetsearch'] = 'Athshocraigh an cuardach';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Seol mo teachtaireacht láithreach bonn';
$labels['savemessage'] = 'Sábháil an dréachta seo';
$labels['addattachment'] = 'Suimigh Iatán';
$labels['charset'] = 'Foireann carachtar';
$labels['editortype'] = 'Sort eagarthóir';
$labels['returnreceipt'] = 'Admháil léite';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Fiosrú ar mo litriú';
$labels['resumeediting'] = 'Athdhúisigh eagarthóireacht';
$labels['revertto'] = 'Filleadh ar';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Iatání';
$labels['upload'] = 'Aistriú suas';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Dún';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Ãseal';
$labels['lowest'] = 'Is Ãsle';
$labels['normal'] = 'Gnách';
$labels['high'] = 'Ard';
$labels['highest'] = 'Is Airde';
+
$labels['nosubject'] = '(Níl aon Ãbhair)';
$labels['showimages'] = 'Taispeáin na híomhánna';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Téacs amháin';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
$labels['name'] = 'Leasainm';
$labels['firstname'] = 'Ainm baiste';
$labels['surname'] = 'Sloinne';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'Ríomhphost';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Sábháil duine nua';
$labels['editcontact'] = 'Chuir chara in eagar';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Athraigh';
$labels['cancel'] = 'Cealaigh';
$labels['save'] = 'Sábháil';
$labels['delete'] = 'Scrios';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Scríobh carta teagmháil nua';
$labels['deletecontact'] = 'Scrios na daoine seo';
$labels['composeto'] = 'Scríobh teachtaireacht go';
$labels['contactsfromto'] = 'Daoine as $from to $to as $count';
$labels['print'] = 'Priontáil';
$labels['export'] = 'Easportáil';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Taispeáin an foireann roimhe seo';
$labels['firstpage'] = 'Taispeáin an céad foireann';
$labels['nextpage'] = 'Taispeáin an foireann ina dhiaidh sin';
$labels['lastpage'] = 'Taispeáin an foireann deireanach';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Grúpaí';
$labels['personaladrbook'] = 'Seoltaí Pearsanta';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'Socruithe chun';
+$labels['about'] = 'About';
$labels['preferences'] = 'Tosaíocht';
$labels['userpreferences'] = 'Tosaíocht Pearsanta';
$labels['editpreferences'] = 'Athraigh tosaíocht pearsanta';
+
$labels['identities'] = 'Céannachtaí';
$labels['manageidentities'] = 'Stiúir céannachtaí i cuntas seo';
$labels['newidentity'] = 'Céannacht nua';
+
$labels['newitem'] = 'Mír nua';
$labels['edititem'] = 'Athraigh mhír';
+
$labels['preferhtml'] = 'Taispeáin an HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Teachtaireacht HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Dátaí Dheas';
$labels['setdefault'] = 'Socraigh an réamhshocraithe';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Teanga';
$labels['timezone'] = 'Crios ama';
$labels['pagesize'] = 'Rónna in aghaidh gach leathanach';
$labels['signature'] = 'Mana clabhsúir';
$labels['dstactive'] = 'Laethúil um shamhradh';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Scríobh teachtaireachta HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Mana clabhsúir HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Taispeáin an pána réamhamharc';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'Sábháil dréachta go huathoibríoch';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'riamh';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Fillteán';
$labels['folders'] = 'Fillteán';
$labels['foldername'] = 'Ainm fillteán';
$labels['subscribed'] = 'Síntiú';
+$labels['messagecount'] = 'Messages';
$labels['create'] = 'Cruthaigh';
$labels['createfolder'] = 'Cruthaigh fillteán nua';
$labels['managefolders'] = 'Stiúir na fillteán';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Sórtáil trí';
$labels['sortasc'] = 'Sórtáil in ord méadaitheach';
$labels['sortdesc'] = 'Sórtáil in ord neartaitheach';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ga_IE/messages.inc b/program/localization/ga_IE/messages.inc
index b52fbe657..70aa28a36 100644
--- a/program/localization/ga_IE/messages.inc
+++ b/program/localization/ga_IE/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Theip an iarraidh chun logáil tú isteach';
$messages['cookiesdisabled'] = 'Níor glac do sracléitheoir an fianán seisiúin';
$messages['sessionerror'] = 'Tá an seisiúin neamhbhailí nó as feidhm';
$messages['storageerror'] = 'Theip an iarraidh chun nasc go dtí an freastalaí Prótacal Rochtana Teachtaireachtaí Idirlín (IMAP)';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Ní bhfuair mé aon teachtaireacht i bosca postas seo';
$messages['loggedout'] = 'D\'éirigh tú logáil amach. Slán Leat!';
$messages['mailboxempty'] = 'Tá an bosca postas folamh';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Fan nóiméad, ag lódáil...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Ag lódáil sonraí...';
$messages['checkingmail'] = 'Ag seiceáil chun teachtaireacht nua...';
$messages['sendingmessage'] = 'Ag seol mo teachtaireacht láithreach bonn...';
@@ -32,38 +48,124 @@ $messages['messagesaved'] = 'Sábháil mé an teachtaireacht i dréachtaí';
$messages['successfullysaved'] = 'D\'éirigh mé agus sábháil mé';
$messages['addedsuccessfully'] = 'D\'éirigh mé agus shábháil mé duine nua go dtí an Leabhair Seoltaí';
$messages['contactexists'] = 'Tá duine i do Leabhair Seoltaí agus tá an seoladh ríomhphost seo aige';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Chun do príobháide a cosain, choiscinn na híomhánna san teachtaireacht seo';
$messages['encryptedmessage'] = 'Tá an teachtaireacht seo i criptiúchán, Níl an cumas agam chun é a tionscail';
$messages['nocontactsfound'] = 'Ní raibh aon buine san Leabhair Seoltaí seo';
$messages['contactnotfound'] = 'Ní bhfuair mé an duine seo';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Theip an iarraidh chun an teachtaireacht a seol';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Theip mé agus ní shábháil';
$messages['errormoving'] = 'Theip mé agus ní bog an teachtaireacht';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Theip mé agus níor scrios me an teachtaireacht';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Ar mhaith leat scrios na daoine seo?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Ar mhaith leat scrios na teachtaireacht seo?';
$messages['deletefolderconfirm'] = 'Ar mhaith leat scrios an fillteán seo?';
$messages['purgefolderconfirm'] = 'Ar mhaith leat scrios gach teachtaireacht san fillteán seo?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Níor chríochnaigh tú an foirm';
$messages['noemailwarning'] = 'Abair liom seoladh ríomhphost nach bfhuil neamhbhaillí';
$messages['nonamewarning'] = 'Abair liom do ainm';
$messages['nopagesizewarning'] = 'Abair liom saghas leathanaigh';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Abair liom faighteoir amhain ar a laghad';
$messages['nosubjectwarning'] = 'Níl aon ábhair ar an teachtaireacht, ba mhaith tú déarfaidh mé ábair?';
$messages['nobodywarning'] = 'Níl aon teacs san teachtaireacht, ba mhaith tú déarfaidh mé teachtaireacht ar bith?';
$messages['notsentwarning'] = 'Theip an iarraidh chun an teachtaireacht a seo. ba mhaith tú scrios do teachtaireacht?';
$messages['noldapserver'] = 'Abair liom eolaire LDAP chun é a cuardaigh';
$messages['nosearchname'] = 'Abair liom ainm duine nó seoladh ríomhphost';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'Fuair mé $n teachtaireacht';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Ní bhfuair mé aon rud as an ceist seo';
$messages['searching'] = 'Ag tástáil...';
$messages['checking'] = 'Bím ag dhéanamh na mhaoirseachtí...';
$messages['nospellerrors'] = 'Ní bhfuair mé aon earráidí i teachtaireacht seo';
$messages['folderdeleted'] = 'D\'éirigh mé, Scrios mé an fillteán';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'D\'éirigh mé, Scrios mé';
$messages['converting'] = 'Scrios mé formáidithe as an teachtaireacht seo';
$messages['messageopenerror'] = 'Theip orm chun an teachtaireacht seo a tarrtháil as an freastalaí';
$messages['fileuploaderror'] = 'Theip an suas-luchtú';
$messages['filesizeerror'] = 'Beigh an comhad ró-mhor. Is ea $size uas-saghas chun admháil léite';
+$messages['copysuccess'] = 'D\'éirigh mé agus chuir mé $nr seolagh i do Leabhair Seoltaí';
+$messages['copyerror'] = 'Theip mé agus níor dfhag mé aon seolagh';
$messages['sourceisreadonly'] = 'Tá an foinse seolaigh seo inléite amháin';
$messages['errorsavingcontact'] = 'Theip mé, Níl an cumas agam an seolagh seo a sábháil';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/gl_ES/labels.inc b/program/localization/gl_ES/labels.inc
index 780d47d77..5905ea4b9 100644
--- a/program/localization/gl_ES/labels.inc
+++ b/program/localization/gl_ES/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Benvido a $product';
$labels['username'] = 'Nome de usuario';
$labels['password'] = 'Contrasinal';
$labels['server'] = 'Servidor';
$labels['login'] = 'Acceder';
+
+// taskbar
$labels['logout'] = 'Saír';
$labels['mail'] = 'Caixa de entrada';
$labels['settings'] = 'Axustes persoais';
$labels['addressbook'] = 'Caderno de enderezos';
+
+// mailbox names
$labels['inbox'] = 'Caixa de entrada';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Cubo do lixo';
$labels['junk'] = 'Correo lixo';
-$labels['show_real_foldernames'] = 'Amosar nomes reáis para cartafois especiáis';
+
+// message listing
$labels['subject'] = 'Asunto';
$labels['from'] = 'Remitente';
$labels['sender'] = 'Remitente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioridade';
$labels['organization'] = 'Organización';
$labels['readstatus'] = 'Estado da lectura';
$labels['listoptions'] = 'Opcións de lista...';
+
$labels['mailboxlist'] = 'Cartafoles';
$labels['messagesfromto'] = 'Mensaxes da $from á $to de $count';
$labels['threadsfromto'] = 'Fíos do $from ao $to de $count';
$labels['messagenrof'] = 'Mensaxe $nr de $count';
$labels['fromtoshort'] = '$from - $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'Mover a...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Descargar';
$labels['open'] = 'Abrir';
$labels['showattachment'] = 'Amosar';
$labels['showanyway'] = 'Amosala de tódolos xeitos';
+
$labels['filename'] = 'Nome de ficheiro';
$labels['filesize'] = 'Tamaño de ficheiro';
+
$labels['addtoaddressbook'] = 'Engadir ao caderno de enderezos';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mér';
$labels['thu'] = 'Xov';
$labels['fri'] = 'Ven';
$labels['sat'] = 'Sáb';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Luns';
$labels['tuesday'] = 'Martes';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Mércores';
$labels['thursday'] = 'Xoves';
$labels['friday'] = 'Venres';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Xan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set';
$labels['oct'] = 'Out';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Xaneiro';
$labels['longfeb'] = 'Febreiro';
$labels['longmar'] = 'Marzo';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Setembro';
$labels['longoct'] = 'Outubro';
$labels['longnov'] = 'Novembro';
$labels['longdec'] = 'Decembro';
+
$labels['today'] = 'Hoxe';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Procurar novas mensaxes';
$labels['compose'] = 'Redactar unha mensaxe';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Máis accións...';
$labels['more'] = 'Máis';
$labels['back'] = 'Atrás';
$labels['options'] = 'Opcións';
+
$labels['select'] = 'Seleccionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Ningunha';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandir todos';
$labels['expand-unread'] = 'Expandir os non lidos';
$labels['collapse-all'] = 'Contraer todos';
$labels['threaded'] = 'Agrupar conversas';
+
$labels['autoexpand_threads'] = 'Expandir os fíos de mensaxes';
$labels['do_expand'] = 'tódolos fíos';
$labels['expand_only_unread'] = 'só con mensaxes non lidas';
@@ -163,22 +189,27 @@ $labels['listcolumns'] = 'Enumerar columnas';
$labels['listsorting'] = 'Ordenar pola columna';
$labels['listorder'] = 'Ordenación';
$labels['listmode'] = 'Modo de vista da lista';
+
$labels['folderactions'] = 'Accións cos cartafoles';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Baleirar';
-$labels['importmessages'] = 'Importar mensaxes';
+
$labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'descoñecido';
$labels['unlimited'] = 'ilimitado';
+
$labels['quicksearch'] = 'Busca rápida';
$labels['resetsearch'] = 'Restablecer a busca';
$labels['searchmod'] = 'Modificadores de busca';
$labels['msgtext'] = 'Mensaxe enteira';
$labels['body'] = 'Corpo';
+
$labels['openinextwin'] = 'Abrir nunha nova fiestra';
$labels['emlsave'] = 'Gardar (.eml)';
$labels['changeformattext'] = 'Amosar en texto plano';
$labels['changeformathtml'] = 'Amosar en HTML';
+
+// message compose
$labels['editasnew'] = 'Editar como nova';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar a mensaxe agora';
@@ -190,22 +221,26 @@ $labels['returnreceipt'] = 'Notificación da entrega';
$labels['dsn'] = 'Notificación do estado de envío (DSN)';
$labels['mailreplyintro'] = 'O $date, $sender escribiu:';
$labels['originalmessage'] = 'Mensaxe orixinal';
+
$labels['editidents'] = 'Modificar identidades';
$labels['spellcheck'] = 'Ortografía';
$labels['checkspelling'] = 'Revisar a ortografía';
$labels['resumeediting'] = 'Voltar á edición';
$labels['revertto'] = 'Voltar a';
+
$labels['attach'] = 'Anexar';
$labels['attachments'] = 'Ficheiros anexos';
$labels['upload'] = 'Cargar';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Pechar';
$labels['messageoptions'] = 'Opcións da mensaxe...';
+
$labels['low'] = 'Baixa';
$labels['lowest'] = 'A máis baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'A máis alta';
+
$labels['nosubject'] = '(Sen asunto)';
$labels['showimages'] = 'Amosar as imaxes';
$labels['alwaysshow'] = 'Amosar sempre as imaxes nas mensaxes de $sender';
@@ -213,19 +248,25 @@ $labels['isdraft'] = 'Esta mensaxe é un borrador';
$labels['andnmore'] = '$nr máis...';
$labels['togglemoreheaders'] = 'Amosar máis cabecerias';
$labels['togglefullheaders'] = 'Conmutar cabeceiras en bruto';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Só texto';
$labels['savesentmessagein'] = 'Gardar a mensaxe enviada en';
$labels['dontsave'] = 'non gardar';
$labels['maxuploadsize'] = 'O tamaño máximo permitido por ficheiro é de $size';
+
$labels['addcc'] = 'Engadir copia (CC)';
$labels['addbcc'] = 'Engadir copia oculta (BCC)';
$labels['addreplyto'] = 'Engadir respostar a (Reply-To)';
$labels['addfollowupto'] = 'Engadir respostar a todos (Followup-To)';
+
+// mdn
$labels['mdnrequest'] = 'O remitente desta mensaxe pediu ser notificado cando vostede a lea. Quere notificar ao remitente?';
$labels['receiptread'] = 'Notificación da entrega da mensaxe (lectura)';
$labels['yourmessage'] = 'Esta é unha notificación da entrega da súa mensaxe';
$labels['receiptnote'] = 'Nota: Esta notificación só confirma que a mensaxe se abriu no computador do destinatario. Non asegura que o destinatario a lera ou entendera o seu contido.';
+
+// address boook
$labels['name'] = 'Nome completo';
$labels['firstname'] = 'Nome';
$labels['surname'] = 'Apelidos';
@@ -260,6 +301,7 @@ $labels['search'] = 'Procurar';
$labels['advsearch'] = 'Procura avanzada';
$labels['advanced'] = 'Avanzado';
$labels['other'] = 'Outro';
+
$labels['typehome'] = 'Casa';
$labels['typework'] = 'Traballo';
$labels['typeother'] = 'Outro';
@@ -274,12 +316,14 @@ $labels['typeassistant'] = 'Asistente';
$labels['typehomepage'] = 'Páxina principal';
$labels['typeblog'] = 'Blogue';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Engadir campo';
$labels['addcontact'] = 'Engadir novo contacto';
$labels['editcontact'] = 'Modificar este contacto';
$labels['contacts'] = 'Contactos';
$labels['contactproperties'] = 'Propiedades do contacto';
$labels['personalinfo'] = 'Información persoal';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Gardar';
@@ -288,6 +332,7 @@ $labels['rename'] = 'Mudar o nome';
$labels['addphoto'] = 'Engadir';
$labels['replacephoto'] = 'Substituír';
$labels['uploadphoto'] = 'Subir foto';
+
$labels['newcontact'] = 'Novo contacto';
$labels['deletecontact'] = 'Eliminar os contactos seleccionados';
$labels['composeto'] = 'Redactar mensaxe para';
@@ -301,31 +346,41 @@ $labels['newcontactgroup'] = 'Crear novo grupo de contactos';
$labels['grouprename'] = 'Mudar o nome do grupo';
$labels['groupdelete'] = 'Borrar o grupo';
$labels['groupremoveselected'] = 'Eliminar do grupo os contactos seleccionados';
+
$labels['previouspage'] = 'Amosar o grupo anterior';
$labels['firstpage'] = 'Amosar o primeiro grupo';
$labels['nextpage'] = 'Amosar o seguinte grupo';
$labels['lastpage'] = 'Amosar o último grupo';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
$labels['personaladrbook'] = 'Enderezos persoais';
+
$labels['searchsave'] = 'Gardar procura';
$labels['searchdelete'] = 'Eliminar procura';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contactos';
$labels['importfromfile'] = 'Importar desde ficheiro:';
+$labels['importtarget'] = 'Engadir contactos ao caderno de enderezos:';
$labels['importreplace'] = 'Substituír completamente o caderno de enderezos';
$labels['importdesc'] = 'Pode cargar contactos desde un caderno de enderezos preexistente.<br/>Pódense importar enderezos en formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (valores separados por comas)';
$labels['done'] = 'Rematado';
+
+// settings
$labels['settingsfor'] = 'Axustes de';
$labels['about'] = 'Acerca de';
$labels['preferences'] = 'Preferencias';
$labels['userpreferences'] = 'Preferencias de usuario';
$labels['editpreferences'] = 'Editar preferencias de usuario';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Administrar as identidades desta conta';
$labels['newidentity'] = 'Nova identidade';
+
$labels['newitem'] = 'Novo';
$labels['edititem'] = 'Editar';
+
$labels['preferhtml'] = 'Prefiro HTML';
$labels['defaultcharset'] = 'Xogo de caracteres por omisión';
$labels['htmlmessage'] = 'Mensaxe HTML';
@@ -347,7 +402,7 @@ $labels['htmleditor'] = 'Redactar mensaxes HTML';
$labels['htmlonreply'] = 'só cando se resposte a unha mensaxe HTML';
$labels['htmlonreplyandforward'] = 'ao reenviar ou respostar a unha mensaxe HTML';
$labels['htmlsignature'] = 'Sinatura HTML';
-$labels['showemail'] = 'Amosar enderezo de correo co nome en pantalla';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Amosar previsualización';
$labels['skin'] = 'Aspecto da interface';
$labels['logoutclear'] = 'Baleirar o cubo do lixo ao saír';
@@ -417,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorar as palabras con números';
$labels['spellcheckignorecaps'] = 'Ignorar as palabras escritas en maiúsculas';
$labels['addtodict'] = 'Engadir ao diccionario';
$labels['mailtoprotohandler'] = 'Rexistrar o manexador de protocolo para as ligazóns "mailto:"';
-$labels['standardwindows'] = 'Manexar avisos emerxentes como xanelas estándar';
$labels['forwardmode'] = 'Reenvio de mensaxes';
$labels['inline'] = 'inserido';
$labels['asattachment'] = 'coma anexo';
+
$labels['folder'] = 'Cartafol';
$labels['folders'] = 'Cartafoles';
$labels['foldername'] = 'Nome do cartafol';
@@ -441,20 +496,26 @@ $labels['foldertype'] = 'Tipo do cartafol';
$labels['personalfolder'] = 'Cartafol privado';
$labels['otherfolder'] = 'Cartafol de outro usuario';
$labels['sharedfolder'] = 'Cartafol público';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Orde ascendente';
$labels['sortdesc'] = 'Orde descendente';
$labels['undo'] = 'Desfacer';
+
$labels['installedplugins'] = 'Complementos instalados';
$labels['plugin'] = 'Complemento';
$labels['version'] = 'Versión';
$labels['source'] = 'Fonte';
$labels['license'] = 'Licenza';
$labels['support'] = 'Obter axuda';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KiB';
$labels['MB'] = 'MiB';
$labels['GB'] = 'GiB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglés';
$labels['westerneuropean'] = 'Europeo Occidental';
@@ -473,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Xaponés';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chinés';
+
?>
diff --git a/program/localization/gl_ES/messages.inc b/program/localization/gl_ES/messages.inc
index 599f2ce41..207a016a1 100644
--- a/program/localization/gl_ES/messages.inc
+++ b/program/localization/gl_ES/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ocurreu un erro!';
$messages['loginfailed'] = 'O contrasinal ou o nome de usuario son incorrectos.';
$messages['cookiesdisabled'] = 'O seu navegador non acepta galletas.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Non se atopou o contacto solicitado.';
$messages['contactsearchonly'] = 'Introduza algún termo para atopar contactos';
$messages['sendingfailed'] = 'Fallou o envío da mensaxe.';
$messages['senttooquickly'] = 'Por favor, espere $sec segundos antes de enviar esta mensaxe.';
+$messages['errorsavingsent'] = 'Ocurriu un erro mentres se gardaba a mensaxe enviada.';
+$messages['errorsaving'] = 'Ocurriu un erro mentres se gardaba.';
$messages['errormoving'] = 'Non foi posible mover a(s) mensaxe(s).';
$messages['errorcopying'] = 'Non foi posible copiar a(s) mensaxe(s).';
$messages['errordeleting'] = 'Non foi posible eliminar a(s) mensaxe(s).';
@@ -97,6 +101,8 @@ $messages['converting'] = 'Eliminando o formato da mensaxe...';
$messages['messageopenerror'] = 'Non foi posible cargar a mensaxe desde o servidor.';
$messages['fileuploaderror'] = 'Fallou a carga do ficheiro.';
$messages['filesizeerror'] = 'O ficheiro cargado é máis grande que o tamaño máximo de $size.';
+$messages['copysuccess'] = 'Copiáronse correctamente $nr enderezos.';
+$messages['copyerror'] = 'Non foi posible copiar ningún enderezo.';
$messages['sourceisreadonly'] = 'A orixe é de só lectura.';
$messages['errorsavingcontact'] = 'Non foi posible gardar o contacto.';
$messages['movingmessage'] = 'Movendo a(s) mensaxe(s)...';
@@ -120,8 +126,6 @@ $messages['importwait'] = 'A importar. Por favor, agarde...';
$messages['importformaterror'] = 'Fallou a importación! O ficheiro cargado non contén datos válidos.';
$messages['importconfirm'] = '<b>Importáronse correctamente $inserted contactos. Ignoráronse $skipped contactos que xa existían</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Ignoráronse $skipped existing entradas</b>';
-$messages['importmessagesuccess'] = 'Importados $nr mensaxes con éxito';
-$messages['importmessageerror'] = 'Fallou a importación! O arquivo subido non é unha mensaxe válida ou un ficheiro de caixa de correo';
$messages['opnotpermitted'] = 'Operación non permitida!';
$messages['nofromaddress'] = 'Falta o enderezo de correo electrónico na identidade que escolleu.';
$messages['editorwarning'] = 'Se troca neste intre ao editor de texto plano, vai perder todo o formato do texto. Quere continuar?';
@@ -135,6 +139,7 @@ $messages['smtperror'] = 'Erro SMTP: $msg';
$messages['emailformaterror'] = 'O enderezo de correo electrónico é incorrecto: $email.';
$messages['toomanyrecipients'] = 'Especificou destinatarios de máis. Por favor, redúzaos a un máximo de $max.';
$messages['maxgroupmembersreached'] = 'O número de membros do grupo excede o máximo de $max.';
+$messages['internalerror'] = 'Ocurriu un erro interno. Por favor, probe outra vez.';
$messages['contactdelerror'] = 'Non foi posible eliminar o(s) contacto(s).';
$messages['contactdeleted'] = 'Borráronse correctamente o(s) contacto(s).';
$messages['contactrestoreerror'] = 'Non foi posible restaurar o(s) contacto(s) borrado(s).';
@@ -162,4 +167,5 @@ $messages['parentnotwritable'] = 'Non foi posible crear/mover o cartafol no cart
$messages['messagetoobig'] = 'A mensaxe é demasiado grande para procesala';
$messages['attachmentvalidationerror'] = 'ATENCIÓN! Este anexo é sospeitoso porque o seu tipo non coincide o tipo declarado na mensaxe. Se non confía no remitente, non debería abrilo, porque podería conter un virus ou malware.<br/><br/><em>Tipo agardado: $expected; Tipo detectado: $detected</em>';
$messages['noscriptwarning'] = 'Atención: Este servicio de correo web precisa de Javascript!. Por favor, active javascript nas opción do seu navegador.';
+
?>
diff --git a/program/localization/he_IL/labels.inc b/program/localization/he_IL/labels.inc
index ad9a91adc..bfb9e2fef 100644
--- a/program/localization/he_IL/labels.inc
+++ b/program/localization/he_IL/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'ברוך בו×ך ×ל $product';
$labels['username'] = '×©× ×ž×©×ª×ž×©';
$labels['password'] = 'סיסמה';
$labels['server'] = 'שרת';
$labels['login'] = 'כניסה';
+
+// taskbar
$labels['logout'] = 'יצי××”';
$labels['mail'] = 'רשימת הודעות';
$labels['settings'] = 'הגדרות ×ישיות';
$labels['addressbook'] = 'פנקס כתובות';
+
+// mailbox names
$labels['inbox'] = 'נכנס';
$labels['drafts'] = 'טיוטות';
$labels['sent'] = 'נשלח';
$labels['trash'] = '×שפה';
$labels['junk'] = 'זבל';
-$labels['show_real_foldernames'] = 'הצגת שמות ××ž×™×ª×™×™× ×©×œ תיקיות מיוחדות';
+
+// message listing
$labels['subject'] = 'נוש×';
$labels['from'] = 'מ×ת';
$labels['sender'] = 'השולח';
@@ -44,11 +53,13 @@ $labels['priority'] = 'עדיפות';
$labels['organization'] = '×רגון';
$labels['readstatus'] = 'נקר×';
$labels['listoptions'] = 'הצגת ×פשרויות...';
+
$labels['mailboxlist'] = 'תיקיות';
$labels['messagesfromto'] = 'הודעות $from עד $to מתוך $count';
$labels['threadsfromto'] = 'שרשור $from עד $to מתוך $count';
$labels['messagenrof'] = 'הודעה $nr מתוך $count';
$labels['fromtoshort'] = '$from – $to מתוך $count';
+
$labels['copy'] = 'העתק';
$labels['move'] = 'העבר';
$labels['moveto'] = 'תיוק ב...';
@@ -56,9 +67,13 @@ $labels['download'] = 'הורדה';
$labels['open'] = 'לפתוח';
$labels['showattachment'] = 'הצגה';
$labels['showanyway'] = 'להציג בכל מקרה';
+
$labels['filename'] = '×©× ×§×•×‘×¥';
$labels['filesize'] = 'גודל קובץ';
+
$labels['addtoaddressbook'] = 'הוספה לפנקס כתובות';
+
+// weekdays short
$labels['sun'] = '×™×•× ×';
$labels['mon'] = '×™×•× ×‘';
$labels['tue'] = '×™×•× ×’';
@@ -66,6 +81,8 @@ $labels['wed'] = '×™×•× ×“';
$labels['thu'] = '×™×•× ×”';
$labels['fri'] = '×™×•× ×•';
$labels['sat'] = '×™×•× ×©';
+
+// weekdays long
$labels['sunday'] = 'ר×שון';
$labels['monday'] = 'שני';
$labels['tuesday'] = 'שלישי';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'רביעי';
$labels['thursday'] = 'חמישי';
$labels['friday'] = 'ששי';
$labels['saturday'] = 'שבת';
+
+// months short
$labels['jan'] = 'ינו';
$labels['feb'] = 'פבר';
$labels['mar'] = 'מרץ';
@@ -85,6 +104,8 @@ $labels['sep'] = 'ספט';
$labels['oct'] = '×וק';
$labels['nov'] = 'נוב';
$labels['dec'] = 'דצמ';
+
+// months long
$labels['longjan'] = 'ינו×ר';
$labels['longfeb'] = 'פברו×ר';
$labels['longmar'] = 'מרץ';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'ספטמבר';
$labels['longoct'] = '×וקטובר';
$labels['longnov'] = 'נובמבר';
$labels['longdec'] = 'דצמבר';
+
$labels['today'] = 'היו×';
+
+// toolbar buttons
$labels['refresh'] = 'רענון';
$labels['checkmail'] = 'משיכת הודעות חדשות';
$labels['compose'] = 'כתיבת הודעה';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'פעולות נוספות...';
$labels['more'] = 'עוד';
$labels['back'] = 'חזרה';
$labels['options'] = '×פשרויות';
+
$labels['select'] = 'בחירה';
$labels['all'] = 'הכל';
$labels['none'] = 'כלו×';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'הרחבה כלית';
$labels['expand-unread'] = 'הרחבה ×˜×¨× × ×§×¨×';
$labels['collapse-all'] = 'כינוס כללי';
$labels['threaded'] = 'משורשר';
+
$labels['autoexpand_threads'] = 'הרחבת הודעות משורשרות';
$labels['do_expand'] = 'כל השרשורי×';
$labels['expand_only_unread'] = 'רק ×¢× ×”×•×“×¢×•×ª ×©×˜×¨× × ×§×¨×ו';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'רשימת עמודות';
$labels['listsorting'] = 'המיון לפי העמודה';
$labels['listorder'] = 'סדר מיון';
$labels['listmode'] = '×ופן הצגת רשימה';
+
$labels['folderactions'] = 'פעולות על תיקי×';
$labels['compact'] = 'פינוי שטח ×œ× ×ž× ×•×¦×œ';
$labels['empty'] = 'ריקון';
-$labels['importmessages'] = '×™×™×‘×•× ×”×•×“×¢×•×ª';
+
$labels['quota'] = 'ניצול קיבולת';
$labels['unknown'] = '×œ× ×™×“×•×¢';
$labels['unlimited'] = '×œ×œ× ×”×’×‘×œ×”';
+
$labels['quicksearch'] = 'חיפוש מהיר';
$labels['resetsearch'] = 'ניקוי תיבת החיפוש';
$labels['searchmod'] = 'מ×פייני חיפוש';
$labels['msgtext'] = 'כל ההודעה';
$labels['body'] = 'גוף ההודעה';
-$labels['type'] = 'סוג';
-$labels['namex'] = 'ש×';
+
$labels['openinextwin'] = 'פתיחה בחלון חדש';
$labels['emlsave'] = 'הורדת הודעה בפורמט EML';
$labels['changeformattext'] = 'הצגה בפורמט ×œ× ×ž×¢×•×¦×‘';
$labels['changeformathtml'] = 'הצגה בפורמט HTML';
+
+// message compose
$labels['editasnew'] = 'עריכת ההודעה כחדשה';
$labels['send'] = 'שלח';
$labels['sendmessage'] = 'משלוח מיידי';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = '×ישור קבלה';
$labels['dsn'] = 'הודעה על מצב המסירה';
$labels['mailreplyintro'] = ':כתב $sender, $date בת×ריך';
$labels['originalmessage'] = 'הודעה מקורית';
+
$labels['editidents'] = 'עריכת זהויות';
$labels['spellcheck'] = '×יות';
$labels['checkspelling'] = 'בדיקת ×יות';
$labels['resumeediting'] = 'המשך עריכה';
$labels['revertto'] = 'חזור למצב קוד×';
+
$labels['attach'] = 'צירוף';
$labels['attachments'] = 'צרופות';
$labels['upload'] = 'העל××”';
$labels['uploadprogress'] = '( $total מתוך $current ) $percent';
$labels['close'] = 'סגירה';
$labels['messageoptions'] = '×פשרויות הודעה...';
+
$labels['low'] = 'נמוך';
$labels['lowest'] = 'נמוך ביותר';
$labels['normal'] = 'רגיל';
$labels['high'] = 'גבוה';
$labels['highest'] = 'גבוה ביותר';
+
$labels['nosubject'] = '(×œ×œ× × ×•×©×)';
$labels['showimages'] = 'הצגת תמונות';
$labels['alwaysshow'] = '$sender תמיד להציג תמונות מ×ת';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'זו טיוטה של הודעה';
$labels['andnmore'] = 'עוד $nr';
$labels['togglemoreheaders'] = 'הר××” נתוני מערכת × ×•×¡×¤×™× ×©×œ ההודעה';
$labels['togglefullheaders'] = 'הר××” / בטל צפיה בנתוני מערכת של ההודעה';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = '×œ×œ× ×¢×™×¦×•×‘';
$labels['savesentmessagein'] = 'היכן לשמור ההודעה?';
$labels['dontsave'] = '×œ×œ× ×©×ž×™×¨×”';
$labels['maxuploadsize'] = 'גודל מקסימלי לקובץ ×”×•× $size';
+
$labels['addcc'] = 'הוספת מכותב לידיעה';
$labels['addbcc'] = 'הוספת מכותב נסתר';
$labels['addreplyto'] = 'הוספת כתובת למענה';
$labels['addfollowupto'] = 'הוספת כתובת להעברת הודעה';
+
+// mdn
$labels['mdnrequest'] = 'השולח ביקש לדעת ×× ×”×”×•×“×¢×” נקר××”. ×”×× ×œ×”×•×“×™×¢ לשולח?';
$labels['receiptread'] = '×ישור קבלה (נקר×)';
$labels['yourmessage'] = '×ישור קבלה להודעתך';
$labels['receiptnote'] = 'הערה: ×”×ישור ×ינו מבטיח שהנמען ×§×¨× ×ו הבין ×ת תוכן ההודעה.';
+
+// address boook
$labels['name'] = '×©× ×œ×”×¦×’×”';
$labels['firstname'] = '×©× ×¤×¨×˜×™';
$labels['surname'] = '×©× ×ž×©×¤×—×”';
@@ -262,6 +301,7 @@ $labels['search'] = 'חיפוש';
$labels['advsearch'] = '×—×™×וש מתקד×';
$labels['advanced'] = 'מתקד×';
$labels['other'] = '×חר';
+
$labels['typehome'] = 'בית';
$labels['typework'] = 'עבודה';
$labels['typeother'] = '×חר';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'עוזר/ת';
$labels['typehomepage'] = 'דף הבית';
$labels['typeblog'] = 'יומן רשת';
$labels['typeprofile'] = 'פרופיל';
+
$labels['addfield'] = 'הוסף שדה';
$labels['addcontact'] = 'הוספת ×יש קשר';
$labels['editcontact'] = 'עריכת ×יש קשר';
$labels['contacts'] = '×נשי קשר';
$labels['contactproperties'] = 'מ×פייני ×יש קשר';
$labels['personalinfo'] = 'מידע ×ישי';
+
$labels['edit'] = 'עריכה';
$labels['cancel'] = 'ביטול';
$labels['save'] = 'שמירה';
@@ -290,6 +332,7 @@ $labels['rename'] = 'שינוי ש×';
$labels['addphoto'] = 'הוספה';
$labels['replacephoto'] = 'החלפה';
$labels['uploadphoto'] = 'העל×ת תמונה';
+
$labels['newcontact'] = '×יש קשר חדש';
$labels['deletecontact'] = 'מחיקת ×נשי קשר מסומני×';
$labels['composeto'] = 'יצירת הודעה ×ל';
@@ -303,34 +346,43 @@ $labels['newcontactgroup'] = 'יצירת קבוצה חדשה של ×נשי קש×
$labels['grouprename'] = 'שינוי ×©× ×§×‘×•×¦×”';
$labels['groupdelete'] = 'מחיקת קבוצה';
$labels['groupremoveselected'] = '×נשי הקשר שנבחרו יוסרו מהקבוצה';
+
$labels['previouspage'] = 'הצגת הקבוצה הקודמת';
$labels['firstpage'] = 'הצגת הקבוצה הר×שונה';
$labels['nextpage'] = 'הצגת הקבוצה הב××”';
$labels['lastpage'] = 'הצגת הקבוצה ×”×חרונה';
+
$labels['group'] = 'קבוצה';
$labels['groups'] = 'קבוצות';
-$labels['listgroup'] = 'רשימה של חברי קבוצה';
$labels['personaladrbook'] = 'כתובות פרטיות';
+
$labels['searchsave'] = 'שמירת החיפוש';
$labels['searchdelete'] = 'מחיקת החיפוש';
+
$labels['import'] = 'ייבו×';
$labels['importcontacts'] = '×™×™×‘×•× ×נשי קשר';
$labels['importfromfile'] = '×™×™×‘×•× ×ž×§×•×‘×¥';
+$labels['importtarget'] = 'הוספת ×נשי קשר לספר הכתובות';
$labels['importreplace'] = 'החלפת כל פנקס הכתובות';
$labels['importdesc'] = 'ניתן לטעון ×נשי קשר מקובץ חיצוני. ×נו ×ª×•×ž×›×™× ×‘×§×‘×¦×™× ×”×¢×¨×•×›×™× ×‘×¦×•×¨×” של
<a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ×ו
CSV המופרד על ידי פסיקי×.';
$labels['done'] = 'בוצע';
+
+// settings
$labels['settingsfor'] = 'הגדרות עבור';
$labels['about'] = '×ודות';
$labels['preferences'] = 'העדפות';
$labels['userpreferences'] = 'העדפות משתמש';
$labels['editpreferences'] = 'עריכה של העדפות משתמש';
+
$labels['identities'] = 'זהויות';
$labels['manageidentities'] = 'ניהול זהויות לחשבון זה';
$labels['newidentity'] = 'זהות חדשה';
+
$labels['newitem'] = 'רשומה חדשה';
$labels['edititem'] = 'עריכת רשומה';
+
$labels['preferhtml'] = 'הצגת HTML';
$labels['defaultcharset'] = 'ברירת מחדל של תווי×';
$labels['htmlmessage'] = 'תוכן HTML';
@@ -422,10 +474,10 @@ $labels['spellcheckignorenums'] = 'התעלמות ×ž×ž×™×œ×™× ×”×ž×›×™×œ×•×ª מ
$labels['spellcheckignorecaps'] = 'התעלמות ×ž×ž×™×œ×™× ×¢× ×ותציות ר×שיות';
$labels['addtodict'] = 'הוספה למילון';
$labels['mailtoprotohandler'] = 'קביעת הפרוטוקול לטיפול בקישור מסוג mailto:links';
-$labels['standardwindows'] = 'חלונות ×§×•×¤×¦×™× ×™×˜×•×¤×œ×• כחלונות רגילי×';
$labels['forwardmode'] = 'הפנית הודעות';
$labels['inline'] = 'חלק מההודעה';
$labels['asattachment'] = 'כצרופה';
+
$labels['folder'] = 'תיק';
$labels['folders'] = 'תיקיות';
$labels['foldername'] = '×©× ×ª×™×§';
@@ -446,20 +498,26 @@ $labels['foldertype'] = 'סוג תיקיה';
$labels['personalfolder'] = 'תיקיה פרטית';
$labels['otherfolder'] = 'תיקית משתמש נוספת';
$labels['sharedfolder'] = 'תיקיה ציבורית';
+
$labels['sortby'] = 'מיון לפי';
$labels['sortasc'] = 'מיון בסדר עולה';
$labels['sortdesc'] = 'מיון בסדר יורד';
$labels['undo'] = 'ביטול שינוי';
+
$labels['installedplugins'] = '×ª×•×¡×¤×™× ×ž×•×ª×§× ×™×';
$labels['plugin'] = 'תוסף תוכנה';
$labels['version'] = 'גירסה';
$labels['source'] = 'מקור';
$labels['license'] = 'רשיון';
$labels['support'] = 'קבלת תמיכה';
+
+// units
$labels['B'] = 'בייט';
$labels['KB'] = 'ק"ב';
$labels['MB'] = 'מ"ב';
$labels['GB'] = 'ג"ב';
+
+// character sets
$labels['unicode'] = 'יוניקוד';
$labels['english'] = '×נגלית';
$labels['westerneuropean'] = 'מערב ×ירופי';
@@ -478,4 +536,5 @@ $labels['vietnamese'] = 'וויטנ×מי';
$labels['japanese'] = 'יפני';
$labels['korean'] = 'קורי×× ×™';
$labels['chinese'] = 'סיני';
+
?>
diff --git a/program/localization/he_IL/messages.inc b/program/localization/he_IL/messages.inc
index b7e7d1ae8..7d9b87c06 100644
--- a/program/localization/he_IL/messages.inc
+++ b/program/localization/he_IL/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'קרתה שגי××” !';
$messages['loginfailed'] = 'הכניסה נכשלה';
$messages['cookiesdisabled'] = 'הדפדפן ×ינו מקבל עוגיות';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = '×יש הקשר המבוקש ×œ× × ×ž×¦×';
$messages['contactsearchonly'] = 'יש להקיש מפתחות חיפוש כדי ×œ×ž×¦×•× ×נשי קשר';
$messages['sendingfailed'] = 'שליחת ההודעה נכשלה';
$messages['senttooquickly'] = '× × ×œ×”×ž×ª×™×Ÿ $sec שניות לפני מסירת הודעה זו';
+$messages['errorsavingsent'] = 'נגרמה שגי××” במהלך שמירת ההודעה בתיק הודעות יוצ×ות';
+$messages['errorsaving'] = 'נגרמה שגי××” במהלך השמירה';
$messages['errormoving'] = '×œ× × ×™×ª×Ÿ לתייק ×ת ההודעה';
$messages['errorcopying'] = 'העתקת ההודעות נכשלה';
$messages['errordeleting'] = '×œ× × ×™×ª×Ÿ למחוק ×ת ההודעה';
@@ -97,16 +101,13 @@ $messages['converting'] = 'הסרת העיצוב מההודעה';
$messages['messageopenerror'] = '×œ× × ×™×ª×Ÿ לטעון ההודעה מהשרת';
$messages['fileuploaderror'] = 'העל×ת הקובץ נכשלה';
$messages['filesizeerror'] = 'הקובץ לטעינה גדול מהגודל המקסימלי ×©×”×•× $size';
-$messages['copysuccess'] = '$nr ×נשי קשר הועתקו בהצלחה';
-$messages['movesuccess'] = '$nr ×נשי קשר הועברו בהצלחה';
-$messages['copyerror'] = '×œ× × ×™×ª×Ÿ ×”×™×” להעתיק ×נשי קשר כלשה×';
-$messages['moveerror'] = '×œ× × ×™×ª×Ÿ ×”×™×” להעביר ×נשי קשר כלשה×';
+$messages['copysuccess'] = '$nr כתובות הועתקו בהצלחה';
+$messages['copyerror'] = '×œ× × ×™×ª×Ÿ להעתיק ××£ כתובת';
$messages['sourceisreadonly'] = 'המקור לכתובת ×”×•× ×œ×§×¨×™××” בלבד';
$messages['errorsavingcontact'] = '×œ× × ×™×ª×Ÿ לשמור ×ת כתובת ×יש הקשר';
$messages['movingmessage'] = 'תיוק ההודעה...';
$messages['copyingmessage'] = 'הודעת מועתקת...';
$messages['copyingcontact'] = 'העתקת ×נשי קשר...';
-$messages['movingcontact'] = '×נשי קשר עוברי×...';
$messages['deletingmessage'] = 'המחיקה בתהליך...';
$messages['markingmessage'] = 'סימון ההודעה בתהליך...';
$messages['addingmember'] = 'הוספת ×נשי קשר לקבוצה...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'ייבו×, × × ×œ×”×ž×ª×™×Ÿ..';
$messages['importformaterror'] = '×”×™×‘×•× × ×›×©×œ ! הקובץ שהועלה ×ינו מת××™×.';
$messages['importconfirm'] = '<b>יוב×ו $inserted ×נשי קשר, $skipped היו ×§×™×™×ž×™× </b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b> דילוג של $skipped × ×ª×•× ×™× ×§×™×™×ž×™× <b>';
-$messages['importmessagesuccess'] = 'יוב×ו בהצלחה $nr הודעות ';
-$messages['importmessageerror'] = '×”×™×‘×•× × ×›×©×œ ! הקובץ שהועלה ×ינו הודעה ×ו קובץ הודעות במבנה מת××™×';
$messages['opnotpermitted'] = 'פעולה ×סורה!';
$messages['nofromaddress'] = 'לזהות שנבחרה חסרה כתובת דו×ר';
$messages['editorwarning'] = 'המעבר לעורך רגיל ×™×’×¨×•× ×œ×יבוד ×ת העריכה הקיימת. ×”×× ×œ×”×ž×©×™×š?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP: $msg';
$messages['emailformaterror'] = '$email כתובת דו×"ל שגויה';
$messages['toomanyrecipients'] = 'יותר מדי נמעני×. יש להקטין ×ž×¡×¤×¨× ×œ - $max';
$messages['maxgroupmembersreached'] = '×ž×¡×¤×¨× ×©×œ חברי הקבוצה ×ינו יכול לעבור $max';
+$messages['internalerror'] = 'שגי×ת מערכת. × × ×œ× ×¡×•×ª שנית';
$messages['contactdelerror'] = '×œ× × ×™×ª×Ÿ למחוק ×יש קשר';
$messages['contactdeleted'] = '×יש הקשר נמחק';
$messages['contactrestoreerror'] = '×œ× × ×™×ª×Ÿ לשחזר ×יש קשר שנמחק';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = '×œ× × ×™×ª×Ÿ ליצור/להעביר תיקי
$messages['messagetoobig'] = 'ההודעה גדולה מעבר ליכולת העיבוד של התוכנה';
$messages['attachmentvalidationerror'] = 'זהירות ! הצרופה חשודה ×›×™ ××™× ×” מהסוג שצוין בהודעה. ×× ×œ× × ×™×ª×Ÿ לבטוח בשולח ××–×™ להמנע מלפתוח ×ת הקובץ בדפדפן ×›×™ הקובץ יכול להכיל קוד זדוני.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'זהירות! תוכנה זו דורשת שימוש בג\'×ווהסקריפט! כדי להשתמש בכלי, יש לבחור ב×פשרות זו בהגדרות הדפדפן.';
+
?>
diff --git a/program/localization/hi_IN/labels.inc b/program/localization/hi_IN/labels.inc
index a8b684c56..3b8279f71 100644
--- a/program/localization/hi_IN/labels.inc
+++ b/program/localization/hi_IN/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product में सà¥à¤µà¤¾à¤—त है';
$labels['username'] = 'यूसरनाम';
$labels['password'] = 'पासवरà¥à¤¡';
$labels['server'] = 'सरà¥à¤µà¤°';
$labels['login'] = 'लॉगिन';
+
+// taskbar
$labels['logout'] = 'लॉगआऊट';
$labels['mail'] = 'ई-मेल';
$labels['settings'] = 'निजी सैटिंग';
$labels['addressbook'] = 'पता खाता';
+
+// mailbox names
$labels['inbox'] = 'इनबॉकà¥à¤¸';
$labels['drafts'] = 'डà¥à¤°à¤¾à¤«à¤¼à¤Ÿ';
$labels['sent'] = 'भेजा गया';
$labels['trash'] = 'रदà¥à¤¦à¥€';
$labels['junk'] = 'सà¥à¤ªà¥ˆà¤®';
+
+// message listing
$labels['subject'] = 'विशय';
$labels['from'] = 'भेजने वाला';
+$labels['sender'] = 'Sender';
$labels['to'] = 'पाने वाला';
$labels['cc'] = 'कारà¥à¤¬à¤¨';
$labels['bcc'] = 'अंधा कारà¥à¤¬à¤¨';
@@ -40,16 +51,29 @@ $labels['date'] = 'तारीख';
$labels['size'] = 'माप';
$labels['priority'] = 'मेल की महतà¥à¤µà¤ªà¥‚रà¥à¤£à¤¤à¤¾';
$labels['organization'] = 'संसà¥à¤¥à¤¾';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'फ़ोलà¥à¤¡à¤°';
$labels['messagesfromto'] = '$from से ले कर $to, $count मेल में से';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = '$nr नमà¥à¤¬à¤° मेल, $count में से';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'कारà¥à¤¬à¤¨';
$labels['move'] = 'सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरित करें';
$labels['moveto'] = 'खीसà¥à¤•à¤¾à¤à¤‚...';
$labels['download'] = 'डाऊनलोड';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'फ़ाईल नाम';
$labels['filesize'] = 'फ़ाईल माप';
+
$labels['addtoaddressbook'] = 'पता खाते में जोडें';
+
+// weekdays short
$labels['sun'] = 'रवि';
$labels['mon'] = 'सोम';
$labels['tue'] = 'मंग';
@@ -57,6 +81,8 @@ $labels['wed'] = 'बà¥à¤§';
$labels['thu'] = 'गà¥à¤°à¥';
$labels['fri'] = 'शà¥à¤•à¥à¤°';
$labels['sat'] = 'शनि';
+
+// weekdays long
$labels['sunday'] = 'रविवार';
$labels['monday'] = 'सोमवार';
$labels['tuesday'] = 'मंगलवार';
@@ -64,6 +90,8 @@ $labels['wednesday'] = 'बà¥à¤§à¤µà¤¾à¤°';
$labels['thursday'] = 'गà¥à¤°à¥à¤µà¤¾à¤°';
$labels['friday'] = 'शà¥à¤•à¥à¤°à¤µà¤¾à¤°';
$labels['saturday'] = 'शनिवार';
+
+// months short
$labels['jan'] = 'जनवरी';
$labels['feb'] = 'फ़रवरी';
$labels['mar'] = 'मारà¥à¤š';
@@ -71,6 +99,13 @@ $labels['apr'] = 'अपà¥à¤°à¥‡à¤²';
$labels['may'] = 'मई';
$labels['jun'] = 'जून';
$labels['jul'] = 'जà¥à¤²à¤¾à¤ˆ';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'जनवरी';
$labels['longfeb'] = 'फ़रवरी';
$labels['longmar'] = 'मारà¥à¤š';
@@ -83,7 +118,10 @@ $labels['longsep'] = 'सितंबर';
$labels['longoct'] = 'अकà¥à¤Ÿà¥‚बर';
$labels['longnov'] = 'नवमà¥à¤¬à¤°';
$labels['longdec'] = 'दिसंबर';
+
$labels['today'] = 'आज';
+
+// toolbar buttons
$labels['refresh'] = 'ताज़ा करें';
$labels['checkmail'] = 'नये मेल लाà¤à¤‚';
$labels['compose'] = 'मेल लिखें';
@@ -91,9 +129,14 @@ $labels['writenewmessage'] = 'मेल लिखें';
$labels['reply'] = 'जवाब';
$labels['replytomessage'] = 'मेल का जवाब दें';
$labels['replytoallmessage'] = 'सभी को जवाब लिखें';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
$labels['forward'] = 'अगà¥à¤°à¥‡à¤·à¤¿à¤¤ करें';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'आगे भेजें';
$labels['deletemessage'] = 'रदà¥à¤¦ करें';
+$labels['movemessagetotrash'] = 'Move message to trash';
$labels['printmessage'] = 'मेल छापें';
$labels['previousmessage'] = 'पीछे के मेल दिखाà¤à¤‚';
$labels['firstmessage'] = 'पहला मेल दिखाà¤à¤‚';
@@ -102,90 +145,394 @@ $labels['lastmessage'] = 'आखीरी मेल दिखाà¤à¤‚';
$labels['backtolist'] = 'मेल सूची देखें';
$labels['viewsource'] = 'सोरà¥à¤¸ दिखाà¤à¤‚';
$labels['mark'] = 'चिहà¥à¤¨à¤¿à¤¤';
+$labels['markmessages'] = 'Mark messages';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'चà¥à¤¨à¥‡à¤‚';
$labels['all'] = 'सभी';
$labels['none'] = 'कोई नहीं';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'अनदेखी';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'कोई नहीं';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'छोटा करें';
$labels['empty'] = 'मेल रदà¥à¤¦à¥€ में डालें';
+
$labels['quota'] = 'डिसà¥à¤• उपयोग';
$labels['unknown'] = 'अजà¥à¤žà¤¾à¤¤';
$labels['unlimited'] = 'असीम';
+
$labels['quicksearch'] = 'तेज़ खोज';
$labels['resetsearch'] = 'खोज खाली करें';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'मेल भेजें';
$labels['savemessage'] = 'डà¥à¤°à¤¾à¤«à¤¼à¤Ÿ सहेजें';
$labels['addattachment'] = 'फ़ाईल जोडें';
$labels['charset'] = 'कैरेकà¥à¤Ÿà¤° सैट';
$labels['editortype'] = 'समà¥à¤ªà¤¾à¤¦à¤• पà¥à¤°à¤¾à¤•à¤¾à¤°';
$labels['returnreceipt'] = 'मेल रसीद';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'सà¥à¤ªà¥ˆà¤²à¤¿à¤‚ग जाà¤à¤šà¥‡à¤‚';
$labels['resumeediting'] = 'समà¥à¤ªà¤¾à¤¦à¤¨ फिर शà¥à¤°à¥‚ करें';
$labels['revertto'] = 'पहले की सà¥à¤¥à¤¿à¤¤à¥€ पर जाà¤à¤‚';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'जà¥à¤¡à¥‡ फाईल';
$labels['upload'] = 'अपलोड';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'बंद';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'कम';
$labels['lowest'] = 'सबसे कम';
$labels['normal'] = 'साधारण';
$labels['high'] = 'उचà¥à¤š';
$labels['highest'] = 'उचà¥à¤šà¤¤à¤®';
+
$labels['nosubject'] = '(कोई विशय नहीं)';
$labels['showimages'] = 'चितà¥à¤° दिखाà¤à¤‚';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML)';
$labels['plaintoggle'] = 'सादा पाठ';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
$labels['name'] = 'दिखने वाला नाम';
$labels['firstname'] = 'पहला नाम';
$labels['surname'] = 'उपनाम';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'मेल';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'नया पता जोडें';
$labels['editcontact'] = 'पता समà¥à¤ªà¤¾à¤¦';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'समà¥à¤ªà¤¾à¤¦';
$labels['cancel'] = 'रदà¥à¤¦';
$labels['save'] = 'सहेज';
$labels['delete'] = 'मिटा';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'नया पता कारà¥à¤¡ बनाà¤à¤‚';
$labels['deletecontact'] = 'चà¥à¤¨à¥‡ पते मिटाà¤à¤‚';
$labels['composeto'] = 'को मेल भेजें';
$labels['contactsfromto'] = '$from से ले कर $to, $count पते में से';
$labels['print'] = 'छापें';
$labels['export'] = 'à¤à¤•à¥à¤¸à¥à¤ªà¥‹à¤°à¥à¤Ÿ';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'इससे पहले के बनà¥à¤¡à¤² को दिखाà¤à¤‚';
$labels['firstpage'] = 'पहला बनà¥à¤¡à¤² दिखाà¤à¤‚';
$labels['nextpage'] = 'अगला बनà¥à¤¡à¤² दिखाà¤à¤‚';
$labels['lastpage'] = 'आखिरी बनà¥à¤¡à¤² दिखाà¤à¤‚';
+
+$labels['group'] = 'Group';
+$labels['groups'] = 'Groups';
+$labels['personaladrbook'] = 'Personal Addresses';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'इनके विनà¥à¤¯à¤¾à¤¸:';
+$labels['about'] = 'About';
$labels['preferences'] = 'पसंद';
$labels['userpreferences'] = 'यूसर पसंद';
$labels['editpreferences'] = 'यूसर पसंद समà¥à¤ªà¤¾à¤¦à¥‡à¤‚';
+
$labels['identities'] = 'पहचान';
$labels['manageidentities'] = 'इस खाते के पहचान वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ करें';
$labels['newidentity'] = 'नया पहचान';
+
$labels['newitem'] = 'नया चीज़';
$labels['edititem'] = 'चीज़ समà¥à¤ªà¤¾à¤¦à¥‡à¤‚';
+
$labels['preferhtml'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤²(HTML) दिखाà¤à¤‚';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) रूप मेल करें';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'सà¥à¤¨à¤¦à¤° तारीखें';
$labels['setdefault'] = 'तयशà¥à¤¦à¤¾ चà¥à¤¨à¥‡à¤‚';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'भाषा';
$labels['timezone'] = 'समय कà¥à¤·à¥‡à¤¤à¥à¤°';
$labels['pagesize'] = 'हर पनà¥à¤¨à¥‡ पर इतने';
$labels['signature'] = 'दसà¥à¤¤à¤–त';
$labels['dstactive'] = 'रौशनी बचाव';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'मेल à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) मे लिखें';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) दसà¥à¤¤à¤–त';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'à¤à¤²à¤• पटà¥à¤Ÿà¥€ दिखाà¤à¤‚';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'डà¥à¤°à¤¾à¤«à¤¼à¤Ÿ अपने आप सहेजते जाà¤à¤‚';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'कभी नहाीं';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'फ़ोलà¥à¤¡à¤°';
$labels['folders'] = 'फ़ोलà¥à¤¡à¤°';
$labels['foldername'] = 'फ़ोलà¥à¤¡à¤° नाम';
$labels['subscribed'] = 'सबसà¥à¤•à¥à¤°à¤¾à¤ˆà¤¬ किया गया';
+$labels['messagecount'] = 'Messages';
$labels['create'] = 'बनाà¤à¤‚';
$labels['createfolder'] = 'फ़ोलडर बनाà¤à¤‚';
$labels['managefolders'] = 'फ़ोलडर को वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ करें';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'à¤à¤¸à¥‡ तय करें';
$labels['sortasc'] = 'पहले से आखीरी तय करें';
$labels['sortdesc'] = 'आखीरी से पहले तय करें';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/hi_IN/messages.inc b/program/localization/hi_IN/messages.inc
index 9cf02696a..1d55f5c48 100644
--- a/program/localization/hi_IN/messages.inc
+++ b/program/localization/hi_IN/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'लॉगिन नहीं हो पाया';
$messages['cookiesdisabled'] = 'आपका बà¥à¤°à¤¾à¤Šà¤¸à¤° कà¥à¤•à¥€ सà¥à¤µà¥€à¤•à¤¾à¤° नहीं कर रहा है';
$messages['sessionerror'] = 'सतà¥à¤° समापà¥à¤¤ या अवैदà¥à¤¯';
$messages['storageerror'] = 'आईमैप (IMAP) सरà¥à¤µà¤° से समà¥à¤ªà¤°à¥à¤• नहीं हो पाया';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'इस मेलबॉकà¥à¤¸ में कोई मेल नहीं है';
$messages['loggedout'] = 'सतà¥à¤° समापà¥à¤¤. टा टा!';
$messages['mailboxempty'] = 'मेलबॉकà¥à¤¸ खाली है';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'लोड हो रहा है';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'डाटा लोड हो रहा है...';
$messages['checkingmail'] = 'कà¥à¤¯à¤¾ नया मेल है?...';
$messages['sendingmessage'] = 'मेल भेजा जा रहा है...';
@@ -32,35 +48,124 @@ $messages['messagesaved'] = 'मेल डà¥à¤°à¤¾à¤«à¤¼à¥à¤Ÿ फोलà¥à¤¡à
$messages['successfullysaved'] = 'सहेजा गया है';
$messages['addedsuccessfully'] = 'पता खाते में पता जोडा गया है';
$messages['contactexists'] = 'इस ई-मेल पता से à¤à¤• पता पेहले से है';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'आप के पà¥à¤°à¤¾à¤ˆà¤µà¥‡à¤¸à¥€ के लिये और सà¥à¤ªà¥ˆà¤® से बचने के लिये इस मेल में सदूर चितà¥à¤° नहीं दिखाये गये हैं।';
$messages['encryptedmessage'] = 'माफ़ कीजिये, यह मेल कूट रूप में है, इस कारण दिखाया नहीं जा सकता।';
$messages['nocontactsfound'] = 'कोई पता नहीं मिला';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'मेल नहीं भिज पाया';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'सहेजते-सहेजते गडबड हो गया';
$messages['errormoving'] = 'मेल खिसà¥à¤•à¤¾ नहीं';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'मेल मिटा नहीं';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'चà¥à¤¨à¥‡ गये पते को सचमà¥à¤š मिटाना है ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'चà¥à¤¨à¥‡ गये मेल को सचमà¥à¤š मिटाना है ?';
$messages['deletefolderconfirm'] = 'फ़ोलà¥à¤¡à¤° को सचमà¥à¤š मिटाà¤à¤‚ ?';
$messages['purgefolderconfirm'] = 'फ़ोलà¥à¤¡à¤° में पडे सारे मेल को सचमà¥à¤š मिटाना है?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'फ़ॉरà¥à¤® पूरी तरह से भरा नहीं';
$messages['noemailwarning'] = 'वैदà¥à¤¯ मेल पता भरें';
$messages['nonamewarning'] = 'नाम भरें';
$messages['nopagesizewarning'] = 'पनà¥à¤¨à¤¾ माप भरें';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'कम-से-कम à¤à¤• पाने वाले का पता भरें';
$messages['nosubjectwarning'] = 'मेल का कोई विशय नहीं बताया गया है। कà¥à¤¯à¤¾ आप विशय डालना चाहते हैं ?';
$messages['nobodywarning'] = 'बिना कà¥à¤› लिखे मेल भेजें?';
$messages['notsentwarning'] = 'मेल भिजा नहीं. मेल रदà¥à¤¦ करें ?';
$messages['noldapserver'] = 'खोज के लिये à¤à¤• à¤à¤²à¤¡à¥ˆà¤ª सरà¥à¤µà¤° चà¥à¤¨à¥‡à¤‚';
$messages['nosearchname'] = 'पता या पते का नाम भरें';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr मेल मिले';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'खोज असफ़ल';
$messages['searching'] = 'खोजा रहे हैं...';
$messages['checking'] = 'चाà¤à¤šà¤¾ चा रहा है...';
$messages['nospellerrors'] = 'कोई सà¥à¤ªà¥ˆà¤²à¤¿à¤‚ग गलती नहीं मिली';
$messages['folderdeleted'] = 'फ़ोलà¥à¤¡à¤° मिट गया';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'मिट गया';
$messages['converting'] = 'मेल से फ़ॉरà¥à¤®à¥ˆà¤Ÿà¤¿à¤‚ग निकाला जा रहा है...';
$messages['messageopenerror'] = 'सरà¥à¤µà¤° से मेल लोड नहीं हो पाया';
$messages['fileuploaderror'] = 'फ़ाईल अपलोड नहीं हो पाया';
$messages['filesizeerror'] = 'अपलोड के लिये फ़ाईल हद $size से बड़ा है';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/hr_HR/labels.inc b/program/localization/hr_HR/labels.inc
index 70d1c1316..506d50f1f 100644
--- a/program/localization/hr_HR/labels.inc
+++ b/program/localization/hr_HR/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Dobrodošli na $product';
$labels['username'] = 'KorisniÄko ime';
$labels['password'] = 'Lozinka';
$labels['server'] = 'Poslužitelj';
$labels['login'] = 'Prijava';
+
+// taskbar
$labels['logout'] = 'Odjava';
$labels['mail'] = 'Pošta';
$labels['settings'] = 'Postavke';
$labels['addressbook'] = 'Imenik';
+
+// mailbox names
$labels['inbox'] = 'Pristigla pošta';
$labels['drafts'] = 'Predlošci';
$labels['sent'] = 'Poslano';
$labels['trash'] = 'Smeće';
$labels['junk'] = 'Spam';
+
+// message listing
$labels['subject'] = 'Naslov';
$labels['from'] = 'Od';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Za';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
@@ -41,18 +52,28 @@ $labels['size'] = 'VeliÄina';
$labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organizacija';
$labels['readstatus'] = 'ProÄitano';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Mape';
$labels['messagesfromto'] = 'Poruke od $from do $to od ukupno $count';
$labels['threadsfromto'] = 'Teme od $from do $to od ukupno $count';
$labels['messagenrof'] = 'Poruka broj $nr od $count';
$labels['fromtoshort'] = '$from - $to od $count';
+
$labels['copy'] = 'Kopiraj';
$labels['move'] = 'Premjesti';
$labels['moveto'] = 'Premjesti u...';
$labels['download'] = 'Preuzmi (download)';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Ime datoteke';
$labels['filesize'] = 'VeliÄina datoteke';
+
$labels['addtoaddressbook'] = 'Dodaj u imenik';
+
+// weekdays short
$labels['sun'] = 'Ned';
$labels['mon'] = 'Pon';
$labels['tue'] = 'Uto';
@@ -60,6 +81,8 @@ $labels['wed'] = 'Sri';
$labels['thu'] = 'ÄŒet';
$labels['fri'] = 'Pet';
$labels['sat'] = 'Sub';
+
+// weekdays long
$labels['sunday'] = 'Nedjelja';
$labels['monday'] = 'Ponedjeljak';
$labels['tuesday'] = 'Utorak';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'Srijeda';
$labels['thursday'] = 'ÄŒetvrtak';
$labels['friday'] = 'Petak';
$labels['saturday'] = 'Subota';
+
+// months short
$labels['jan'] = 'Sij';
$labels['feb'] = 'Velj';
$labels['mar'] = 'Ožu';
@@ -79,6 +104,8 @@ $labels['sep'] = 'Ruj';
$labels['oct'] = 'Lis';
$labels['nov'] = 'Stu';
$labels['dec'] = 'Pro';
+
+// months long
$labels['longjan'] = 'SijeÄanj';
$labels['longfeb'] = 'VeljaÄa';
$labels['longmar'] = 'Ožujak';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'Rujan';
$labels['longoct'] = 'Listopad';
$labels['longnov'] = 'Studeni';
$labels['longdec'] = 'Prosinac';
+
$labels['today'] = 'Danas';
+
+// toolbar buttons
$labels['refresh'] = 'Osvježi';
$labels['checkmail'] = 'Provjera novih poruka';
$labels['compose'] = 'Nova poruka';
@@ -124,6 +154,7 @@ $labels['moreactions'] = 'Više akcija';
$labels['more'] = 'Više';
$labels['back'] = 'Natrag';
$labels['options'] = 'Postavke';
+
$labels['select'] = 'Odaberi';
$labels['all'] = 'Sve';
$labels['none'] = 'Ništa';
@@ -131,7 +162,9 @@ $labels['currpage'] = 'Trenutna stranica';
$labels['unread'] = 'NeproÄitane';
$labels['flagged'] = 'OznaÄene';
$labels['unanswered'] = 'Neodgovrene';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Obrisano';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Obrni';
$labels['filter'] = 'Filtriraj';
$labels['list'] = 'Lista';
@@ -140,6 +173,7 @@ $labels['expand-all'] = 'Proširi sve';
$labels['expand-unread'] = 'ProÅ¡iri neproÄitane';
$labels['collapse-all'] = 'Zatvori sve';
$labels['threaded'] = 'Tematski prikaz';
+
$labels['autoexpand_threads'] = 'Proširi teme poruka';
$labels['do_expand'] = 'Sve teme';
$labels['expand_only_unread'] = 'samo s neproÄitanim porukama';
@@ -155,19 +189,29 @@ $labels['listcolumns'] = 'Kolone';
$labels['listsorting'] = 'Sortirajuća kolona';
$labels['listorder'] = 'Sortirajući redoslijed';
$labels['listmode'] = 'Model pregleda listi';
+
$labels['folderactions'] = 'Akcije mapa';
$labels['compact'] = 'Kompresiranje';
$labels['empty'] = 'Isprazni';
+
$labels['quota'] = 'Kvota';
$labels['unknown'] = 'nepoznato';
$labels['unlimited'] = 'beskonaÄna';
+
$labels['quicksearch'] = 'Brza pretraga';
$labels['resetsearch'] = 'Prikaži sve poruke';
$labels['searchmod'] = 'Postavke pretrage';
$labels['msgtext'] = 'Cijela poruka';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Otvori u novom prozoru';
$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Uredi kao novo';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Pošalji poruku';
$labels['savemessage'] = 'Spremi u \'Predlošci\'';
$labels['addattachment'] = 'Priloži datoteku';
@@ -177,39 +221,52 @@ $labels['returnreceipt'] = 'Potvrda o primitku poruke';
$labels['dsn'] = 'Potvrda o poslanoj poruci';
$labels['mailreplyintro'] = 'Dana $date, $sender je napisao(la):';
$labels['originalmessage'] = 'Izvorna Poruka';
+
$labels['editidents'] = 'Promijeni identitete';
$labels['spellcheck'] = 'Piši';
$labels['checkspelling'] = 'Provjera pravopisa';
$labels['resumeediting'] = 'Povratak u pisanje';
$labels['revertto'] = 'Vrati na';
+
$labels['attach'] = 'Priloži';
$labels['attachments'] = 'Privitci (Attachments)';
$labels['upload'] = 'Dodaj';
$labels['uploadprogress'] = '$percent ($current od $total)';
$labels['close'] = 'Zatvori';
$labels['messageoptions'] = 'Opcije poruka...';
+
$labels['low'] = 'Nizak';
$labels['lowest'] = 'Najniži';
$labels['normal'] = 'Srednji';
$labels['high'] = 'Visok';
$labels['highest'] = 'Najviši';
+
$labels['nosubject'] = '(bez naslova)';
$labels['showimages'] = 'Prikaži slike';
$labels['alwaysshow'] = 'Uvijek prikaži slike od $sender';
$labels['isdraft'] = 'Ova poruka je skica (draft)';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Samo tekst';
$labels['savesentmessagein'] = 'Spremi poslane poruke u';
$labels['dontsave'] = 'ne spremaj';
$labels['maxuploadsize'] = 'Maksimalna dozvoljena velicina datoteke je $size';
+
$labels['addcc'] = 'Dodaj Cc';
$labels['addbcc'] = 'Dodaj Bcc';
$labels['addreplyto'] = 'Dodaj Odgovori-na';
$labels['addfollowupto'] = 'Dodaj Nastavak-na';
+
+// mdn
$labels['mdnrequest'] = 'Pošiljaoc ove poruke je tražio da bude obaviješten o njenom primitku. Želite li obavijestiti pošiljaoca?';
$labels['receiptread'] = 'Vrati potvrdu (proÄitano)';
$labels['yourmessage'] = 'Ovo je vraćena potvrda vaše poruke';
$labels['receiptnote'] = 'Info: Ova poruka samo potvrÄ‘uje da se poruka prikazala na raÄunalu primaoca. Nema garancije da je primaoc proÄitao ili razumio sadržaj poruke.';
+
+// address boook
$labels['name'] = 'Puno ime';
$labels['firstname'] = 'Ime';
$labels['surname'] = 'Prezime';
@@ -244,6 +301,7 @@ $labels['search'] = 'Pretraga';
$labels['advsearch'] = 'Napredna Pretraga';
$labels['advanced'] = 'Napredno';
$labels['other'] = 'Ostalo';
+
$labels['typehome'] = 'Kućni broj';
$labels['typework'] = 'Poslovni broj';
$labels['typeother'] = 'Ostalo';
@@ -258,12 +316,14 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'PoÄetna stranica';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Dodaj polje...';
$labels['addcontact'] = 'Dodaj novi kontakt';
$labels['editcontact'] = 'Izmjeni kontakt';
$labels['contacts'] = 'Kontakti';
$labels['contactproperties'] = 'Svojstva kontakta';
$labels['personalinfo'] = 'Osobni podaci';
+
$labels['edit'] = 'Izmjeni';
$labels['cancel'] = 'Odustani';
$labels['save'] = 'Spremi';
@@ -271,43 +331,61 @@ $labels['delete'] = 'Obriši';
$labels['rename'] = 'Preimenuj';
$labels['addphoto'] = 'Dodaj';
$labels['replacephoto'] = 'Smijeniti';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Dodaj novi kontakt';
$labels['deletecontact'] = 'Obriši odabrane kontakte';
$labels['composeto'] = 'Napiši mail...';
$labels['contactsfromto'] = 'Kontakti od $from do $to od ukupno $count';
$labels['print'] = 'Print';
$labels['export'] = 'Export';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Izvezi kontakte u vCard formatu';
$labels['newcontactgroup'] = 'Napravi novu kontaktnu grupu';
$labels['grouprename'] = 'Promijeni ime grupe';
$labels['groupdelete'] = 'Izbriši grupu';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Prethodna strana';
$labels['firstpage'] = 'Prva strana';
$labels['nextpage'] = 'Slijedeća strana';
$labels['lastpage'] = 'Zadnja strana';
+
$labels['group'] = 'Grupa';
$labels['groups'] = 'Grupe';
$labels['personaladrbook'] = 'Privatna adresa';
+
$labels['searchsave'] = 'Pohrani pretragu';
$labels['searchdelete'] = 'Obriši pretragu';
+
$labels['import'] = 'Uvoz';
$labels['importcontacts'] = 'Uvoz kontakta';
$labels['importfromfile'] = 'Uvezi iz datoteke:';
+$labels['importtarget'] = 'Dodaj nove kontakte u imenik:';
$labels['importreplace'] = 'Prepiši cijeli adresar';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Završeno';
+
+// settings
$labels['settingsfor'] = 'Postavke za';
$labels['about'] = 'O programu';
$labels['preferences'] = 'Postavke';
$labels['userpreferences'] = 'KorisniÄke postavke';
$labels['editpreferences'] = 'Izmjena postavki';
+
$labels['identities'] = 'Identiteti';
$labels['manageidentities'] = 'Podesi identitete za ovaj nalog';
$labels['newidentity'] = 'Dodaj identitet';
+
$labels['newitem'] = 'Novo';
$labels['edititem'] = 'Uredi';
+
$labels['preferhtml'] = 'HTML format u prednosti';
$labels['defaultcharset'] = 'Zadani skup znakova';
$labels['htmlmessage'] = 'HTML format poruke';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Format datuma';
$labels['timeformat'] = 'Format vremena';
$labels['prettydate'] = 'Formatiran datum';
@@ -318,9 +396,13 @@ $labels['timezone'] = 'Vremenska zona';
$labels['pagesize'] = 'Redova po stranici';
$labels['signature'] = 'Potpis';
$labels['dstactive'] = 'Automatska promjena vremena';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Sastavi HTML poruke';
$labels['htmlonreply'] = 'odgovor samo na HTML poruke';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML potpis';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Prikaži podruÄje pregleda';
$labels['skin'] = 'Tema izgleda';
$labels['logoutclear'] = 'OÄisti smeće pri izlazu';
@@ -338,12 +420,14 @@ $labels['readwhendeleted'] = 'OznaÄi poruku kao proÄitanu pri brisanju';
$labels['flagfordeletion'] = 'OznaÄi poruku za brisanje umjesto brisanja';
$labels['skipdeleted'] = 'Ne prikazivaj pobrisane poruke';
$labels['deletealways'] = 'Ukoliko premještanje poruka u mapu otpad ne uspije, izbrši poruku';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Prikaži slike s interneta';
$labels['fromknownsenders'] = 'od poznatih pošiljatelja';
$labels['always'] = 'uvijek';
$labels['showinlineimages'] = 'Prikaži slike ispod poruke';
$labels['autosavedraft'] = 'Automatski spremi draft';
$labels['everynminutes'] = 'svakih $n minuta';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nikada';
$labels['immediately'] = 'odmah';
$labels['messagesdisplaying'] = 'Prikazujem poruke';
@@ -359,11 +443,13 @@ $labels['checkallfolders'] = 'Provjeri nove poruke u svim mapama';
$labels['displaynext'] = 'Nakon brisanja/micanja poruke, prikaži slijedeću';
$labels['defaultfont'] = 'Predodređeni font HTML poruke';
$labels['mainoptions'] = 'Glavne postavke';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Sekcija';
$labels['maintenance'] = 'Održavanje';
$labels['newmessage'] = 'Nova poruka';
$labels['signatureoptions'] = 'Postavke potpisa';
$labels['whenreplying'] = 'Prilikom odgovora';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'zapoÄni novu poruku iznad originala';
$labels['replybottomposting'] = 'zapoÄni novu poruku ispod originala';
$labels['replyremovesignature'] = 'Kod odgovaranja, makni originalni potpis iz poruke';
@@ -376,13 +462,20 @@ $labels['afternseconds'] = 'nakon $n sekundi';
$labels['reqmdn'] = 'Uvijek zatraži potvrdu o primitku poruke';
$labels['reqdsn'] = 'Uvijek zatraži potvrdu o slanju poruke';
$labels['replysamefolder'] = 'Spremi odgovore u mapu gdje se nalazi poruka';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'PreskoÄi alternativne email adrese u autocomplete prijedlozima';
+$labels['listnamedisplay'] = 'List contacts as';
$labels['spellcheckbeforesend'] = 'Provjeri pravopis prije slanja poruke';
$labels['spellcheckoptions'] = 'Postavke provjere pravopisa';
$labels['spellcheckignoresyms'] = 'Ignoriraj rijeÄi koje sadrže simbole';
$labels['spellcheckignorenums'] = 'Ignoriraj rijeÄi koje sadrže brojeve';
$labels['spellcheckignorecaps'] = 'Ignoriraj rijeÄi sa sa svim velikim slovima';
$labels['addtodict'] = 'Dodaj u rjeÄnik';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Mapa';
$labels['folders'] = 'Mape';
$labels['foldername'] = 'Ime mape';
@@ -403,19 +496,26 @@ $labels['foldertype'] = 'Vrsta mape';
$labels['personalfolder'] = 'Privatna mapa';
$labels['otherfolder'] = 'Mapa drugih korisnika';
$labels['sharedfolder'] = 'Javna mapa';
+
$labels['sortby'] = 'Sortiraj po';
$labels['sortasc'] = 'Sortiraj rastućim nizom';
$labels['sortdesc'] = 'Sortiraj opadajućim nizom';
$labels['undo'] = 'Poništi';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'InaÄica';
$labels['source'] = 'Izvor';
$labels['license'] = 'Licenca';
$labels['support'] = 'Podrška';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engleski';
$labels['westerneuropean'] = 'Zapadno Evropski';
@@ -434,4 +534,5 @@ $labels['vietnamese'] = 'Vijetnamski';
$labels['japanese'] = 'Japanski';
$labels['korean'] = 'Korejski';
$labels['chinese'] = 'Kineski';
+
?>
diff --git a/program/localization/hr_HR/messages.inc b/program/localization/hr_HR/messages.inc
index 2e51848eb..3e6cc6daf 100644
--- a/program/localization/hr_HR/messages.inc
+++ b/program/localization/hr_HR/messages.inc
@@ -15,6 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Prijava neuspješna';
$messages['cookiesdisabled'] = 'VaÅ¡ Web preglednik ne podržava kolaÄiće (cookies)';
$messages['sessionerror'] = 'Morate se ponovno ulogirati';
@@ -22,12 +25,17 @@ $messages['storageerror'] = 'Neuspješna veza na IMAP server';
$messages['servererror'] = 'Greška poslužitelja';
$messages['servererrormsg'] = 'Greška na serveru: $msg';
$messages['dberror'] = 'Greška baze podataka!';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'Nemoguća izvedba operacije. Mapa je samo za Äitanje.';
$messages['errornoperm'] = 'Nemoguća izvedba operacije. Dozvola odbijena.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Nepravilan zahtijev! Podaci nisu spremljeni.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Nema poruka u sanduÄiću';
$messages['loggedout'] = 'Uspješno ste se odjavili. Zbogom!';
$messages['mailboxempty'] = 'SanduÄuć je prazan';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'UÄitavanje...';
$messages['uploading'] = 'Prenosim datoteku...';
$messages['uploadingmany'] = 'Prenosim datoteke...';
@@ -48,6 +56,8 @@ $messages['contactnotfound'] = 'Traženi kontakt nije pronađen';
$messages['contactsearchonly'] = 'Upišite nekoliko pojmova za pretragu imenika';
$messages['sendingfailed'] = 'Greška pri slanju poruke';
$messages['senttooquickly'] = 'Molimo saÄekajte $sec sek. prije slanja ove poruke';
+$messages['errorsavingsent'] = 'Greška pri spremanju poslane poruke';
+$messages['errorsaving'] = 'Greška pri spremanju';
$messages['errormoving'] = 'Greška pri premještanju poruke';
$messages['errorcopying'] = 'Greška pri kopiranju poruke';
$messages['errordeleting'] = 'Greška pri brisanju poruke';
@@ -91,6 +101,8 @@ $messages['converting'] = 'Formatiranje poruke';
$messages['messageopenerror'] = 'UÄitavanje poruke nije uspjelo';
$messages['fileuploaderror'] = 'Prijenos datoteke nije uspio';
$messages['filesizeerror'] = 'Datoteka je prevelika. Maksimalna veliÄina je $size';
+$messages['copysuccess'] = 'Uspješno kopirano $n adresa';
+$messages['copyerror'] = 'Nije uspjelo kopiranje adresa';
$messages['sourceisreadonly'] = 'Ovaj resurs adresa je samo za Äitanje';
$messages['errorsavingcontact'] = 'Nije uspjelo spremanje adrese kontakta';
$messages['movingmessage'] = 'Premještanje poruke...';
@@ -109,7 +121,9 @@ $messages['selectimportfile'] = 'Odaberite datoteku za prijenos';
$messages['addresswriterror'] = 'U odabrani adresar nije moguće zapisivat...';
$messages['contactaddedtogroup'] = 'Kontakti uspješno dodani ovoj grupi';
$messages['contactremovedfromgroup'] = 'Kontakti uspješno izbrisani iz ove grupe';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'Uvozim, molimo saÄekajte...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>UspjeÅ¡no je uvezeno $inserted kontakt(a), preskoÄeno $skipped već postojećih</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>PreskoÄeno $skipped postojećih unosa</b>';
$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
@@ -125,6 +139,7 @@ $messages['smtperror'] = 'SMTP Greška: $msg';
$messages['emailformaterror'] = 'Nepravilna e-mail adresa: $email';
$messages['toomanyrecipients'] = 'Previše primatelja. Smanjite broj primatelja na $max.';
$messages['maxgroupmembersreached'] = 'Broj Älanova grupe prelazi preko maximuma od $max';
+$messages['internalerror'] = 'Dogodila se interna greška. Molimo Vas pokušajte ponovo.';
$messages['contactdelerror'] = 'Kontakti ne mogu biti obrisani.';
$messages['contactdeleted'] = 'Kontakti uspješno obrisani.';
$messages['contactrestoreerror'] = 'Ne mogu vratiti obrisan(e) kontakt(e).';
@@ -150,4 +165,7 @@ $messages['invalidimageformat'] = 'Format slike nije ispravan.';
$messages['mispellingsfound'] = 'Greške pravopisa su pronađene u poruci.';
$messages['parentnotwritable'] = 'Nije moguće stvoriti/pomaknuti mapu u odabranu mapu. Nemate prava pristupa.';
$messages['messagetoobig'] = 'Dio poruke je prevelik za procesiranje.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/hu_HU/labels.inc b/program/localization/hu_HU/labels.inc
index f8d6a1c23..3cc5da1aa 100644
--- a/program/localization/hu_HU/labels.inc
+++ b/program/localization/hu_HU/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Üdvözli a $product';
$labels['username'] = 'Felhasználónév';
$labels['password'] = 'Jelszó';
$labels['server'] = 'Szerver';
$labels['login'] = 'Bejelentkezés';
+
+// taskbar
$labels['logout'] = 'Kijelentkezés';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Beállítások';
$labels['addressbook'] = 'Címjegyzék';
+
+// mailbox names
$labels['inbox'] = 'Érkezett levelek';
$labels['drafts'] = 'Piszkozatok';
$labels['sent'] = 'Küldött levelek';
$labels['trash'] = 'Törölt elemek';
$labels['junk'] = 'Kéretlen levelek';
-$labels['show_real_foldernames'] = 'Az valós nevek megjelenítése a speciális mappáknál.';
+
+// message listing
$labels['subject'] = 'Tárgy';
$labels['from'] = 'Feladó';
$labels['sender'] = 'Feladó';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Sürgősség';
$labels['organization'] = 'Szervezet';
$labels['readstatus'] = 'Olvasott';
$labels['listoptions'] = 'Üzenetlista beállítások...';
+
$labels['mailboxlist'] = 'Mappák';
$labels['messagesfromto'] = 'Ãœzenetek: $from - $to / $count';
$labels['threadsfromto'] = 'Témák ($from - $to, összesen $count)';
$labels['messagenrof'] = '$nr / $count üzenet';
$labels['fromtoshort'] = '$from – $to / $count';
+
$labels['copy'] = 'Másolás';
$labels['move'] = 'Ãthelyezés';
$labels['moveto'] = 'Ãthelyezés...';
@@ -56,9 +67,13 @@ $labels['download'] = 'letöltés';
$labels['open'] = 'Megnyítás';
$labels['showattachment'] = 'Megjelenítés';
$labels['showanyway'] = 'Megjelnités mindenképpen';
+
$labels['filename'] = 'Fájl neve';
$labels['filesize'] = 'Fájl mérete';
+
$labels['addtoaddressbook'] = 'Hozzáadás a címjegyzékhez';
+
+// weekdays short
$labels['sun'] = 'Vas';
$labels['mon'] = 'Hét';
$labels['tue'] = 'Kedd';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Szer';
$labels['thu'] = 'Csüt';
$labels['fri'] = 'Pén';
$labels['sat'] = 'Szom';
+
+// weekdays long
$labels['sunday'] = 'Vasárnap';
$labels['monday'] = 'Hétfő';
$labels['tuesday'] = 'Kedd';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Szerda';
$labels['thursday'] = 'Csütörtök';
$labels['friday'] = 'Péntek';
$labels['saturday'] = 'Szombat';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Febr';
$labels['mar'] = 'Márc';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Szept';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Január';
$labels['longfeb'] = 'Február';
$labels['longmar'] = 'Március';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Szeptember';
$labels['longoct'] = 'Október';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'Ma';
+
+// toolbar buttons
$labels['refresh'] = 'Frissítés';
$labels['checkmail'] = 'Új üzenetek ellenőrzése';
$labels['compose'] = 'Üzenet létrehozása';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'További műveletek...';
$labels['more'] = 'Még egy';
$labels['back'] = 'Vissza';
$labels['options'] = 'Beállítások';
+
$labels['select'] = 'Kijelölés';
$labels['all'] = 'Összes';
$labels['none'] = 'Nincs';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Összes kibontása';
$labels['expand-unread'] = 'Olvasatlanok kibontása';
$labels['collapse-all'] = 'Összes összecsukása';
$labels['threaded'] = 'Téma nézet';
+
$labels['autoexpand_threads'] = 'Témák kibontása';
$labels['do_expand'] = 'minden téma';
$labels['expand_only_unread'] = 'csak ahol van olvasatlan üzenet';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Oszlopok listája';
$labels['listsorting'] = 'Rendezés oszlopa';
$labels['listorder'] = 'Rendezés sorrendje';
$labels['listmode'] = 'Megjelenítési mód';
+
$labels['folderactions'] = 'Mappaműveletek...';
$labels['compact'] = 'Tömörítés';
$labels['empty'] = 'Kiürítés';
-$labels['importmessages'] = 'Üzenetek importálása';
+
$labels['quota'] = 'Helyfoglalás';
$labels['unknown'] = 'ismeretlen';
$labels['unlimited'] = 'korlátlan';
+
$labels['quicksearch'] = 'Gyorskeresés';
$labels['resetsearch'] = 'Alapállapot';
$labels['searchmod'] = 'Keresési opciók';
$labels['msgtext'] = 'Teljes üzenet';
$labels['body'] = 'Törzs';
-$labels['type'] = 'Típus';
-$labels['namex'] = 'Név';
+
$labels['openinextwin'] = 'Megnyitás új ablakban';
$labels['emlsave'] = 'Letöltés (.eml)';
$labels['changeformattext'] = 'Megjelenítés sima szöveges formátumban';
$labels['changeformathtml'] = 'Megjelenítés HTML formátumban';
+
+// message compose
$labels['editasnew'] = 'Szerkesztés újként';
$labels['send'] = 'Küldés';
$labels['sendmessage'] = 'Üzenet küldése';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Olvasási visszaigazolás';
$labels['dsn'] = 'Kézbesítési visszaigazolás';
$labels['mailreplyintro'] = '$date időpontban $sender ezt írta:';
$labels['originalmessage'] = 'Eredeti üzenet';
+
$labels['editidents'] = 'Azonosítók szerkesztése';
$labels['spellcheck'] = 'Helyesírás ellenőrzés';
$labels['checkspelling'] = 'Helyesírás-ellenőrzés';
$labels['resumeediting'] = 'Helyesírás-ellenőrzés vége';
$labels['revertto'] = 'Visszaállítás erre';
-$labels['responses'] = 'Válaszok';
-$labels['insertresponse'] = 'Egy válasz beillesztése';
-$labels['manageresponses'] = 'Válaszok kezelése';
-$labels['savenewresponse'] = 'Új válasz mentése';
-$labels['editresponses'] = 'Válaszok szerkesztése';
-$labels['editresponse'] = 'Válasz szerkesztése';
-$labels['responsename'] = 'Név';
-$labels['responsetext'] = 'Válasz Szöveg';
+
$labels['attach'] = 'Csatolás';
$labels['attachments'] = 'Csatolmányok';
$labels['upload'] = 'Feltöltés';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = 'Bezárás';
$labels['messageoptions'] = 'Üzenetbeállítások...';
+
$labels['low'] = 'Alacsony';
$labels['lowest'] = 'Legkisebb';
$labels['normal'] = 'Normál';
$labels['high'] = 'Magas';
$labels['highest'] = 'Legmagasabb';
+
$labels['nosubject'] = '(nincs tárgy)';
$labels['showimages'] = 'Képek megjelenítése';
$labels['alwaysshow'] = 'Képek megjelenítése mindig, ha a feladó $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Ez egy piszkozat.';
$labels['andnmore'] = 'további $nr...';
$labels['togglemoreheaders'] = 'Több üzenet fejrész(header) megjelenítése';
$labels['togglefullheaders'] = 'Nyers üzenet fejléc megjelenítés- elrejtés';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Egyszerű szöveg';
$labels['savesentmessagein'] = 'Elküldött üzenet mentése ide';
$labels['dontsave'] = 'nincs mentés';
$labels['maxuploadsize'] = 'A maximális feltölthető fájl mérete $size';
+
$labels['addcc'] = 'Cc (Másolati cím) hozzáadása';
$labels['addbcc'] = 'Bcc (titkos másolati cím) hozzáadása';
$labels['addreplyto'] = 'Válaszcím hozzáadása';
$labels['addfollowupto'] = 'Hírcsoport válasz hozzáadása';
+
+// mdn
$labels['mdnrequest'] = 'Az üzenet küldője értesítést kér arról, hogy elolvasta a levelet. El legyen küldve az olvasási visszaigazolás?';
$labels['receiptread'] = 'Olvasási visszaigazolás (olvasott)';
$labels['yourmessage'] = 'Ez az üzenete olvasási visszaigazolása';
$labels['receiptnote'] = 'Megjegyzés: Ez az olvasási visszaigazolás csak azt igazolja, hogy az üzenet megjelenítésre került a címzett számítógépén. Nincs rá garancia, hogy a címzett elolvasta volna az üzenetet illetve megértette volna annak tartalmát.';
+
+// address boook
$labels['name'] = 'Megjelenített név';
$labels['firstname'] = 'Keresztnév';
$labels['surname'] = 'Vezetéknév';
@@ -270,6 +301,7 @@ $labels['search'] = 'Keresés';
$labels['advsearch'] = 'Részletes keresés';
$labels['advanced'] = 'Haladó';
$labels['other'] = 'Egyéb';
+
$labels['typehome'] = 'Otthon';
$labels['typework'] = 'Munkahely';
$labels['typeother'] = 'Egyéb';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Asszisztens';
$labels['typehomepage'] = 'Weboldal';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Új mező hozzáadása...';
$labels['addcontact'] = 'Új kapcsolat hozzáadása';
$labels['editcontact'] = 'Kapcsolat szerkesztése';
$labels['contacts'] = 'Kapcsolatok';
$labels['contactproperties'] = 'Kapcsolat tulajdonságai';
$labels['personalinfo'] = 'Személyes adatok';
+
$labels['edit'] = 'Szerkesztés';
$labels['cancel'] = 'Mégsem';
$labels['save'] = 'Mentés';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Ãtnevezés';
$labels['addphoto'] = 'Kép hozzáadása';
$labels['replacephoto'] = 'Kép cseréje';
$labels['uploadphoto'] = 'Fotó feltöltése';
+
$labels['newcontact'] = 'Új kapcsolat létrehozása';
$labels['deletecontact'] = 'Kijelölt kapcsolatok törlése';
$labels['composeto'] = 'E-mail küldése erre a címre';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Új csoport';
$labels['grouprename'] = 'Csoport átnevezése';
$labels['groupdelete'] = 'Csoport törlése';
$labels['groupremoveselected'] = 'A kijelölt partnerek törlése a csopotból';
+
$labels['previouspage'] = 'Előző oldal';
$labels['firstpage'] = 'Első oldal';
$labels['nextpage'] = 'Következő oldal';
$labels['lastpage'] = 'Utolsó oldal';
+
$labels['group'] = 'Csoport';
$labels['groups'] = 'Csoportok';
-$labels['listgroup'] = 'Csoport tagjainak listája';
$labels['personaladrbook'] = 'Személyes címjegyzék';
+
$labels['searchsave'] = 'Keresés mentése';
$labels['searchdelete'] = 'Keresés törlése';
+
$labels['import'] = 'Importálás';
$labels['importcontacts'] = 'Kapcsolatok importálása';
$labels['importfromfile'] = 'Importálás fájlból:';
-$labels['importtarget'] = 'Kapcsolatok hozzáadása ';
+$labels['importtarget'] = 'Kapcsolatok hozzáadása a címjegyzékhez:';
$labels['importreplace'] = 'A teljes címjegyzék cseréje';
-$labels['importgroups'] = 'Csoport hozzárendelések importálása';
-$labels['importgroupsall'] = 'Mind(csoport létrehozása amennyiben szükséges)';
-$labels['importgroupsexisting'] = 'Csak már létező csoportoknak';
$labels['importdesc'] = 'Feltölthetsz partnereket egyébb már létező címjegyzékekből. <br/>Jelenleg a következő két tipusú címjegyzékek importálása lehetséges <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> és a CSV (comma-separated/vesszővel tagolt) formátum.';
$labels['done'] = 'Kész';
+
+// settings
$labels['settingsfor'] = 'Beállítás';
$labels['about'] = 'Névjegy';
$labels['preferences'] = 'Beállítások';
$labels['userpreferences'] = 'Felhasználói beállítások';
$labels['editpreferences'] = 'Felhasználói beállítások szerkesztése';
+
$labels['identities'] = 'Azonosítók';
$labels['manageidentities'] = 'Hozzáférés azonosítóinak kezelése';
$labels['newidentity'] = 'Új azonosító';
+
$labels['newitem'] = 'Új elem';
$labels['edititem'] = 'Elem szerkesztése';
+
$labels['preferhtml'] = 'HTML megjelenítés';
$labels['defaultcharset'] = 'Alapértelmezett karakterkódolás';
$labels['htmlmessage'] = 'HTML üzenet';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Számot tartalmazó szavak kihagyása';
$labels['spellcheckignorecaps'] = 'Csak nagybetűt tartalmazó szavak kihagyása';
$labels['addtodict'] = 'Hozzáadás a szótárhoz';
$labels['mailtoprotohandler'] = 'Beállítás a mailto: linkek kezelőjeként';
-$labels['standardwindows'] = 'A felugró ablakok használata szokásos ablakként';
$labels['forwardmode'] = 'Üzenet továbbítás';
$labels['inline'] = 'beágyazott';
$labels['asattachment'] = 'csatolmányként';
+
$labels['folder'] = 'Mappa';
$labels['folders'] = 'Mappák';
$labels['foldername'] = 'Mappa neve';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Mappa típusa';
$labels['personalfolder'] = 'Privát mappa';
$labels['otherfolder'] = 'Más felhasználó(k) mappája';
$labels['sharedfolder'] = 'Megosztott mappa';
+
$labels['sortby'] = 'Rendezés';
$labels['sortasc'] = 'növekvő';
$labels['sortdesc'] = 'csökkenő';
$labels['undo'] = 'Visszavonás';
+
$labels['installedplugins'] = 'Telepített bővítmények';
$labels['plugin'] = 'Bővítmény';
$labels['version'] = 'Verzió';
$labels['source'] = 'Forrás';
$labels['license'] = 'Licensz';
$labels['support'] = 'Támogatás';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Angol';
$labels['westerneuropean'] = 'Nyugat-európai';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnámi';
$labels['japanese'] = 'Japán';
$labels['korean'] = 'Koreai';
$labels['chinese'] = 'Kínai';
+
?>
diff --git a/program/localization/hu_HU/messages.inc b/program/localization/hu_HU/messages.inc
index 79de6ed2b..6528602a4 100644
--- a/program/localization/hu_HU/messages.inc
+++ b/program/localization/hu_HU/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Hiba történt!';
$messages['loginfailed'] = 'Sikertelen bejelentkezés.';
$messages['cookiesdisabled'] = 'A böngésző nem támogatja a sütik használatát';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Az üzenet elküldve';
$messages['savingmessage'] = 'Az üzenet mentése...';
$messages['messagesaved'] = 'Az üzenet elmentve a Piszkozatokhoz';
$messages['successfullysaved'] = 'A mentés sikerült';
-$messages['savingresponse'] = 'A válasz szövegének mentése...';
-$messages['deleteresponseconfirm'] = 'Biztosan törli ezt a válasz szöveget?';
$messages['addedsuccessfully'] = 'A kapcsolat hozzáadása a címjegyzékhez megtörtént';
$messages['contactexists'] = 'Ezzel az e-mail címmel már létezik kapcsolat';
$messages['contactnameexists'] = 'Ezzel a névvel már létezik kapcsolat';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Formázás eltávolítása az üzenetből...';
$messages['messageopenerror'] = 'A levelek a szerverről nem tölthetők le';
$messages['fileuploaderror'] = 'Feltöltés sikertelen';
$messages['filesizeerror'] = 'A feltöltött fájl mérete meghaladja a maximális $size méretet';
-$messages['copysuccess'] = 'Sikeresen átmásolva $nr kapcsolat.';
-$messages['movesuccess'] = 'Sikeresen átmozgatva $nr kapcsolat.';
-$messages['copyerror'] = 'Nem lehet másolni a kapcsolatokat.';
-$messages['moveerror'] = 'Nem lehet átmozgatni a kapcsolatokat.';
+$messages['copysuccess'] = '$nr cím sikeresen másolva';
+$messages['copyerror'] = 'Egyetlen cím sem másolható';
$messages['sourceisreadonly'] = 'Ez a címforrás csak olvasható';
$messages['errorsavingcontact'] = 'A kapcsolat címe nem menthető';
$messages['movingmessage'] = 'Üzenet(ek) mozgatása...';
$messages['copyingmessage'] = 'Üzenet(ek) másolása...';
$messages['copyingcontact'] = 'Kapcsolat(ok) másolása...';
-$messages['movingcontact'] = 'Kapcsolat(ok) átmozgatása ...';
$messages['deletingmessage'] = 'Üzenet(ek) törlése....';
$messages['markingmessage'] = 'Üzenet(ek) megjelölése...';
$messages['addingmember'] = 'Kapcsolat(ok) hozzáadása a csoporthoz...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importálás folyamatban, kérem várjon...';
$messages['importformaterror'] = 'Az importálás sikertelen! A feltöltött fájl ismeretlen formátumú.';
$messages['importconfirm'] = '<b>Sikeresen importálásra került $inserted kapcsolat, kihagyva $skipped már létező bejegyzés</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Kihagyva $skipped már létező bejegyzés</b>';
-$messages['importmessagesuccess'] = 'Sikeresen importálva $nr üzenet';
-$messages['importmessageerror'] = 'Sikertelen az importálás. A feltőltött file nem értelmezhető üzenetként vagy postafiók (mailbox) fileként.';
$messages['opnotpermitted'] = 'A művelet nem megengedett!';
$messages['nofromaddress'] = 'A kiválasztott azonosítónál nincs email beállítva.';
$messages['editorwarning'] = 'Az egyszerű szöveges formátumra való váltás az összes formázás elvesztésével jár. Biztosan folytatja?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'SMTP hiba ($code): $msg';
$messages['emailformaterror'] = 'Helytelen formátumú e-mail cím: $email';
$messages['toomanyrecipients'] = 'Túl sok a címzett. Csökkentse a címzettek számát maximum $max címre!';
$messages['maxgroupmembersreached'] = 'A csoport létszáma meghaladja a maximum $max főt';
-$messages['internalerror'] = 'Belső hiba történt. Kérjük próbálja újra!';
+$messages['internalerror'] = 'Belső hiba történt, kérjük próbálja újra!';
$messages['contactdelerror'] = 'Hiba a kapcsolat(ok) törlésekor';
$messages['contactdeleted'] = 'Kapcsolat(ok) sikeresen törölve';
$messages['contactrestoreerror'] = 'Nem sikerült a törölt kapcsolat(ok) helyreállítása';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Nem sikerült a mappa létrehozása/mozgatása
$messages['messagetoobig'] = 'Az üzenetrész túl nagy a feldolgozáshoz.';
$messages['attachmentvalidationerror'] = 'FIGYELEM! A csatalmány veszélyes lehet, mert a típusa nem egyezik az üzenetben beállított típussal. Amennyiben nem megbizható az üzenet küldője, ne nyissa meg a csatolmányt a böngészőben mert ártalmas lehet a tartalma.<br/><br/><em>Üzenetben beállított tipus: $expected; az érzékelt típus: $detected</em>';
$messages['noscriptwarning'] = 'FIGYELEM: Ez webmail szolgáltatása igényli a Javascript futtatásának a lehetőségét! Amennyiben használni szeretné, engedélyezze a JavaScript futtatását a böngészőjének a beállatásaiban.';
+
?>
diff --git a/program/localization/hy_AM/labels.inc b/program/localization/hy_AM/labels.inc
index fec95f3cd..99cee4ab9 100644
--- a/program/localization/hy_AM/labels.inc
+++ b/program/localization/hy_AM/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Ô²Õ¡Ö€Õ« Õ£Õ¡Õ¬Õ¸Ö‚Õ½Õ¿ $product';
$labels['username'] = 'Õ•Õ£Õ¿Õ¾Õ¸Õ²';
$labels['password'] = 'Ô³Õ¡Õ²Õ¿Õ¶Õ¡Õ¢Õ¡Õ¼';
$labels['server'] = 'ÕÕ¥Ö€Õ¾Õ¥Ö€';
$labels['login'] = 'Õ„Õ¸Ö‚Õ¿Ö„';
+
+// taskbar
$labels['logout'] = 'ÔµÕ¬Ö„';
$labels['mail'] = 'Էլ–փոստ';
$labels['settings'] = 'Õ†Õ¡Õ­Õ¡Õ½Õ«Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€';
$labels['addressbook'] = 'Õ€Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€';
+
+// mailbox names
$labels['inbox'] = 'Õ“Õ¸Õ½Õ¿Õ¡Ö€Õ¯Õ²';
$labels['drafts'] = 'ÕÖ‡Õ¡Õ£Ö€Õ¥Ö€';
$labels['sent'] = 'ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¾Õ¡Õ®';
$labels['trash'] = 'Ô±Õ²Õ¢Õ¡Ö€Õ¯Õ²';
$labels['junk'] = 'Ô¹Õ¡ÖƒÕ¸Õ¶';
+
+// message listing
$labels['subject'] = 'ÕŽÕ¥Ö€Õ¶Õ¡Õ£Õ«Ö€';
$labels['from'] = 'ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¸Õ²';
+$labels['sender'] = 'Sender';
$labels['to'] = 'ÕÕ¿Õ¡ÖÕ¸Õ²';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
@@ -42,18 +53,27 @@ $labels['priority'] = 'Ô±Õ¼Õ¡Õ¾Õ¥Õ¬Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
$labels['organization'] = 'Ô¿Õ¡Õ¦Õ´Õ¡Õ¯Õ¥Ö€ÕºÕ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
$labels['readstatus'] = 'Ô¸Õ¶Õ©Õ¥Ö€ÖÕ´Õ¡Õ¶ Õ¯Õ¡Ö€Õ£Õ¡Õ¾Õ«Õ³Õ¡Õ¯';
$labels['listoptions'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¯Õ« ընտրանքներ…';
+
$labels['mailboxlist'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ¶Õ¥Ö€';
$labels['messagesfromto'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€ $fromâ€“Õ«Ö $to–ը Õ¥Õ²Õ¡Õ® $count–իÖ';
$labels['threadsfromto'] = 'Ô¹Õ¥Õ´Õ¡Õ¶Õ¥Ö€ $from-Õ«Ö $to Õ¨Õ¶Õ¤Õ°Õ¡Õ¶Õ¸Ö‚Ö€ $count-Õ«Ö';
$labels['messagenrof'] = 'Õ†Õ¡Õ´Õ¡Õ¯ $nr Õ¥Õ²Õ¡Õ® $count–իÖ';
$labels['fromtoshort'] = '$from-Õ«Ö $to Õ¨Õ¶Õ¤Õ°Õ¡Õ¶Õ¸Ö‚Ö€ $count-Õ«Ö';
+
$labels['copy'] = 'Cc';
$labels['move'] = 'ÕÕ¥Õ²Õ¡ÖƒÕ¸Õ­Õ¥Õ¬';
$labels['moveto'] = 'ÕÕ¥Õ²Õ¡ÖƒÕ¸Õ­Õ¥Õ¬...';
$labels['download'] = 'Õ”Õ¡Õ·Õ¥Õ¬';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Õ–Õ¡ÕµÕ¬Õ« Õ¡Õ¶Õ¸Ö‚Õ¶';
$labels['filesize'] = 'Õ–Õ¡ÕµÕ¬Õ« Õ¹Õ¡Öƒ';
+
$labels['addtoaddressbook'] = 'Õ€Õ«Õ·Õ¥Õ¬ Õ°Õ¡Õ½ÖÕ¥Õ¶';
+
+// weekdays short
$labels['sun'] = 'Ô¿Õ«Ö€';
$labels['mon'] = 'ÔµÖ€Õ¯';
$labels['tue'] = 'ÔµÖ€Ö„';
@@ -61,6 +81,8 @@ $labels['wed'] = 'Õ‰Ö€Ö„';
$labels['thu'] = 'Õ€Õ¶Õ£';
$labels['fri'] = 'ÕˆÖ‚Ö€Õ¢';
$labels['sat'] = 'Õ‡Õ¢Õ©';
+
+// weekdays long
$labels['sunday'] = 'Ô¿Õ«Ö€Õ¡Õ¯Õ«';
$labels['monday'] = 'ÔµÖ€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«';
$labels['tuesday'] = 'ÔµÖ€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«';
@@ -68,6 +90,8 @@ $labels['wednesday'] = 'Õ‰Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«';
$labels['thursday'] = 'Õ€Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«';
$labels['friday'] = 'ÕˆÖ‚Ö€Õ¢Õ¡Õ©';
$labels['saturday'] = 'Õ‡Õ¡Õ¢Õ¡Õ©';
+
+// months short
$labels['jan'] = 'Õ€Õ¶Õ¾';
$labels['feb'] = 'Õ“Õ¥Õ¿';
$labels['mar'] = 'Õ„Õ¡Ö€';
@@ -80,6 +104,8 @@ $labels['sep'] = 'ÕÕ¥Õº';
$labels['oct'] = 'Õ€Õ¸Õ¯';
$labels['nov'] = 'Õ†Õ¸Õµ';
$labels['dec'] = 'Ô´Õ¥Õ¯';
+
+// months long
$labels['longjan'] = 'Õ€Õ¸Ö‚Õ¶Õ¾Õ¡Ö€';
$labels['longfeb'] = 'Õ“Õ¥Õ¿Ö€Õ¾Õ¡Ö€';
$labels['longmar'] = 'Õ„Õ¡Ö€Õ¿';
@@ -92,7 +118,10 @@ $labels['longsep'] = 'ÕÕ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€';
$labels['longoct'] = 'Õ€Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€';
$labels['longnov'] = 'Õ†Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€';
$labels['longdec'] = 'Ô´Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€';
+
$labels['today'] = 'Ô±ÕµÕ½Ö…Ö€';
+
+// toolbar buttons
$labels['refresh'] = 'Ô¹Õ¡Ö€Õ´Õ¡ÖÕ¶Õ¥Õ¬';
$labels['checkmail'] = 'ÕÕ¿Õ¸Ö‚Õ£Õ¥Õ¬ Õ¶Õ¸Ö€ Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€Õ¨';
$labels['compose'] = 'Ô³Ö€Õ¥Õ¬ Õ¶Õ¡Õ´Õ¡Õ¯';
@@ -125,6 +154,7 @@ $labels['moreactions'] = 'Õ€Õ¡Õ¾Õ¥Õ¬ÕµÕ¡Õ¬ Õ£Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€
$labels['more'] = 'Ô±Õ¾Õ¥Õ¬Õ«Õ¶';
$labels['back'] = 'ÔµÕ¿';
$labels['options'] = 'Ô¸Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€';
+
$labels['select'] = 'Õ†Õ·Õ¥Õ¬';
$labels['all'] = 'Ô²Õ¸Õ¬Õ¸Ö€Õ¨';
$labels['none'] = 'Õ‰Õ¶Õ·Õ¥Õ¬';
@@ -132,7 +162,9 @@ $labels['currpage'] = 'Ô±Õ¼Õ¯Õ¡ Õ§Õ»';
$labels['unread'] = 'Õ‰Õ¯Õ¡Ö€Õ¤Õ¡ÖÕ¡Õ®Õ¨';
$labels['flagged'] = 'Õ†Õ·Õ¾Õ¡Õ®';
$labels['unanswered'] = 'Ô±Õ¶ÕºÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Õ‹Õ¶Õ»Õ¾Õ¡Õ®';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Õ“Õ¸Õ­Õ¡Õ¿Õ¥Õ²Õ¥Õ¬';
$labels['filter'] = 'Ô¶Õ¿Õ«Õ¹';
$labels['list'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¯';
@@ -141,6 +173,7 @@ $labels['expand-all'] = 'Ô¸Õ¶Õ¤Õ¬Õ¡ÕµÕ¶Õ¥Õ¬ Õ¢Õ¸Õ¬Õ¸Ö€Õ¨';
$labels['expand-unread'] = 'Ô¸Õ¶Õ¤Õ¬Õ¡ÕµÕ¶Õ¥Õ¬ Õ¹Õ¯Õ¡Ö€Õ¤Õ¡ÖÕ¾Õ¡Õ®Õ¨';
$labels['collapse-all'] = 'Õ“Õ¬Õ¹Õ¥Õ¬ Õ¢Õ¸Õ¬Õ¸Ö€Õ¨';
$labels['threaded'] = 'Ô¹Õ¥Õ´Õ¡Õ¾Õ¸Ö€Õ¾Õ¡Õ®';
+
$labels['autoexpand_threads'] = 'Ô²Õ¡Ö Õ¡Õ¶Õ¥Õ¬ Õ©Õ¥Õ´Õ¡Õ¶Õ¥Ö€Õ¨';
$labels['do_expand'] = 'Õ¢Õ¸Õ¬Õ¸Ö€ Õ©Õ¥Õ´Õ¡Õ¶Õ¥Ö€Õ¨';
$labels['expand_only_unread'] = 'Õ´Õ«Õ¡ÕµÕ¶ Õ¹Õ¯Õ¡Ö€Õ¤Õ¡ÖÕ¾Õ¡Õ® Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€Õ¸Õ¾';
@@ -156,19 +189,29 @@ $labels['listcolumns'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¯Õ« Õ½ÕµÕ¸Ö‚Õ¶ÕµÕ¡Õ¯Õ¶Õ¥Ö€';
$labels['listsorting'] = 'ÕÕ¥Õ½Õ¡Õ¯Õ¡Õ¾Õ¸Ö€Õ´Õ¡Õ¶ Õ½ÕµÕ¸Ö‚Õ¶ÕµÕ¡Õ¯';
$labels['listorder'] = 'ÕÕ¥Õ½Õ¡Õ¯Õ¡Õ¾Õ¸Ö€Õ´Õ¡Õ¶ Õ¯Õ¡Ö€Õ£Õ¨';
$labels['listmode'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¯Õ¸Õ¾ Õ¿Õ¥Õ½Ö„Õ« Õ¿Õ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯Õ¨';
+
$labels['folderactions'] = 'Պանակի գործողություններ…';
$labels['compact'] = 'ÕÕ¥Õ²Õ´Õ¥Õ¬';
$labels['empty'] = 'Ô´Õ¡Õ¿Õ¡Ö€Õ¯Õ¥Õ¬';
+
$labels['quota'] = 'Ô´Õ«Õ½Õ¯Õ¡ÕµÕ«Õ¶ Õ¿Õ¡Ö€Õ¡Õ®Ö„';
$labels['unknown'] = 'Õ¡Õ¶Õ°Õ¡ÕµÕ¿';
$labels['unlimited'] = 'Õ¡Õ¶Õ½Õ¡Õ°Õ´Õ¡Õ¶Õ¡ÖƒÕ¡Õ¯';
+
$labels['quicksearch'] = 'Ô±Ö€Õ¡Õ£ Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´';
$labels['resetsearch'] = 'ÕŽÕ¥Ö€Õ½Õ¯Õ½Õ¥Õ¬ Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´Õ¨';
$labels['searchmod'] = 'ÕˆÖ€Õ¸Õ¶Õ´Õ¡Õ¶ ÖƒÕ¸ÖƒÕ¸Õ­Õ«Õ¹Õ¶Õ¥Ö€';
$labels['msgtext'] = 'ÕˆÕ²Õ» Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Ô²Õ¡ÖÕ¥Õ¬ Õ¶Õ¸Ö€ ÕºÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶Õ¸Ö‚Õ´';
$labels['emlsave'] = 'Õ†Õ¥Ö€Õ¢Õ¥Õ¼Õ¶Õ¥Õ¬ (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Õ¸Ö€ÕºÕ¥Õ½ Õ¶Õ¸Ö€';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¥Õ¬';
$labels['savemessage'] = 'Õ€Õ«Õ·Õ¥Õ¬ Õ¸Ö€ÕºÕ¥Õ½ Õ½Ö‡Õ¡Õ£Õ«Ö€';
$labels['addattachment'] = 'Ô¿ÖÕ¥Õ¬ Ö†Õ¡ÕµÕ¬';
@@ -178,39 +221,52 @@ $labels['returnreceipt'] = 'ÕÕ¿Õ¡ÖÕ´Õ¡Õ¶ Õ°Õ¡Õ¾Õ¡Õ½Õ¿Õ¡Õ£Õ«Ö€';
$labels['dsn'] = 'Ô±Õ¼Õ¡Ö„Õ´Õ¡Õ¶ Õ¯Õ¡Ö€Õ£Õ¡Õ¾Õ«Õ³Õ¡Õ¯Õ« Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¸Ö‚Õ´';
$labels['mailreplyintro'] = '$date-Õ«Õ¶, $sender-Õ¨ Õ£Ö€Õ¥Ö.';
$labels['originalmessage'] = 'Ô±Õ¼Õ¡Õ»Õ«Õ¶ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨';
+
$labels['editidents'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Õ«Õ¶Ö„Õ¶Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€Õ¨';
$labels['spellcheck'] = 'ÕÕ¡Õ¼Õ¡Õ½Õ­Õ¡Õ¬Õ¶Õ¥Ö€';
$labels['checkspelling'] = 'ÕÕ¿Õ¸Ö‚Õ£Õ¥Õ¬ Õ¸Ö‚Õ²Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨';
$labels['resumeediting'] = 'Õ‡Õ¡Ö€Õ¸Ö‚Õ¶Õ¡Õ¯Õ¥Õ¬ Õ­Õ´Õ¢Õ¡Õ£Ö€Õ¸Ö‚Õ´Õ¨';
$labels['revertto'] = 'ÕŽÕ¥Ö€Õ¡Õ¯Õ¡Õ¶Õ£Õ¶Õ¥Õ¬';
+
$labels['attach'] = 'Ô¿ÖÕ¥Õ¬';
$labels['attachments'] = 'Ô¿ÖÕ¸Ö‚Õ´Õ¶Õ¥Ö€';
$labels['upload'] = 'Ô²Õ¥Õ¼Õ¶Õ¥Õ¬';
$labels['uploadprogress'] = '$percent ($current $total-Õ«Ö)';
$labels['close'] = 'Õ“Õ¡Õ¯Õ¥Õ¬';
$labels['messageoptions'] = 'Հաղորդագրության ընտրանքներ…';
+
$labels['low'] = 'Õ‘Õ¡Õ®Ö€';
$labels['lowest'] = 'Õ†Õ¾Õ¡Õ¦Õ¡Õ£Õ¸Ö‚ÕµÕ¶';
$labels['normal'] = 'Õ†Õ¸Ö€Õ´Õ¡Õ¬';
$labels['high'] = 'Ô¿Õ¡Ö€Ö‡Õ¸Ö€';
$labels['highest'] = 'Ô¿Õ¡Ö€Ö‡Õ¸Ö€Õ¡Õ£Õ¸Ö‚ÕµÕ¶';
+
$labels['nosubject'] = '(Õ¡Õ¼Õ¡Õ¶Ö Õ¾Õ¥Ö€Õ¶Õ¡Õ£Ö€Õ«)';
$labels['showimages'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¶Õ¯Õ¡Ö€Õ¶Õ¥Ö€Õ¨';
$labels['alwaysshow'] = 'Õ„Õ«Õ·Õ¿ ÖÕ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¶Õ¥Ö€Õ¨ $sender–իÖ';
$labels['isdraft'] = 'ÕÕ¡ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ½Ö‡Õ¡Õ£Õ«Ö€ Õ§';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ÕŠÕ¡Ö€Õ¦ Õ¿Õ¥Ö„Õ½Õ¿';
$labels['savesentmessagein'] = 'Ô³Ö€Õ¡Õ¶ÖÕ¥Õ¬ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¾Õ¡Õ® Õ¶Õ¡Õ´Õ¡Õ¯Õ¨';
$labels['dontsave'] = 'Õ‰Õ›Õ£Ö€Õ¡Õ¶ÖÕ¥Õ¬';
$labels['maxuploadsize'] = 'Ô±Õ¼Õ¡Õ¾Õ¥Õ¬Õ¡Õ£Õ¸Ö‚ÕµÕ¶ Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« Ö†Õ¡ÕµÕ¬Õ« Õ¹Õ¡ÖƒÕ¨ $size Õ§';
+
$labels['addcc'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Cc';
$labels['addbcc'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Bcc';
$labels['addreplyto'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Reply-To';
$labels['addfollowupto'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Õ°Õ¡Õ¾Õ¥Õ¬Õ¸Ö‚Õ´';
+
+// mdn
$labels['mdnrequest'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ°Õ¥Õ²Õ«Õ¶Õ¡Õ¯Õ¨ Õ­Õ¶Õ¤Ö€Õ¥Õ¬ Õ§ Õ¶Õ¡Õ´Õ¡Õ¯Õ¨ Õ¯Õ¡Ö€Õ¤Õ¡Õ¬Õ¸Ö‚Õ¶ ÕºÕ¥Õ½ Õ¿Õ¥Õ²Õ¥Õ¯Õ¡ÖÕ¶Õ¥Õ¬ Õ«Ö€Õ¥Õ¶Ö‰ Õ‘Õ¡Õ¶Õ¯Õ¡Õ¶Õ¸Ö‚Õ´ Õ§Ö„ ÕÕ¥Õ²Õ¥Õ¯Õ¡ÖÕ¶Õ¥ÕžÕ¬Ö‰';
$labels['receiptread'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¨Õ¶Õ©Õ¥Ö€ÖÕ´Õ¡Õ¶ Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¡Õ£Õ«Ö€';
$labels['yourmessage'] = 'ÕÕ¡ ÕÕ¥Ö€ Õ¶Õ¡Õ´Õ¡Õ¯Õ« Õ¨Õ¶Õ©Õ¥Ö€ÖÕ´Õ¡Õ¶ Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¡Õ£Õ«Ö€Õ¶ Õ§';
$labels['receiptnote'] = 'Õ†Õ·Õ¸Ö‚Õ´Õ Ô±ÕµÕ½ Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¡Õ£Õ«Ö€Õ¨ Õ¨Õ¶Õ¤Õ¡Õ´Õ¥Õ¶Õ¨ Õ¿Õ¥Õ²Õ¥Õ¯Õ¡ÖÕ¶Õ¸Ö‚Õ´ Õ§, Õ¸Ö€ Õ¶Õ¡Õ´Õ¡Õ¯Õ¨ ÖÕ¸Ö‚ÖÕ¡Õ¤Ö€Õ¾Õ¥Õ¬ Õ§ Õ°Õ¡Õ½ÖÕ¥Õ¡Õ¿Õ«Ö€Õ¸Õ» Õ°Õ¡Õ´Õ¡Õ¯Õ¡Ö€Õ¹Õ¸Õ¾Ö‰ Õ‰Õ¯Õ¡ Õ¸Ö€Ö‡Õ«ÖÕ¥ Õ¥Ö€Õ¡Õ·Õ­Õ«Ö„, Õ¸Ö€ Õ°Õ¡Õ½ÖÕ¥Õ¡Õ¿Õ¥Ö€Õ¨ Õ«Õ½Õ¯Õ¡ÕºÕ¥Õ½ Õ¯Õ¡Ö€Õ¤Õ¡ÖÕ¥Õ¬ Õ§ Õ¶Õ¡Õ´Õ¡Õ¯Õ¨Ö‰';
+
+// address boook
$labels['name'] = 'Õ„Õ¡Õ¯Õ¡Õ¶Õ¸Ö‚Õ¶';
$labels['firstname'] = 'Ô±Õ¶Õ¸Ö‚Õ¶';
$labels['surname'] = 'Ô±Õ¦Õ£Õ¡Õ¶Õ¸Ö‚Õ¶';
@@ -245,6 +301,7 @@ $labels['search'] = 'ÕˆÖ€Õ¸Õ¶Õ¸Ö‚Õ´';
$labels['advsearch'] = 'Ô½Õ¸Ö€Õ¡ÖÕ¾Õ¡Õ® Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´';
$labels['advanced'] = 'Ô½Õ¸Ö€Õ¡ÖÕ¾Õ¡Õ®';
$labels['other'] = 'Ô±ÕµÕ¬';
+
$labels['typehome'] = 'ÕÕ¸Ö‚Õ¶';
$labels['typework'] = 'Ô±Õ·Õ­Õ¡Õ¿Õ¡Õ¶Ö„';
$labels['typeother'] = 'Ô±ÕµÕ¬';
@@ -259,12 +316,14 @@ $labels['typeassistant'] = 'Õ•Õ£Õ¶Õ¡Õ¯Õ¡Õ¶';
$labels['typehomepage'] = 'ÕÕ¯Õ«Õ¦Õ¢';
$labels['typeblog'] = 'Ô²Õ¬Õ¸Õ£';
$labels['typeprofile'] = 'ÕŠÖ€Õ¸Ö†Õ¡ÕµÕ¬';
+
$labels['addfield'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ դաշտ…';
$labels['addcontact'] = 'Ô³Ö€Õ¡Õ¶ÖÕ¥Õ¬ Õ¶Õ·Õ¡Õ® Õ°Õ¡Õ½ÖÕ¥Õ¶';
$labels['editcontact'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Õ°Õ¡Õ½ÖÕ¥Õ¶';
$labels['contacts'] = 'Ô¿Õ¡ÕºÕ¸Ö€Õ¤Õ¶Õ¥Ö€';
$labels['contactproperties'] = 'Ô¿Õ¡ÕºÕ¸Ö€Õ¤Õ« Õ°Õ¡Õ¿Õ¯Õ¡Õ¶Õ«Õ·Õ¶Õ¥Ö€';
$labels['personalinfo'] = 'Ô±Õ¶Õ±Õ¶Õ¡Õ¯Õ¡Õ¶ Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö€';
+
$labels['edit'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬';
$labels['cancel'] = 'Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬';
$labels['save'] = 'Õ€Õ«Õ·Õ¥Õ¬';
@@ -273,44 +332,60 @@ $labels['rename'] = 'ÕŽÕ¥Ö€Õ¡Õ¶Õ¾Õ¡Õ¶Õ¥Õ¬';
$labels['addphoto'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬';
$labels['replacephoto'] = 'Õ“Õ¸Õ­Õ¡Ö€Õ«Õ¶Õ¥Õ¬';
$labels['uploadphoto'] = 'ÕŽÕ¥Ö€Õ¢Õ¥Õ¼Õ¶Õ¥Õ¬ Õ¬Õ¸Ö‚Õ½Õ¡Õ¶Õ¯Õ¡Ö€';
+
$labels['newcontact'] = 'ÕÕ¿Õ¥Õ²Õ®Õ¥Õ¬ Õ¶Õ¸Ö€ Õ°Õ¡Õ½ÖÕ¥Ö„Õ¡Ö€Õ¿';
$labels['deletecontact'] = 'Õ‹Õ¶Õ»Õ¥Õ¬ Õ¶Õ·Õ¡Õ® Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€Õ¨';
$labels['composeto'] = 'Ô³Ö€Õ¥Õ¬ Õ¶Õ¡Õ´Õ¡Õ¯';
$labels['contactsfromto'] = 'Õ€Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€ $fromâ€“Õ«Ö $to–ը Õ¥Õ²Õ¡Õ® $count–իÖ';
$labels['print'] = 'ÕÕºÕ¥Õ¬';
$labels['export'] = 'Ô±Ö€Õ¿Õ¡Õ°Õ¡Õ¶Õ¥Õ¬';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Ô±Ö€Õ¿Õ¡Õ°Õ¡Õ¶Õ¥Õ¬ Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ¨ vCard Õ¹Õ¡ÖƒÕ¡Õ±Ö‡Õ¸Õ¾';
$labels['newcontactgroup'] = 'ÕÕ¿Õ¥Õ²Õ®Õ¥Õ¬ Õ¯Õ¡ÕºÕ¸Ö€Õ¤Õ¶Õ¥Ö€Õ« Õ¶Õ¸Ö€ Õ­Õ¸Ö‚Õ´Õ¢';
$labels['grouprename'] = 'ÕŽÕ¥Ö€Õ¡Õ¶Õ¾Õ¡Õ¶Õ¥Õ¬ Õ­Õ¸Ö‚Õ´Õ¢Õ¨';
$labels['groupdelete'] = 'Õ‹Õ¶Õ»Õ¥Õ¬ Õ­Õ¸Ö‚Õ´Õ¢Õ¨';
$labels['groupremoveselected'] = 'Õ€Õ¥Õ¼Õ¡ÖÕ¶Õ¥Õ¬ Õ¶Õ·Õ¾Õ¡Õ® Õ¡Õ¶Õ±Õ¡Õ¶Ö Õ­Õ´Õ¢Õ«Ö';
+
$labels['previouspage'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¶Õ¡Õ­Õ¸Ö€Õ¤ Õ§Õ»Õ¨';
$labels['firstpage'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¡Õ¼Õ¡Õ»Õ«Õ¶ Õ§Õ»Õ¨';
$labels['nextpage'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ°Õ¡Õ»Õ¸Ö€Õ¤ Õ§Õ»Õ¨';
$labels['lastpage'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¾Õ¥Ö€Õ»Õ«Õ¶ Õ§Õ»Õ¨';
+
$labels['group'] = 'Ô½Õ¸Ö‚Õ´Õ¢';
$labels['groups'] = 'Ô½Õ´Õ¢Õ¥Ö€';
$labels['personaladrbook'] = 'Ô±Õ¶Õ±Õ¶Õ¡Õ¯Õ¡Õ¶ Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€';
+
$labels['searchsave'] = 'ÕŠÕ¡Õ°ÕºÕ¡Õ¶Õ¥Õ¬ Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´Õ¨';
$labels['searchdelete'] = 'Õ‹Õ¶Õ»Õ¥Õ¬ Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´Õ¨';
+
$labels['import'] = 'Õ†Õ¥Ö€Õ¯Ö€Õ¥Õ¬';
$labels['importcontacts'] = 'Õ†Õ¥Ö€Õ¯Ö€Õ¥Õ¬ Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€';
$labels['importfromfile'] = 'Õ†Õ¥Ö€Õ¯Ö€Õ¥Õ¬ Ö†Õ¡ÕµÕ¬Õ«Ö';
+$labels['importtarget'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Õ¶Õ¸Ö€ Õ¯Õ¡ÕºÕ¸Ö€Õ¤Õ¶Õ¥Ö€ Õ°Õ¡Õ½ÖÕ¥Õ¡Õ£Ö€Ö„Õ¸Ö‚Õ´';
$labels['importreplace'] = 'Õ“Õ¸Õ­Õ¥Õ¬ Õ¸Õ²Õ» Õ°Õ¡Õ½ÖÕ¥Õ¡Õ£Õ«Ö€Ö„Õ¨';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Ô±Õ¾Õ¡Ö€Õ¿Õ¾Õ¡Õ® Õ§';
+
+// settings
$labels['settingsfor'] = 'Õ†Õ¡Õ­Õ¡Õ½Õ«Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€';
$labels['about'] = 'Õ†Õ¯Õ¡Ö€Õ¡Õ£Õ«Ö€';
$labels['preferences'] = 'Õ†Õ¡Õ­Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€';
$labels['userpreferences'] = 'Õ•Õ£Õ¿Õ¾Õ¸Õ²Õ« Õ¶Õ¡Õ­Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€';
$labels['editpreferences'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Ö…Õ£Õ¿Õ¾Õ¸Õ²Õ« Õ¶Õ¡Õ­Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€Õ¨';
+
$labels['identities'] = 'Ô±Õ¶Õ±Õ«Ö„';
$labels['manageidentities'] = 'Ô¿Õ¡Ö€Õ£Õ¡Õ¾Õ¸Ö€Õ¥Õ¬ Õ¡Õ¶Õ±Õ¡Õ¶Ö';
$labels['newidentity'] = 'Õ†Õ¸Ö€ Õ¡Õ¶Õ±';
+
$labels['newitem'] = 'Õ†Õ¸Ö€ Õ«Ö€';
$labels['edititem'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Õ«Ö€Õ¨';
+
$labels['preferhtml'] = 'Ô³Õ¥Ö€Õ¡Õ¤Õ¡Õ½Õ¥Õ¬ HTML';
$labels['defaultcharset'] = 'Ô¼Õ¼Õ¥Õ¬ÕµÕ¡Õ¬ Õ¿Õ¡Õ¼Õ¡Õ·Õ¡Ö€';
$labels['htmlmessage'] = 'HTML Õ¶Õ¡Õ´Õ¡Õ¯';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Ô±Õ´Õ½Õ¡Õ©Õ¾Õ« Õ±Ö‡Õ¡Õ¹Õ¡Öƒ';
$labels['timeformat'] = 'ÔºÕ¡Õ´Õ¡Õ¶Õ¡Õ¯Õ« Õ±Ö‡Õ¡Õ¹Õ¡Öƒ';
$labels['prettydate'] = 'ÕŠÕ¡Ö€Õ¦ Õ¡Õ´Õ½Õ¡Õ©Õ¾Õ¥Ö€';
@@ -321,9 +396,13 @@ $labels['timezone'] = 'ÔºÕ¡Õ´Õ¡ÕµÕ«Õ¶ Õ£Õ¸Õ¿Õ«';
$labels['pagesize'] = 'ÕÕ¸Õ²Õ¥Ö€ Õ¡Õ¼ Õ§Õ»';
$labels['signature'] = 'ÕÕ¿Õ¸Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
$labels['dstactive'] = 'Ô±Õ´Õ¡Õ¼Õ¡ÕµÕ«Õ¶ ÕªÕ¡Õ´Õ¡Õ¶Õ¡Õ¯';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'ÕÕ¿Õ¥Õ²Õ®Õ¥Õ¬ HTML Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€';
$labels['htmlonreply'] = 'Õ´Õ«Õ¡ÕµÕ¶ HTML Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶Õ¨ ÕºÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶Õ¥Õ¬Õ«Õ½';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML Õ½Õ¿Õ¸Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ ÕºÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶Õ¨';
$labels['skin'] = 'ÕÕ¥Õ½Ö„Õ« Õ¿Õ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯';
$labels['logoutclear'] = 'Ô´Õ¸Ö‚Ö€Õ½ Õ£Õ¡Õ¬Õ¸Ö‚Ö Õ¤Õ¡Õ¿Õ¡Ö€Õ¯Õ¥Õ¬ Õ¡Õ²Õ¢Õ¡Ö€Õ¯Õ²Õ¨';
@@ -348,6 +427,7 @@ $labels['always'] = 'Õ´Õ«Õ·Õ¿';
$labels['showinlineimages'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¯ÖÕ¾Õ¡Õ® ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¶Õ¥Ö€Õ¨ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ¿Õ¡Õ¯';
$labels['autosavedraft'] = 'ÕÖ‡Õ¡Õ£Ö€Õ« Õ¡Õ¾Õ¿Õ¸Õ´Õ¡Õ¿ Õ£Ö€Õ¡Õ¶ÖÕ¸Ö‚Õ´';
$labels['everynminutes'] = 'Õ¡Õ´Õ¥Õ¶ $n Ö€Õ¸ÕºÕ¥Õ¶';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'Õ¥Ö€Õ¢Õ¥Ö„';
$labels['immediately'] = 'Õ¡Õ¶Õ´Õ«Õ»Õ¡ÕºÕ¥Õ½';
$labels['messagesdisplaying'] = 'Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€Õ¨ ÖÕ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬Õ«Õ½';
@@ -369,6 +449,7 @@ $labels['maintenance'] = 'ÕÕºÕ¡Õ½Õ¡Ö€Õ¯Õ¸Ö‚Õ´';
$labels['newmessage'] = 'Õ†Õ¸Ö€ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
$labels['signatureoptions'] = 'ÕÕ¿Õ¸Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€';
$labels['whenreplying'] = 'ÕŠÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶Õ¥Õ¬Õ«Õ½';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'Õ½Õ¯Õ½Õ¥Õ¬ Õ¶Õ¸Ö€ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¾Õ¥Ö€Ö‡Õ«Ö';
$labels['replybottomposting'] = 'Õ½Õ¯Õ½Õ¥Õ¬ Õ¶Õ¸Ö€ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¶Õ¥Ö€Ö„Ö‡Õ«Ö';
$labels['replyremovesignature'] = 'ÕŠÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶Õ¥Õ¬Õ«Õ½ Õ°Õ¥Õ¼Õ¡ÖÕ¶Õ¥Õ¬ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ«Ö Õ¶Õ¡Õ­Õ¸Ö€Õ¤ Õ½Õ¿Õ¸Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨';
@@ -381,6 +462,7 @@ $labels['afternseconds'] = '$n Õ¾Õ¡Ö€Õ¯ÕµÕ¡Õ¶ Õ°Õ¥Õ¿Õ¸';
$labels['reqmdn'] = 'Õ„Õ«Õ·Õ¿ ÕºÕ¡Õ¿Õ¾Õ«Ö€Õ¥Õ¬ Õ½Õ¿Õ¡ÖÕ¡Õ¯Õ¡Õ¶';
$labels['reqdsn'] = 'Õ„Õ«Õ·Õ¿ ÕºÕ¡Õ¿Õ¾Õ«Ö€Õ¥Õ¬ Õ¡Õ¼Õ¡Ö„Õ´Õ¡Õ¶ Õ¯Õ¡Ö€Õ£Õ¡Õ¾Õ«Õ³Õ¡Õ¯Õ« Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¸Ö‚Õ´';
$labels['replysamefolder'] = 'Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ ÕºÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶Õ¶Õ¥Ö€Õ¨ ÕºÕ¡Õ°Õ¥Õ¬ Õ¶Õ¸Ö‚ÕµÕ¶ ÕºÕ¡Õ¶Õ¡Õ¯Õ¸Ö‚Õ´';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'Ô±Õ¾Õ¿Õ¸Õ¬Ö€Õ¡ÖÕ´Õ¡Õ¶ ÕªÕ¡Õ´Õ¡Õ¶Õ¡Õ¯ Õ¢Õ¡ÖÕ¡Õ¼Õ¥Õ¬ Õ¡ÕµÕ¬Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¡ÕµÕ«Õ¶ Õ§Õ¬ÖƒÕ¸Õ½Õ¿Õ« Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ¨';
$labels['listnamedisplay'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¯Õ¡ÕºÕ¸Ö€Õ¤Õ¶Õ¥Ö€Õ¨ Õ¸Ö€ÕºÕ¥Õ½';
$labels['spellcheckbeforesend'] = 'ÕÕ¿Õ¸Ö‚Õ£Õ¥Õ¬ Õ¿Õ¡Õ¼Õ¡Õ½Õ­Õ¡Õ¬Õ¶Õ¥Ö€Õ¨ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¥Õ¬Õ¸Ö‚Ö Õ¡Õ¼Õ¡Õ»';
@@ -390,6 +472,10 @@ $labels['spellcheckignorenums'] = 'Ô±Õ¶Õ¿Õ¥Õ½Õ¥Õ¬ Õ©Õ¾Õ¥Ö€Õ¸Õ¾ Õ¢Õ¡Õ¼Õ¥Ö€Õ¨';
$labels['spellcheckignorecaps'] = 'Ô±Õ¶Õ¿Õ¥Õ½Õ¥Õ¬ Õ¬Ö€Õ«Õ¾ Õ´Õ¥Õ®Õ¡Õ¿Õ¡Õ¼ Õ¢Õ¡Õ¼Õ¥Ö€Õ¨';
$labels['addtodict'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Õ¢Õ¡Õ¼Õ¡Ö€Õ¡Õ¶Õ¸Ö‚Õ´';
$labels['mailtoprotohandler'] = 'mailto: Õ°Õ²Õ¸Ö‚Õ´Õ¶Õ¥Ö€Õ« Õ½ÕºÕ¡Õ½Õ¡Ö€Õ¯Õ¸Õ²';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Ô´Õ¡Ö€Õ¡Õ¯';
$labels['folders'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ¶Õ¥Ö€';
$labels['foldername'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ« Õ¡Õ¶Õ¸Ö‚Õ¶';
@@ -410,19 +496,26 @@ $labels['foldertype'] = 'ÕŠÕ¡Õ¶Õ¡Õ¯Õ« Õ¿Õ¥Õ½Õ¡Õ¯';
$labels['personalfolder'] = 'Ô±Õ¶Õ±Õ¶Õ¡Õ¯Õ¡Õ¶ ÕºÕ¡Õ¶Õ¡Õ¯';
$labels['otherfolder'] = 'Ô±ÕµÕ¬ Ö…Õ£Õ¿Õ¾Õ¸Õ²Õ« ÕºÕ¡Õ¶Õ¡Õ¯';
$labels['sharedfolder'] = 'Õ€Õ¡Õ¶Ö€Õ¡ÕµÕ«Õ¶ ÕºÕ¡Õ¶Õ¡Õ¯';
+
$labels['sortby'] = 'Ô´Õ¡Õ½Õ¡Õ¾Õ¸Ö€Õ¥Õ¬';
$labels['sortasc'] = 'Õ¨Õ½Õ¿ Õ¡Õ³Õ´Õ¡Õ¶';
$labels['sortdesc'] = 'Õ¨Õ½Õ¿ Õ¶Õ¾Õ¡Õ¦Õ´Õ¡Õ¶';
$labels['undo'] = 'ÔµÕ¿Õ¡Ö€Õ¯Õ¥Õ¬';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Ô½Ö€Õ«Õ¹';
$labels['version'] = 'ÕÕ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯';
$labels['source'] = 'Ô±Õ²Õ¢ÕµÕ¸Ö‚Ö€';
$labels['license'] = 'Ô±Ö€Õ¿Õ¸Õ¶Õ¡Õ£Õ«Ö€';
$labels['support'] = 'ÕÕ¿Õ¡Õ¶Õ¡Õ¬ Ö…Õ£Õ¶Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
+
+// units
$labels['B'] = 'Ô²';
$labels['KB'] = 'Ô¿Ô²';
$labels['MB'] = 'Õ„Ô²';
$labels['GB'] = 'Ô³Ô²';
+
+// character sets
$labels['unicode'] = 'Õ…Õ¸Ö‚Õ¶Õ«Õ¯Õ¸Õ¤';
$labels['english'] = 'Ô±Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶';
$labels['westerneuropean'] = 'Ô±Ö€Ö‡Õ´Õ¿Õ¡-ÔµÕ¾Ö€Õ¸ÕºÕ¡Õ¯Õ¡Õ¶';
@@ -441,4 +534,5 @@ $labels['vietnamese'] = 'ÕŽÕ«Õ¥Õ¿Õ¶Õ¡Õ´Õ¡Õ¯Õ¡Õ¶';
$labels['japanese'] = 'ÕƒÕ¡ÕºÕ¸Õ¶Õ¡Õ¯Õ¡Õ¶';
$labels['korean'] = 'Ô¿Õ¸Ö€Õ¥Õ¡Õ¯Õ¡Õ¶';
$labels['chinese'] = 'Õ‰Õ«Õ¶Õ¡Õ¯Õ¡Õ¶';
+
?>
diff --git a/program/localization/hy_AM/messages.inc b/program/localization/hy_AM/messages.inc
index c5d167acf..6b3f4ebe9 100644
--- a/program/localization/hy_AM/messages.inc
+++ b/program/localization/hy_AM/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'ÕÕ­Õ¡Õ›Õ¬';
$messages['loginfailed'] = 'Õ„Õ¸Ö‚Õ¿Ö„Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['cookiesdisabled'] = 'Сookies–ների Õ¡ÕºÕ¡Õ°Õ¸Õ¾Õ¾Õ¸Ö‚Õ´Õ¨ Õ¢Õ¡ÖÕ¡Õ¯Õ¡ÕµÕ¸Ö‚Õ´ Õ§';
@@ -26,10 +28,14 @@ $messages['dberror'] = 'ÕÕ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö€Õ« Õ·Õ¿Õ¥Õ´Õ¡Ö€Õ¡Õ¶Õ« Õ½Õ­Õ¡Õ›Õ¬';
$messages['requesttimedout'] = 'Õ€Õ¡Ö€ÖÕ´Õ¡Õ¶ Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« ÕªÕ¡Õ´Õ¡Õ¶Õ¡Õ¯Õ¨ Õ½ÕºÕ¡Õ¼Õ¾Õ¥Ö';
$messages['errorreadonly'] = 'Ô³Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¡Õ¶Õ°Õ¶Õ¡Ö€ Õ§Ö‰ ÕŠÕ¡Õ¶Õ¡Õ¯Õ¨ Õ´Õ«Õ¡ÕµÕ¶ Õ¨Õ¶Õ©Õ¥Ö€ÖÕ´Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Ö€ Õ§Ö‰';
$messages['errornoperm'] = 'Ô³Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ¯Õ¡Õ¿Õ¡Ö€Õ´Õ¡Õ¶ Õ«Ö€Õ¡Õ¾Õ¸Ö‚Õ¶Ö„Õ¨ Õ´Õ¥Ö€ÕªÕ¾Õ¡Õ® Õ§Ö‰';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'ÕÕ­Õ¡Õ¬ Õ°Õ¡Ö€ÖÕ¸Ö‚Õ´, Õ¡ÕºÕ¡Ö€Õ¤ÕµÕ¸Ö‚Õ¶Ö‰';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Ô±ÕµÕ½ ÖƒÕ¸Õ½Õ¿Õ¡Ö€Õ¯Õ²Õ¸Ö‚Õ´ Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€ Õ¹Õ¯Õ¡Õ¶';
$messages['loggedout'] = 'Ô´Õ¸Ö‚Ö„ Õ¢Õ¡Ö€Õ¥Õ°Õ¡Õ»Õ¸Õ² Õ¡Õ¾Õ¡Ö€Õ¿Õ¥ÖÕ«Ö„ Õ¡Õ·Õ­Õ¡Õ¿Õ¡Õ¶Ö„Õ¨Ö‰ Ցտեսություն…';
$messages['mailboxempty'] = 'Õ“Õ¸Õ½Õ¿Õ¡Ö€Õ¯Õ²Õ¨ Õ¤Õ¡Õ¿Õ¡Ö€Õ¯ Õ§';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Ô²Õ¥Õ¼Õ¶Õ¸Ö‚Õ´...';
$messages['uploading'] = 'Ֆայլի վերբեռնում…';
$messages['uploadingmany'] = 'Վերբեռնվում են ֆայլերը…';
@@ -50,6 +56,8 @@ $messages['contactnotfound'] = 'ÕˆÖ€Õ¸Õ¶Õ¾Õ¸Õ² Õ°Õ¡Õ½ÖÕ¥Õ¶ Õ¹Õ£Õ¿Õ¶Õ¾Õ¥Ö';
$messages['contactsearchonly'] = 'Õ†Õ¥Ö€Õ´Õ¸Ö‚Õ®Õ¥Ö„ Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö€ Õ¡Õ¶Õ±Õ¡Õ¶Ö Õ¸Ö€Õ¸Õ¶Õ´Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Ö€';
$messages['sendingfailed'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['senttooquickly'] = 'Ô½Õ¶Õ¤Ö€Õ¸Ö‚Õ´ Õ¥Õ¶Ö„ Õ½ÕºÕ¡Õ½Õ¥Õ¬ $sec Õ¾Õ¡Ö€Õ¯ÕµÕ¡Õ¶ Õ´Õ«Õ¶Õ¹ Õ¡ÕµÕ½ Õ¶Õ¡Õ´Õ¡Õ¯Õ¶ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¥Õ¬Õ¨';
+$messages['errorsavingsent'] = 'ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¾Õ¡Õ® Õ¶Õ¡Õ´Õ¡Õ¯Õ« Õ¡Ö€Õ­Õ«Õ¾Õ¡ÖÕ¸Ö‚Õ´Õ¨ Õ­Õ¡ÖƒÕ¡Õ¶Õ¾Õ¥Ö';
+$messages['errorsaving'] = 'Ô³Ö€Õ¡Õ¶ÖÕ´Õ¡Õ¶ Õ½Õ­Õ¡Õ¬';
$messages['errormoving'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¿Õ¥Õ²Õ¡ÖƒÕ¸Õ­Õ´Õ¡Õ¶ Õ±Õ¡Õ­Õ¸Õ²Õ¸Ö‚Õ´';
$messages['errorcopying'] = 'Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ ÕºÕ¡Õ¿Õ³Õ¥Õ¶Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥ÖÖ‰';
$messages['errordeleting'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ»Õ¶Õ»Õ´Õ¡Õ¶ Õ±Õ¡Õ­Õ¸Õ²Õ¸Ö‚Õ´';
@@ -93,6 +101,8 @@ $messages['converting'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ±Ö‡Õ¡Õ¾Õ¸Ö€Õ´Õ¡Õ¶ Õ°Õ¥Õ¼Õ¡Öում…';
$messages['messageopenerror'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¢Õ¥Õ¼Õ¶Õ¾Õ¸Ö‚Õ´Õ¨ Õ½Õ¥Ö€Õ¾Õ¥Ö€Õ«Ö Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['fileuploaderror'] = 'Õ–Õ¡ÕµÕ¬Õ« Õ¯ÖÕ¸Ö‚Õ´Õ¶ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['filesizeerror'] = 'Õ–Õ¡ÕµÕ¬Õ« Õ¹Õ¡ÖƒÕ¨ Õ£Õ¥Ö€Õ¡Õ¦Õ¡Õ¶ÖÕ¸Ö‚Õ´ Õ§ Õ´Õ¡Ö„Õ½Õ«Õ´Õ¡Õ¬Õ¨Õ $size';
+$messages['copysuccess'] = '$nr Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ« Õ¯Ö€Õ¯Õ¶Ö…Ö€Õ«Õ¶Õ¡Õ¯Õ¸Ö‚Õ´Õ¨ Õ¡Õ¾Õ¡Ö€Õ¿Õ¾Õ¡Õ® Õ§';
+$messages['copyerror'] = 'Õ€Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ« Õ¯Ö€Õ¯Õ¶Ö…Ö€Õ«Õ¶Õ¡Õ¯Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['sourceisreadonly'] = 'Ô±ÕµÕ½ Õ°Õ¡Õ½ÖÕ¥Õ¶ ÕºÕ¡Õ·Õ¿ÕºÕ¡Õ¶Õ¾Õ¡Õ® Õ§';
$messages['errorsavingcontact'] = 'Õ€Õ¡Õ½ÖÕ¥Õ« Õ£Ö€Õ¡Õ¶ÖÕ¸Ö‚Õ´Õ¶ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['movingmessage'] = 'Նամակը տեղափոխվում է…';
@@ -111,7 +121,9 @@ $messages['selectimportfile'] = 'Ô¸Õ¶Õ¿Ö€Õ¥Ö„ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¾Õ¸Õ² Ö†Õ¡ÕµÕ¬Õ¨';
$messages['addresswriterror'] = 'Ô¸Õ¶Õ¿Ö€Õ¾Õ¡Õ® Õ°Õ¡Õ½ÖÕ¥Õ¡Õ£Õ«Ö€Ö„Õ¨ Õ¥Õ¶Õ©Õ¡Õ¯Õ¡ Õ¹Õ§ ÖƒÕ¸ÖƒÕ¸Õ­Õ´Õ¡Õ¶';
$messages['contactaddedtogroup'] = 'Ô±Õ¶Õ±Õ«Õ¶Ö„ Õ¢Õ¡Ö€Õ¥Õ°Õ¡Õ»Õ¸Õ² Õ¡Õ¾Õ¥Õ¬Õ¡ÖÕ¾Õ¥ÖÕ«Õ¶ Õ­Õ´Õ¢Õ«Õ¶Ö‰';
$messages['contactremovedfromgroup'] = 'Ô±Õ¶Õ±Õ«Õ¶Ö„ Õ¢Õ¡Ö€Õ¥Õ°Õ¡Õ»Õ¸Õ² Õ°Õ¡Õ¶Õ¾Õ¥ÖÕ«Õ¶ Õ­Õ´Õ¢Õ«ÖÖ‰';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'Õ†Õ¥Ö€Õ¯Ö€Õ¸Ö‚Õ´Õ¶ Õ¨Õ¶Õ©Õ¡ÖÖ„Õ« Õ´Õ¥Õ» Õ§...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '$inserted Õ¶Õ¸Ö€ Õ¶Õ¥Ö€Õ¯Ö€Õ¾Õ¡Õ® Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€, $skipped Õ¡Ö€Õ¤Õ¥Õ¶ Õ¡Õ¼Õ¯Õ¡ Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ <p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Ô²Õ¡Ö Õ©Õ¸Õ²Õ¶Õ¾Õ¥Ö $skipped Õ¡Õ¼Õ¯Õ¡ Õ£Ö€Õ¡Õ¼Õ¸Ö‚Õ´</b>';
$messages['opnotpermitted'] = 'Ô³Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¡Õ¶Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« Õ§Ö‰';
@@ -127,6 +139,7 @@ $messages['smtperror'] = 'SMTP Õ½Õ­Õ¡Õ¬` $msg';
$messages['emailformaterror'] = 'ÕÕ­Õ¡Õ¬ Õ§Õ¬ÖƒÕ¸Õ½Õ¿Õ« Õ°Õ¡Õ½ÖÕ¥` $email';
$messages['toomanyrecipients'] = 'ÕÕ¿Õ¡ÖÕ¸Õ²Õ¶Õ¥Ö€Õ« Ö„Õ¡Õ¶Õ¡Õ¯Õ¨ Õ¹Õ¡ÖƒÕ¡Õ¦Õ¡Õ¶Ö Õ´Õ¥Õ® Õ§Ö‰ Õ†Õ¾Õ¡Õ¦Õ¥ÖÖ€Õ¥Ö„ Õ´Õ«Õ¶Õ¹Ö‡ $max-Õ¨Ö‰';
$messages['maxgroupmembersreached'] = 'Ô½Õ´Õ¢Õ« Õ¡Õ¶Õ¤Õ¡Õ´Õ¶Õ¥Ö€Õ« Ö„Õ¡Õ¶Õ¡Ö„Õ¨ Õ£Õ¥Ö€Õ¡Õ¦Õ¡Õ¶ÖÕ¸Ö‚Õ´ Õ§ Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« $max-Õ¨Ö‰';
+$messages['internalerror'] = 'Õ†Õ¥Ö€Ö„Õ«Õ¶ Õ½Õ­Õ¡Õ¬, Õ¯Ö€Õ¯Õ«Õ¶ ÖƒÕ¸Ö€Õ±Õ¥Ö„Ö‰';
$messages['contactdelerror'] = 'Ô±Õ¶Õ±Õ¡Õ¶Ö Õ»Õ¶Õ»Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥ÖÖ‰';
$messages['contactdeleted'] = 'Ô±Õ¶Õ±Õ¡Õ¶Ö Õ»Õ¶Õ»Õ¸Ö‚Õ´Õ¨ Õ°Õ¡Õ»Õ¸Õ²Õ¾Õ¥ÖÖ‰';
$messages['contactrestoreerror'] = 'Õ‹Õ¶Õ»Õ¾Õ¡Õ® Õ¡Õ¶Õ±Õ¡Õ¶Ö Õ¾Õ¥Ö€Õ¡Õ¯Õ¡Õ¶Õ£Õ¶Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥ÖÖ‰';
@@ -152,4 +165,7 @@ $messages['invalidimageformat'] = 'ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ« Õ½Õ­Õ¡Õ¬ Õ±Ö‡Õ¡Õ¹Õ¡ÖƒÖ‰';
$messages['mispellingsfound'] = 'Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ´Õ¥Õ» Õ¯Õ¡Õ¶ Õ¿Õ¡Õ¼Õ¡Õ½Õ­Õ¡Õ¬Õ¶Õ¥Ö€Ö‰';
$messages['parentnotwritable'] = 'Õ†Õ·Õ¾Õ¡Õ® ÕºÕ¡Õ¶Õ¡Õ¯Õ« Õ´Õ¥Õ» ÕºÕ¡Õ¶Õ¡Õ¯Õ« Õ½Õ¿Õ¥Õ²Õ®Õ¸Ö‚Õ´Õ¨ Õ¯Õ¡Õ´ Õ¿Õ¥Õ²Õ¡ÖƒÕ¸Õ­Õ¸Ö‚Õ´Õ¨ Õ¡Õ¶Õ°Õ¶Õ¡Ö€ Õ§ Õ¡Õ¶Õ¢Õ¡Õ¾Õ¡Ö€Õ¡Ö€ Õ«Ö€Õ¡Õ¾Õ¸Ö‚Õ¶Ö„Õ¶Õ¥Ö€Õ« ÕºÕ¡Õ¿Õ³Õ¡Õ¼Õ¸Õ¾Ö‰';
$messages['messagetoobig'] = 'Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ´Õ¡Õ½Õ¨ Õ¹Õ¡ÖƒÕ¡Õ¦Õ¡Õ¶Ö Õ´Õ¥Õ® Õ§ Õ½ÕºÕ¡Õ½Õ¡Ö€Õ¯Õ´Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Ö€Ö‰';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/ia/labels.inc b/program/localization/ia/labels.inc
index 0ff1e939e..2a9501168 100644
--- a/program/localization/ia/labels.inc
+++ b/program/localization/ia/labels.inc
@@ -15,17 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Benvenite a $product';
$labels['username'] = 'Nomine de usator';
$labels['password'] = 'Contrasigno';
$labels['server'] = 'Servitor';
$labels['login'] = 'Apertura de session';
+
+// taskbar
$labels['logout'] = 'Clauder session';
$labels['mail'] = 'E-posta';
$labels['settings'] = 'Configurationes';
$labels['addressbook'] = 'Adressario';
+
+// mailbox names
$labels['inbox'] = 'Cassa de entrata';
+$labels['drafts'] = 'Drafts';
$labels['sent'] = 'Inviate';
+$labels['trash'] = 'Trash';
+$labels['junk'] = 'Junk';
+
+// message listing
$labels['subject'] = 'Subjecto';
$labels['from'] = 'Ex';
$labels['sender'] = 'Expeditor';
@@ -33,21 +46,34 @@ $labels['to'] = 'A';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Responder a';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Data';
$labels['size'] = 'Dimension';
$labels['priority'] = 'Prioritate';
$labels['organization'] = 'Organisation';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Dossieres';
+$labels['messagesfromto'] = 'Messages $from to $to of $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Message $nr de $count';
$labels['fromtoshort'] = '$from – $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'Mover a';
$labels['download'] = 'Discargar';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Monstrar';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Nomine de file';
$labels['filesize'] = 'Dimension del file';
+
$labels['addtoaddressbook'] = 'Adder al adressario';
+
+// weekdays short
$labels['sun'] = 'dom';
$labels['mon'] = 'lun';
$labels['tue'] = 'mar';
@@ -55,6 +81,8 @@ $labels['wed'] = 'mer';
$labels['thu'] = 'jov';
$labels['fri'] = 'ven';
$labels['sat'] = 'sab';
+
+// weekdays long
$labels['sunday'] = 'Dominica';
$labels['monday'] = 'Lunedi';
$labels['tuesday'] = 'Martedi';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'Mercuridi';
$labels['thursday'] = 'Jovedi';
$labels['friday'] = 'Venerdi';
$labels['saturday'] = 'Sabbato';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -74,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'januario';
$labels['longfeb'] = 'Februario';
$labels['longmar'] = 'Martio';
@@ -86,78 +118,166 @@ $labels['longsep'] = 'Septembre';
$labels['longoct'] = 'Octobre';
$labels['longnov'] = 'Novembre';
$labels['longdec'] = 'Decembre';
+
$labels['today'] = 'Hodie';
+
+// toolbar buttons
$labels['refresh'] = 'Refrescar';
$labels['checkmail'] = 'Verificar nove messages';
$labels['compose'] = 'Componer';
$labels['writenewmessage'] = 'Crear un nove message';
$labels['reply'] = 'Responder';
+$labels['replytomessage'] = 'Reply to sender';
+$labels['replytoallmessage'] = 'Reply to list or to sender and all recipients';
$labels['replyall'] = 'Responder a totes';
$labels['replylist'] = 'Responder a lista';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
+$labels['forwardmessage'] = 'Forward the message';
$labels['deletemessage'] = 'Deler messsage';
+$labels['movemessagetotrash'] = 'Move message to trash';
$labels['printmessage'] = 'Imprimer iste message';
+$labels['previousmessage'] = 'Show previous message';
+$labels['firstmessage'] = 'Show first message';
+$labels['nextmessage'] = 'Show next message';
+$labels['lastmessage'] = 'Show last message';
+$labels['backtolist'] = 'Back to message list';
$labels['viewsource'] = 'Monstrar fonte';
$labels['mark'] = 'Marcar';
$labels['markmessages'] = 'Marcar messages';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
$labels['more'] = 'Plus';
$labels['back'] = 'Retornar';
$labels['options'] = 'Optiones';
+
$labels['select'] = 'Seliger';
$labels['all'] = 'Totes';
$labels['none'] = 'Necun';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Non legite';
$labels['flagged'] = 'Marcate';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Delete';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Inverter';
$labels['filter'] = 'Filtro';
$labels['list'] = 'Lista';
$labels['threads'] = 'Topicos';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
$labels['flag'] = 'Marcar';
$labels['attachment'] = 'Attachamento';
$labels['nonesort'] = 'Necun';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
$labels['folderactions'] = 'Actiones de dossier...';
$labels['compact'] = 'Compacte';
$labels['empty'] = 'Vacue';
+
+$labels['quota'] = 'Disk usage';
$labels['unknown'] = 'incognite';
+$labels['unlimited'] = 'unlimited';
+
$labels['quicksearch'] = 'Cerca rapide';
$labels['resetsearch'] = 'Reinitialisar cerca';
+$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Message complete';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Aperir in nove fenestra';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Modificar como nove';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Inviar message';
$labels['savemessage'] = 'Salveguardar como version provisori';
$labels['addattachment'] = 'Attachar un file';
$labels['charset'] = 'Insimul de Characteres';
$labels['editortype'] = 'Typo de editor';
+$labels['returnreceipt'] = 'Return receipt';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
$labels['originalmessage'] = 'Message original';
+
$labels['editidents'] = 'Modificar identitates';
$labels['spellcheck'] = 'Orthographia';
$labels['checkspelling'] = 'Verificar orthographia';
+$labels['resumeediting'] = 'Resume editing';
+$labels['revertto'] = 'Revert to';
+
$labels['attach'] = 'Attachar';
$labels['attachments'] = 'Attachamentos';
$labels['upload'] = 'Incargar';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Clauder';
$labels['messageoptions'] = 'Optiones de message...';
+
$labels['low'] = 'Basse';
$labels['lowest'] = 'Minimal';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alte';
$labels['highest'] = 'Maximal';
+
$labels['nosubject'] = '(sin subjecto)';
$labels['showimages'] = 'Monstrar imagines';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
+$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto plan';
$labels['savesentmessagein'] = 'Salveguardar message inviate in';
$labels['dontsave'] = 'non salveguardar';
$labels['maxuploadsize'] = 'Le dimension maximal de iste file es $size';
+
$labels['addcc'] = 'Adder Cc';
$labels['addbcc'] = 'Adder Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
$labels['name'] = 'Monstrar nomine';
$labels['firstname'] = 'Nomine';
$labels['surname'] = 'Nomine de familia';
+$labels['middlename'] = 'Middle Name';
$labels['nameprefix'] = 'Prefixo';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'Pseudonymo';
+$labels['jobtitle'] = 'Job Title';
$labels['department'] = 'Departimento';
$labels['gender'] = 'Sexo:';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'E-posta';
$labels['phone'] = 'Telephono';
$labels['address'] = 'Adresse';
@@ -181,6 +301,7 @@ $labels['search'] = 'Cercar';
$labels['advsearch'] = 'Cerca avantiate';
$labels['advanced'] = 'Avantiate';
$labels['other'] = 'Altere';
+
$labels['typehome'] = 'Domo';
$labels['typework'] = 'Labor';
$labels['typeother'] = 'Altere';
@@ -188,18 +309,21 @@ $labels['typemobile'] = 'Mobile';
$labels['typemain'] = 'Principal';
$labels['typehomefax'] = 'Fax de domo';
$labels['typeworkfax'] = 'Fax de labor';
+$labels['typecar'] = 'Car';
$labels['typepager'] = 'Pager';
$labels['typevideo'] = 'Video';
$labels['typeassistant'] = 'Assistente';
$labels['typehomepage'] = 'Pagina principal';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profilo';
+
$labels['addfield'] = 'Adder campo...';
$labels['addcontact'] = 'Adder nove contacto';
$labels['editcontact'] = 'Modificar contacto';
$labels['contacts'] = 'Contactos';
$labels['contactproperties'] = 'Proprietates de contacto';
$labels['personalinfo'] = 'Information personal';
+
$labels['edit'] = 'Modificar';
$labels['cancel'] = 'Cancellar';
$labels['save'] = 'Salveguardar';
@@ -207,60 +331,151 @@ $labels['delete'] = 'Deler';
$labels['rename'] = 'Renominar';
$labels['addphoto'] = 'Adder';
$labels['replacephoto'] = 'Reimplaciar';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Crear un nove carta de contacto';
$labels['deletecontact'] = 'Deler contactos seligite';
+$labels['composeto'] = 'Compose mail to';
+$labels['contactsfromto'] = 'Contacts $from to $to of $count';
$labels['print'] = 'Imprimer';
$labels['export'] = 'Exportar';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
$labels['newcontactgroup'] = 'Crear un nove gruppo de contacto';
$labels['grouprename'] = 'Renominar gruppo';
$labels['groupdelete'] = 'Deler gruppo';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
+$labels['previouspage'] = 'Show previous page';
+$labels['firstpage'] = 'Show first page';
+$labels['nextpage'] = 'Show next page';
+$labels['lastpage'] = 'Show last page';
+
$labels['group'] = 'Gruppo';
$labels['groups'] = 'Gruppos';
$labels['personaladrbook'] = 'Adresses personal';
+
$labels['searchsave'] = 'Salveguardar cerca';
$labels['searchdelete'] = 'Deler cerca';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contactos';
$labels['importfromfile'] = 'Importar ex file:';
+$labels['importtarget'] = 'Adder nove contactos al adressario';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Facite';
+
+// settings
$labels['settingsfor'] = 'Configurationes pro';
$labels['about'] = 'A proposito';
$labels['preferences'] = 'Preferentias';
$labels['userpreferences'] = 'Preferentias de usator';
$labels['editpreferences'] = 'Modificar preferentias de usator';
+
$labels['identities'] = 'Identitates';
+$labels['manageidentities'] = 'Manage identities for this account';
$labels['newidentity'] = 'Nove identitate';
+
$labels['newitem'] = 'Nove elemento';
$labels['edititem'] = 'Modificar elemento';
+
$labels['preferhtml'] = 'Monstrar HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Message HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Formato de data';
$labels['timeformat'] = 'Formato de tempore';
+$labels['prettydate'] = 'Pretty dates';
$labels['setdefault'] = 'Fixar predeterminate';
$labels['autodetect'] = 'Auto';
$labels['language'] = 'Lingua';
$labels['timezone'] = 'Fuso horari';
+$labels['pagesize'] = 'Rows per page';
$labels['signature'] = 'Signatura';
+$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'Compose HTML messages';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Signatura HTML';
+$labels['showemail'] = 'Show email address with display name';
+$labels['previewpane'] = 'Show preview pane';
$labels['skin'] = 'Apparentia de interfacie';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
$labels['uisettings'] = 'Interfacie de usator';
$labels['serversettings'] = 'Configurationes de servitor';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'ignorar';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
$labels['always'] = 'sempre';
+$labels['showinlineimages'] = 'Display attached images below the message';
+$labels['autosavedraft'] = 'Automatically save draft';
$labels['everynminutes'] = 'cata $n minuta(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nunquam';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'Inviar me_ssages';
+$labels['messagescomposition'] = 'Composing Messages';
$labels['mimeparamfolding'] = 'Nomines de attachamento';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'Optiones avantiate';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Optiones principal';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Section';
$labels['maintenance'] = 'Mantenimento';
$labels['newmessage'] = 'Nove message';
$labels['signatureoptions'] = 'Optiones de signatura';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
$labels['autoaddsignature'] = 'Automaticamente inserta signatura';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
$labels['insertsignature'] = 'Insertar signatura';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
$labels['spellcheckoptions'] = 'Optiones de verification orthographic';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'Adder al dictionario';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Dossier';
$labels['folders'] = 'Dossieres';
$labels['foldername'] = 'Nomine de dossier';
@@ -269,20 +484,55 @@ $labels['messagecount'] = 'Messages';
$labels['create'] = 'Crear';
$labels['createfolder'] = 'Crear un nove dossier';
$labels['managefolders'] = 'Gerer le dossieres';
+$labels['specialfolders'] = 'Special Folders';
$labels['properties'] = 'Proprietates';
$labels['folderproperties'] = 'Proprietates de dossier';
+$labels['parentfolder'] = 'Parent folder';
$labels['location'] = 'Location';
$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
$labels['foldertype'] = 'Typo de dossier';
$labels['personalfolder'] = 'Dossier private';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'Dossier public';
+
$labels['sortby'] = 'Ordinar per';
+$labels['sortasc'] = 'Sort ascending';
+$labels['sortdesc'] = 'Sort descending';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
$labels['source'] = 'Fonte';
$labels['license'] = 'Licentia';
$labels['support'] = 'Obtener supporte';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Anglese';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
$labels['japanese'] = 'Japonese';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ia/messages.inc b/program/localization/ia/messages.inc
index 50ef68145..ebc6953d2 100644
--- a/program/localization/ia/messages.inc
+++ b/program/localization/ia/messages.inc
@@ -15,27 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Initio de session fallite';
+$messages['cookiesdisabled'] = 'Your browser does not accept cookies.';
+$messages['sessionerror'] = 'Your session is invalid or expired.';
+$messages['storageerror'] = 'Connection to storage server failed.';
$messages['servererror'] = 'Error de servitor!';
+$messages['servererrormsg'] = 'Server Error: $msg';
$messages['dberror'] = 'Error de base de datos!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
+$messages['nomessagesfound'] = 'No messages found in this mailbox.';
+$messages['loggedout'] = 'You have successfully terminated the session. Good bye!';
+$messages['mailboxempty'] = 'Mailbox is empty.';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Cargante ...';
+$messages['uploading'] = 'Uploading file...';
$messages['uploadingmany'] = 'Incargante files...';
$messages['loadingdata'] = 'Cargante datos...';
+$messages['checkingmail'] = 'Checking for new messages...';
$messages['sendingmessage'] = 'Inviante message...';
+$messages['messagesent'] = 'Message sent successfully.';
+$messages['savingmessage'] = 'Saving message...';
+$messages['messagesaved'] = 'Message saved to Drafts.';
$messages['successfullysaved'] = 'Salveguardate con successo.';
+$messages['addedsuccessfully'] = 'Contact added successfully to address book.';
+$messages['contactexists'] = 'A contact with the same e-mail address already exists.';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
+$messages['blockedimages'] = 'To protect your privacy, remote images are blocked in this message.';
+$messages['encryptedmessage'] = 'This is an encrypted message and can not be displayed. Sorry!';
$messages['nocontactsfound'] = 'Nulle contactos trovate.';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Falleva in inviar le message.';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'An error occured while saving.';
$messages['errormoving'] = 'Non pote mover le message(s)';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Il non pote deler le message(s).';
+$messages['errormarking'] = 'Could not mark the message(s).';
+$messages['deletecontactconfirm'] = 'Do you really want to delete selected contact(s)?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
+$messages['deletemessagesconfirm'] = 'Do you really want to delete selected message(s)?';
+$messages['deletefolderconfirm'] = 'Do you really want to delete this folder?';
+$messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
+$messages['formincomplete'] = 'The form was not completely filled out.';
+$messages['noemailwarning'] = 'Please enter a valid email address.';
$messages['nonamewarning'] = 'Per favor inserta nomine.';
+$messages['nopagesizewarning'] = 'Please enter a page size.';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
+$messages['norecipientwarning'] = 'Please enter at least one recipient.';
+$messages['nosubjectwarning'] = 'The "Subject" field is empty. Would you like to enter one now?';
+$messages['nobodywarning'] = 'Send this message without text?';
+$messages['notsentwarning'] = 'Message has not been sent. Do you want to discard your message?';
+$messages['noldapserver'] = 'Please select an ldap server to search.';
+$messages['nosearchname'] = 'Please enter a contact name or email address.';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr messages trovate.';
$messages['contactsearchsuccessful'] = '$nr contactos trovate.';
+$messages['searchnomatch'] = 'Search returned no matches.';
$messages['searching'] = 'Cercante...';
$messages['checking'] = 'A verificar...';
+$messages['nospellerrors'] = 'No spelling errors found.';
+$messages['folderdeleted'] = 'Folder successfully deleted.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'Delete con successo.';
+$messages['converting'] = 'Removing formatting...';
+$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'Incargamento de file falleva.';
+$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
$messages['selectimportfile'] = 'Per favor tu selige le file a incargar.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Adresse de e-mail invalide: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
$messages['namecannotbeempty'] = 'Le nomine non pote esser vacue.';
$messages['nametoolong'] = 'Le nomine es troppo longe.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/id_ID/labels.inc b/program/localization/id_ID/labels.inc
index 581428aab..eea3132cd 100644
--- a/program/localization/id_ID/labels.inc
+++ b/program/localization/id_ID/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Selamat datang di $product';
$labels['username'] = 'Username';
$labels['password'] = 'Password';
$labels['server'] = 'Server';
$labels['login'] = 'Masuk';
+
+// taskbar
$labels['logout'] = 'Keluar';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Pengaturan';
$labels['addressbook'] = 'Buku Alamat';
+
+// mailbox names
$labels['inbox'] = 'Kotak Masuk';
-$labels['drafts'] = 'Konsep';
+$labels['drafts'] = 'Daftar tunggu';
$labels['sent'] = 'Terkirim';
$labels['trash'] = 'Surat Terhapus';
$labels['junk'] = 'Sampah';
-$labels['show_real_foldernames'] = 'Tampilkan nama asli untuk folder spesial';
+
+// message listing
$labels['subject'] = 'Judul';
$labels['from'] = 'Pengirim';
$labels['sender'] = 'Pengirim';
@@ -44,21 +53,27 @@ $labels['priority'] = 'Prioritas';
$labels['organization'] = 'Organisasi';
$labels['readstatus'] = 'Status Terbaca';
$labels['listoptions'] = 'Daftar Pilihan...';
+
$labels['mailboxlist'] = 'Semua Folder';
$labels['messagesfromto'] = 'Pesan dari $from sampai $to dari total $count';
$labels['threadsfromto'] = 'Untaian dari $from sampai $to dari total $count';
$labels['messagenrof'] = 'Pesan $nr dari total $count';
$labels['fromtoshort'] = '$from - $to dari total $count';
+
$labels['copy'] = 'Salin';
$labels['move'] = 'Pindahkan';
$labels['moveto'] = 'Pindahkan ke...';
$labels['download'] = 'Unduh';
-$labels['open'] = 'Buka';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Tampilkan';
$labels['showanyway'] = 'Tampilkan saja';
+
$labels['filename'] = 'Nama berkas';
$labels['filesize'] = 'Ukuran berkas';
+
$labels['addtoaddressbook'] = 'Tambah ke buku alamat';
+
+// weekdays short
$labels['sun'] = 'Min';
$labels['mon'] = 'Sen';
$labels['tue'] = 'Sel';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Rab';
$labels['thu'] = 'Kam';
$labels['fri'] = 'Jum';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Minggu';
$labels['monday'] = 'Senin';
$labels['tuesday'] = 'Selasa';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Rabu';
$labels['thursday'] = 'Kamis';
$labels['friday'] = 'Jumat';
$labels['saturday'] = 'Sabtu';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Des';
+
+// months long
$labels['longjan'] = 'Januari';
$labels['longfeb'] = 'Februari';
$labels['longmar'] = 'Maret';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Spetember';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Desember';
+
$labels['today'] = 'Hari ini';
+
+// toolbar buttons
$labels['refresh'] = 'Segarkan';
$labels['checkmail'] = 'Periksa pesan baru';
$labels['compose'] = 'Tulis sebuah pesan';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Tindakan lain..';
$labels['more'] = 'Berikutnya';
$labels['back'] = 'Kembali';
$labels['options'] = 'Pilihan';
+
$labels['select'] = 'Pilih';
$labels['all'] = 'Semua';
$labels['none'] = 'Tidak ada';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'Halaman sekarang';
$labels['unread'] = 'Belum terbaca';
$labels['flagged'] = 'Ditandai';
$labels['unanswered'] = 'Belum terjawab';
-$labels['withattachment'] = 'Dengan lampiran';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Terhapus';
$labels['undeleted'] = 'Tidak terhapus';
$labels['invert'] = 'Sebaliknya';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Bentangkan Semua';
$labels['expand-unread'] = 'Bentangkan yang Belum Terbaca';
$labels['collapse-all'] = 'Lipat Semua';
$labels['threaded'] = 'Teruntai';
+
$labels['autoexpand_threads'] = 'Bentangkan pesan teruntai';
$labels['do_expand'] = 'semua untaian';
$labels['expand_only_unread'] = 'hanya pesan yang belum terbaca';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Perlihatkan kolom';
$labels['listsorting'] = 'Mengurutkan kolom';
$labels['listorder'] = 'Mengurutkan susunan';
$labels['listmode'] = 'Perlihatkan mode tinjauan';
+
$labels['folderactions'] = 'Tindakan pada folder...';
$labels['compact'] = 'Rampingkan';
$labels['empty'] = 'Kosong';
-$labels['importmessages'] = 'Impor pesan';
+
$labels['quota'] = 'Penggunaan ruang';
$labels['unknown'] = 'Tidak dikenal';
$labels['unlimited'] = 'Tidak terbatas';
+
$labels['quicksearch'] = 'Pencarian cepat';
$labels['resetsearch'] = 'Atur ulang pencarian';
$labels['searchmod'] = 'Peubah pencarian';
$labels['msgtext'] = 'Seluruh pesan';
$labels['body'] = 'Badan';
-$labels['type'] = 'Tipe';
-$labels['namex'] = 'Nama';
+
$labels['openinextwin'] = 'Buka dalam jendela baru';
$labels['emlsave'] = 'Unduh (.eml)';
-$labels['changeformattext'] = 'Tampilkan dalam format text biasa';
-$labels['changeformathtml'] = 'Tampilkan dalam format HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Sunting sebagai pesan baru';
$labels['send'] = 'Kirim';
$labels['sendmessage'] = 'Kirim pesan';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Tanda terima kembali';
$labels['dsn'] = 'Pemberitahuan status terkirim';
$labels['mailreplyintro'] = 'Pada $date, $sender menulis:';
$labels['originalmessage'] = 'Pesan Asli';
+
$labels['editidents'] = 'Ubah identitas';
$labels['spellcheck'] = 'Ejaan';
$labels['checkspelling'] = 'Pemeriksaan ejaan';
$labels['resumeediting'] = 'Lanjutkan menyunting';
$labels['revertto'] = 'Kembalikan ke';
+
$labels['attach'] = 'Lampirkan';
$labels['attachments'] = 'Sisipan';
$labels['upload'] = 'Unggah';
$labels['uploadprogress'] = '$percent ($current dari $total)';
$labels['close'] = 'Tutup';
$labels['messageoptions'] = 'Pilihan pesan...';
+
$labels['low'] = 'Rendah';
$labels['lowest'] = 'Paling Rendah';
$labels['normal'] = 'Normal';
$labels['high'] = 'Tinggi';
$labels['highest'] = 'Paling tinggi';
+
$labels['nosubject'] = '(tanpa judul)';
$labels['showimages'] = 'Tampilkan gambar';
$labels['alwaysshow'] = 'Selalu tampilkan gambar dari $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Ini adalah konsep surat.';
$labels['andnmore'] = '$nr lagi...';
$labels['togglemoreheaders'] = 'Tampilkan kepala pesan lebih lanjut';
$labels['togglefullheaders'] = 'Beralih kepala pesan penuh';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Teks murni';
$labels['savesentmessagein'] = 'Simpan pesan terkirim di';
$labels['dontsave'] = 'Jangan disimpan';
$labels['maxuploadsize'] = 'Ukuran file maksimal adalah $size';
+
$labels['addcc'] = 'Tambah Cc';
$labels['addbcc'] = 'Tambah Bcc';
$labels['addreplyto'] = 'Tambah Balas Ke';
$labels['addfollowupto'] = 'Tambahkan Tindak-Lanjut-Ke';
+
+// mdn
$labels['mdnrequest'] = 'Pengirim pesan ini telah meminta untuk diberitahu ketika Anda membaca pesan ini. Apakah anda ingin memberitahu pengirim?';
$labels['receiptread'] = 'Tanda Terima (baca)';
$labels['yourmessage'] = 'Ini adalah Tanda Terima untuk pesan Anda';
$labels['receiptnote'] = 'Catatan: Tanda Terima ini hanya mengesahkan bahwa pesan telah diperlihatkan pada komputer penerima. Tidak ada jaminan bahwa penerima telah membaca atau mengerti isi pesan.';
+
+// address boook
$labels['name'] = 'Nama yang ditampilkan';
$labels['firstname'] = 'Nama depan';
$labels['surname'] = 'Nama belakang';
@@ -262,6 +301,7 @@ $labels['search'] = 'Cari';
$labels['advsearch'] = 'Pencarian Lebih Lanjut';
$labels['advanced'] = 'Tingkat lanjut';
$labels['other'] = 'Lainnya';
+
$labels['typehome'] = 'Rumah';
$labels['typework'] = 'Kantor';
$labels['typeother'] = 'Lainnya';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Asisten';
$labels['typehomepage'] = 'Laman Web';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Tambah kolom isian';
$labels['addcontact'] = 'Tambah kontak baru';
$labels['editcontact'] = 'Ubah kontak';
$labels['contacts'] = 'Daftar kontak';
$labels['contactproperties'] = 'Properti kontak';
$labels['personalinfo'] = 'Informasi pribadi';
+
$labels['edit'] = 'Ubah';
$labels['cancel'] = 'Batal';
$labels['save'] = 'Simpan';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Ganti nama';
$labels['addphoto'] = 'Tambah';
$labels['replacephoto'] = 'Ganti';
$labels['uploadphoto'] = 'Unggah foto';
+
$labels['newcontact'] = 'Buat kartu kontak baru';
$labels['deletecontact'] = 'Hapus kontak terpilih';
$labels['composeto'] = 'Tulis surat kepada';
@@ -303,32 +346,41 @@ $labels['newcontactgroup'] = 'Buat Grup baru';
$labels['grouprename'] = 'Ganti nama grup';
$labels['groupdelete'] = 'Hapus grup';
$labels['groupremoveselected'] = 'Hapus kontak terpilih dari grup';
+
$labels['previouspage'] = 'Perlihatkan himpunan sebelumnya';
$labels['firstpage'] = 'Perlihatkan himpunan pertama';
$labels['nextpage'] = 'Perlihatkan himpunan selanjutnya';
$labels['lastpage'] = 'Perlihatkan himpunan terakhir';
+
$labels['group'] = 'Kelompok';
$labels['groups'] = 'Kelompok';
-$labels['listgroup'] = 'Daftar anggota grup';
$labels['personaladrbook'] = 'Alamat pribadi';
+
$labels['searchsave'] = 'Simpan pencarian';
$labels['searchdelete'] = 'Hapus pencarian';
+
$labels['import'] = 'Impor';
$labels['importcontacts'] = 'Impor kontak';
$labels['importfromfile'] = 'Impor dari berkas:';
+$labels['importtarget'] = 'Tambahkan kontak baru ke buku alamat:';
$labels['importreplace'] = 'Ganti seluruh buku alamat';
$labels['importdesc'] = 'Anda dapat mengunggah kontak dari buku alamat yang telah ada.<br/>Saat ini kami mendukung import alamat dari format data <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> atau CSV (comma-separated).';
$labels['done'] = 'Selesai';
+
+// settings
$labels['settingsfor'] = 'Pengaturan untuk';
$labels['about'] = 'Informasi program';
$labels['preferences'] = 'Pilihan';
$labels['userpreferences'] = 'Pilihan pengguna';
$labels['editpreferences'] = 'Ubah pilihan pengguna';
+
$labels['identities'] = 'Identitas';
$labels['manageidentities'] = 'Atur identitas untuk akun ini';
$labels['newidentity'] = 'Identitas baru';
+
$labels['newitem'] = 'Item baru';
$labels['edititem'] = 'Ubah item';
+
$labels['preferhtml'] = 'Lebih suka HTML';
$labels['defaultcharset'] = 'Default Character';
$labels['htmlmessage'] = 'Pesan HTML';
@@ -350,7 +402,7 @@ $labels['htmleditor'] = 'Tulis pesan HTML';
$labels['htmlonreply'] = 'balasan untuk pesan HTML saja';
$labels['htmlonreplyandforward'] = 'ketika meneruskan atau membalas pesan HTML';
$labels['htmlsignature'] = 'Tandatangan HTML';
-$labels['showemail'] = 'Tampilkan alamat email dengan nama';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Unjuk pratinjau';
$labels['skin'] = 'Tampilan antarmuka';
$labels['logoutclear'] = 'Bersihkan Tong Sampah saat keluar';
@@ -373,7 +425,7 @@ $labels['showremoteimages'] = 'Tampilkan remote inline images';
$labels['fromknownsenders'] = 'dari pengirim yang dikenal';
$labels['always'] = 'selalu';
$labels['showinlineimages'] = 'Tampilkan gambar terlampir dibawah pesan';
-$labels['autosavedraft'] = 'Otomatis menyimpan konsep';
+$labels['autosavedraft'] = 'Otomatis menyimpan pesan tertunda';
$labels['everynminutes'] = 'setiap $n menit';
$labels['refreshinterval'] = 'Refresh (memeriksa pesan baru, dsb)';
$labels['never'] = 'tidak pernah';
@@ -420,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Abaikan kata-kata yang bernomor';
$labels['spellcheckignorecaps'] = 'Abaikan kata-kata dengan huruf besar semua';
$labels['addtodict'] = 'Tambahkan ke kamus';
$labels['mailtoprotohandler'] = 'Daftarkan pengampu protokol untuk link mailto:';
-$labels['standardwindows'] = 'Kelola popup sebagai standar window';
$labels['forwardmode'] = 'Meneruskan pesan';
$labels['inline'] = 'dalam surat';
$labels['asattachment'] = 'sebagai sisipan';
+
$labels['folder'] = 'Folder';
$labels['folders'] = 'Semua Folder';
$labels['foldername'] = 'Nama folder';
@@ -444,20 +496,26 @@ $labels['foldertype'] = 'Jenis folder';
$labels['personalfolder'] = 'Folder pribadi';
$labels['otherfolder'] = 'Folder pengguna lain';
$labels['sharedfolder'] = 'Folder publik';
+
$labels['sortby'] = 'Urut berdasarkan';
$labels['sortasc'] = 'Urut menaik';
$labels['sortdesc'] = 'Urut menurun';
$labels['undo'] = 'Batalkan';
+
$labels['installedplugins'] = 'Plugin terpasang';
$labels['plugin'] = 'Pengaya';
$labels['version'] = 'Versi';
$labels['source'] = 'Sumber';
$labels['license'] = 'Lisensi';
$labels['support'] = 'Dukungan';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inggris';
$labels['westerneuropean'] = 'Eropa Barat';
@@ -476,4 +534,5 @@ $labels['vietnamese'] = 'Vietnam';
$labels['japanese'] = 'Jepang';
$labels['korean'] = 'Korea';
$labels['chinese'] = 'Cina';
+
?>
diff --git a/program/localization/id_ID/messages.inc b/program/localization/id_ID/messages.inc
index 020b03f8a..04d8242ad 100644
--- a/program/localization/id_ID/messages.inc
+++ b/program/localization/id_ID/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Terjadi error!';
$messages['loginfailed'] = 'Login gagal.';
$messages['cookiesdisabled'] = 'Browser Anda tidak menerima cookies.';
@@ -42,7 +44,7 @@ $messages['checkingmail'] = 'Memeriksa pesan baru...';
$messages['sendingmessage'] = 'Mengirim pesan...';
$messages['messagesent'] = 'Pesan berhasil dikirim.';
$messages['savingmessage'] = 'Menyimpan pesan...';
-$messages['messagesaved'] = 'Pesan tersimpan kedalam Konsep';
+$messages['messagesaved'] = 'Menyimpan pesan ke daftar tunggu';
$messages['successfullysaved'] = 'Berhasil disimpan';
$messages['addedsuccessfully'] = 'Kontak berhasil ditambahkan ke buku alamat';
$messages['contactexists'] = 'Kontak dengan alamat e-mail ini sudah ada.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Kontak yang diminta tidak ditemukan';
$messages['contactsearchonly'] = 'Masukkan jenis pencarian untuk mencari kontak';
$messages['sendingfailed'] = 'Gagal mengirim pesan.';
$messages['senttooquickly'] = 'Mohon tunggu $sec detik sebelum mengirim pesan ini.';
+$messages['errorsavingsent'] = 'Error ketika menyimpan pesan terkirim.';
+$messages['errorsaving'] = 'Error ketika menyimpan.';
$messages['errormoving'] = 'Pesan tidak bisa dipindahkan';
$messages['errorcopying'] = 'Pesan tidak dapat disalin';
$messages['errordeleting'] = 'Pesan tidak bisa dihapus';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Mengembalikan pesan ke format awal...';
$messages['messageopenerror'] = 'Tidak dapat mengambil pesan dari server';
$messages['fileuploaderror'] = 'Gagal mengunggah berkas';
$messages['filesizeerror'] = 'Berkas terunggah mencapai ukuran maksimal dari $size';
-$messages['copysuccess'] = 'Berhasil menyalin kontak $nr';
-$messages['movesuccess'] = 'Berhasil memindahkan kontak $nr';
-$messages['copyerror'] = 'Tidak dapat menyalin kontak';
-$messages['moveerror'] = 'Tidak dapat memindahkan kontak';
+$messages['copysuccess'] = 'Berhasil menyalin $nr alamat';
+$messages['copyerror'] = 'Tidak bisa menyalin alamat manapun';
$messages['sourceisreadonly'] = 'Sumber dari alamat ini hanya dapat dibaca';
$messages['errorsavingcontact'] = 'Tidak bisa menyimpan alamat kontak';
$messages['movingmessage'] = 'Memindahkan pesan...';
$messages['copyingmessage'] = 'Menyalin pesan...';
$messages['copyingcontact'] = 'Menyalin kontak...';
-$messages['movingcontact'] = 'Memindahkan kontak(s)...';
$messages['deletingmessage'] = 'Menghapus pesan...';
$messages['markingmessage'] = 'Menandai Pesan...';
$messages['addingmember'] = 'Menambahkan kontak ke grup...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Sedang mengimpor, harap menunggu...';
$messages['importformaterror'] = 'Proses import gagal. File yang di upload bukan file import yang valid.';
$messages['importconfirm'] = '<b>Berhasil mengimpor $inserted kontak</b>';
$messages['importconfirmskipped'] = '<b>$skipped entri yang sudah ada dilewatkan</b>';
-$messages['importmessagesuccess'] = 'Berhasil mengimport $nr pesan';
-$messages['importmessageerror'] = 'Gagal mengimport! File yang di upload buka pesan yang valid atau file mailbox';
$messages['opnotpermitted'] = 'Operasi tidak diperbolehkan!';
$messages['nofromaddress'] = 'kekurangan alamat e-mail pada identitas terpilih';
$messages['editorwarning'] = 'Beralih pada editor teks murni akan mengakibatkan semua pemformatan teks hilang. Lanjutkan?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP Error : $msg';
$messages['emailformaterror'] = 'Alamat e-mail salah: $email';
$messages['toomanyrecipients'] = 'Terlalu banyak penerima. Batas maksimal penerima adalah $max';
$messages['maxgroupmembersreached'] = 'Jumlah grup melebihi jumlah maksimum $max';
+$messages['internalerror'] = 'Terjadi kesalahan internal. Silahkan diulang kembali';
$messages['contactdelerror'] = 'Kontak tidak bisa dihapus';
$messages['contactdeleted'] = 'Kontak berhasil dihapus';
$messages['contactrestoreerror'] = 'Tidak bisa mengembalikan kontak yang terhapus.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Tidak bisa membuat/memindahkan map ke map indu
$messages['messagetoobig'] = 'Pesan terlalu besar untuk diproses.';
$messages['attachmentvalidationerror'] = 'PERINGATAN! Lampiran ini mencurigakan karena jenisnya tidak cocok dengan jenis yang dinyatakan di dalam pesan. Jika Anda tidak mempercayai pengirim, Anda tidak perlu membukanya di browser karena mungkin berisi konten berbahaya.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'Peringatan: Layanan ini membutuhkan Javascript! Untuk menggunakannya silahkan aktifkan Javascript di pengaturan browser Anda.';
+
?>
diff --git a/program/localization/index.inc b/program/localization/index.inc
index 616999514..bfb770cac 100644
--- a/program/localization/index.inc
+++ b/program/localization/index.inc
@@ -70,7 +70,6 @@ $rcube_languages = array(
'ku' => 'Kurdish (Kurmancî)',
'lv_LV' => 'Latvian (Latviešu)',
'lt_LT' => 'Lithuanian (Lietuviškai)',
- 'lb_LU' => 'Luxembourgish (Lëtzebuergesch)',
'mk_MK' => 'Macedonian (МакедонÑки)',
'ms_MY' => 'Malay (Bahasa Melayu)',
'ml_IN' => 'Malayalam (മലയാളം)',
@@ -96,7 +95,6 @@ $rcube_languages = array(
'th_TH' => 'Thai (ไทย)',
'tr_TR' => 'Turkish (Türkçe)',
'uk_UA' => 'Ukrainian (УкраїнÑька)',
- 'ur_PK' => 'Urdu (اÙردو)',
'vi_VN' => 'Vietnamese (Tiếng Việt)',
'cy_GB' => 'Welsh (Cymraeg)',
'fy_NL' => 'West Frisian (Frysk)',
@@ -135,7 +133,6 @@ $rcube_language_aliases = array(
'kh' => 'km_KH',
'kh_KH' => 'km_KH',
'km' => 'km_KH',
- 'lb' => 'lb_LU',
'ne' => 'ne_NP',
'no' => 'nn_NO',
'ms' => 'ms_MY',
diff --git a/program/localization/is_IS/labels.inc b/program/localization/is_IS/labels.inc
index 8b90730f7..80443dd3a 100644
--- a/program/localization/is_IS/labels.inc
+++ b/program/localization/is_IS/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Velkomin í $product';
$labels['username'] = 'Netfang';
$labels['password'] = 'Lykilorð';
$labels['server'] = 'Póstþjónn';
$labels['login'] = 'Innskrá';
+
+// taskbar
$labels['logout'] = 'Útskrá';
$labels['mail'] = 'Tölvupóstur';
$labels['settings'] = 'Stillingar';
$labels['addressbook'] = 'Nafnaskrá';
+
+// mailbox names
$labels['inbox'] = 'Innhólf';
$labels['drafts'] = 'Drög';
$labels['sent'] = 'Sent';
$labels['trash'] = 'Rusl';
$labels['junk'] = 'Ruslpóstur';
+
+// message listing
$labels['subject'] = 'Titill';
$labels['from'] = 'Frá';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Til';
$labels['cc'] = 'Afrit';
$labels['bcc'] = 'Blint afrit';
@@ -41,18 +52,28 @@ $labels['size'] = 'Stærð';
$labels['priority'] = 'Forgangur';
$labels['organization'] = 'Stofnun';
$labels['readstatus'] = 'Lesmerking';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Möppur';
$labels['messagesfromto'] = 'Skeyti $from til $to af $count';
$labels['threadsfromto'] = 'Þræðir $from til $to af $count';
$labels['messagenrof'] = 'Skeyti $nr af $count';
$labels['fromtoshort'] = '$from - $to af $count';
+
$labels['copy'] = 'Afrit';
$labels['move'] = 'Færa';
$labels['moveto'] = 'Færa í...';
$labels['download'] = 'Hlaða niður';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Skráarheiti';
$labels['filesize'] = 'Skráarstærð';
+
$labels['addtoaddressbook'] = 'Bæta í nafnaskrá';
+
+// weekdays short
$labels['sun'] = 'sunn.';
$labels['mon'] = 'mán.';
$labels['tue'] = 'þrið.';
@@ -60,6 +81,8 @@ $labels['wed'] = 'miðv.';
$labels['thu'] = 'fimm.';
$labels['fri'] = 'föst.';
$labels['sat'] = 'laug.';
+
+// weekdays long
$labels['sunday'] = 'sunnudagur';
$labels['monday'] = 'mánudagur';
$labels['tuesday'] = 'þriðjudagur';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'miðvikudagur';
$labels['thursday'] = 'fimmtudagur';
$labels['friday'] = 'föstudagur';
$labels['saturday'] = 'laugardagur';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mar';
@@ -79,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nóv';
$labels['dec'] = 'des';
+
+// months long
$labels['longjan'] = 'janúar';
$labels['longfeb'] = 'febrúar';
$labels['longmar'] = 'mars';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'september';
$labels['longoct'] = 'október';
$labels['longnov'] = 'nóvember';
$labels['longdec'] = 'desember';
+
$labels['today'] = 'Ã dag';
+
+// toolbar buttons
$labels['refresh'] = 'Endurhlaða';
$labels['checkmail'] = 'Gá að nýjum skeytum';
$labels['compose'] = 'Semja skeyti';
@@ -124,6 +154,7 @@ $labels['moreactions'] = 'Fleiri aðgerðir...';
$labels['more'] = 'Meira';
$labels['back'] = 'Til baka';
$labels['options'] = 'Valkostir';
+
$labels['select'] = 'Velja';
$labels['all'] = 'Allt';
$labels['none'] = 'Ekkert';
@@ -131,7 +162,9 @@ $labels['currpage'] = 'Núverandi síða';
$labels['unread'] = 'Ólesið';
$labels['flagged'] = 'Flaggað';
$labels['unanswered'] = 'Ósvarað';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Eytt';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Umhverfa';
$labels['filter'] = 'Sía';
$labels['list'] = 'Listi';
@@ -140,6 +173,7 @@ $labels['expand-all'] = 'Þenja allt út';
$labels['expand-unread'] = 'Þenja ólesið';
$labels['collapse-all'] = 'Fella allt saman';
$labels['threaded'] = 'Þrætt';
+
$labels['autoexpand_threads'] = 'Þenja skeytaþræði út';
$labels['do_expand'] = 'allir þræðir';
$labels['expand_only_unread'] = 'aðeins ólesin skeyti';
@@ -155,19 +189,29 @@ $labels['listcolumns'] = 'Listadálkar';
$labels['listsorting'] = 'Röðunardálkur';
$labels['listorder'] = 'Röðun';
$labels['listmode'] = 'Listayfirlit';
+
$labels['folderactions'] = 'Möppuaðgerðir...';
$labels['compact'] = 'Pakka';
$labels['empty'] = 'Tæma';
+
$labels['quota'] = 'Gagnamagn';
$labels['unknown'] = 'óþekkt';
$labels['unlimited'] = 'ótakmarkað';
+
$labels['quicksearch'] = 'Flýtileit';
$labels['resetsearch'] = 'Tæma leit';
$labels['searchmod'] = 'Leitarskilyrði';
$labels['msgtext'] = 'Allt skeytið';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Opna í nýjum glugga';
$labels['emlsave'] = 'Niðurhlaða (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Breyta sem nýju';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Senda skeytið núna';
$labels['savemessage'] = 'Vista drög';
$labels['addattachment'] = 'Hengja við';
@@ -177,39 +221,52 @@ $labels['returnreceipt'] = 'Kvittun við lestur';
$labels['dsn'] = 'Afhendingarstaða';
$labels['mailreplyintro'] = 'Þann $date, $sender reit:';
$labels['originalmessage'] = 'Upprunalegt skeyti';
+
$labels['editidents'] = 'Breyta sjálfum';
$labels['spellcheck'] = 'Stafsetning';
$labels['checkspelling'] = 'Athuga stafsetningu';
$labels['resumeediting'] = 'Aftur í ritham';
$labels['revertto'] = 'Hverfa til';
+
$labels['attach'] = 'Viðhengi';
$labels['attachments'] = 'Viðhengi';
$labels['upload'] = 'Hlaða upp';
$labels['uploadprogress'] = '$percent ($current af $total)';
$labels['close'] = 'Loka';
$labels['messageoptions'] = 'Skeytisvalmöguleikar...';
+
$labels['low'] = 'Lágt';
$labels['lowest'] = 'Lægst';
$labels['normal'] = 'Venjulegt';
$labels['high'] = 'Hátt';
$labels['highest'] = 'Hæst';
+
$labels['nosubject'] = '(án titils)';
$labels['showimages'] = 'Sýna myndir';
$labels['alwaysshow'] = 'Sýna alltaf myndir frá $sender';
$labels['isdraft'] = 'Þetta eru drög að skeyti';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Venjulegur texti';
$labels['savesentmessagein'] = 'Vista send skeyti í';
$labels['dontsave'] = 'ekki vista';
$labels['maxuploadsize'] = 'Leyfileg hámarksstærð skjals er $size';
+
$labels['addcc'] = 'Bæta við Cc';
$labels['addbcc'] = 'Bæta við Bcc';
$labels['addreplyto'] = 'Bæta við Reply-To';
$labels['addfollowupto'] = 'Nýtt svar við';
+
+// mdn
$labels['mdnrequest'] = 'Sendandi þessa skeytið hefur óskað þess að þú látir vita að þú hafir lesið þetta skeyti. Viltu láta hann vita?';
$labels['receiptread'] = 'Kvittun (lesa)';
$labels['yourmessage'] = 'Þetta er kvittun fyrir skeytið';
$labels['receiptnote'] = 'ATH: Þessi kvittun segir aðeins til um að skeytið kom upp á skjánum á viðtakanda. Það er engin sönnun um að hann hafi lesið eða skilið innihaldið.';
+
+// address boook
$labels['name'] = 'Skjánafn';
$labels['firstname'] = 'Eiginnafn';
$labels['surname'] = 'Eftirnafn';
@@ -244,6 +301,7 @@ $labels['search'] = 'Leit';
$labels['advsearch'] = 'Ãtarleg leit';
$labels['advanced'] = 'Flóknari stillingar';
$labels['other'] = 'Annað';
+
$labels['typehome'] = 'Heimamappa';
$labels['typework'] = 'Vinnusími';
$labels['typeother'] = 'Annað';
@@ -258,12 +316,14 @@ $labels['typeassistant'] = 'Aðstoðarmaður';
$labels['typehomepage'] = 'Vefur';
$labels['typeblog'] = 'Blogg';
$labels['typeprofile'] = 'Mannlýsing';
+
$labels['addfield'] = 'Bæta við svæði...';
$labels['addcontact'] = 'Nýr tengiliður';
$labels['editcontact'] = 'Lagfæra';
$labels['contacts'] = 'Tengiliðir';
$labels['contactproperties'] = 'Eiginleikar';
$labels['personalinfo'] = 'Persónulegar upplýsingar';
+
$labels['edit'] = 'Breyta';
$labels['cancel'] = 'Hætta við';
$labels['save'] = 'Vista';
@@ -271,43 +331,61 @@ $labels['delete'] = 'Eyða';
$labels['rename'] = 'Endurnefna';
$labels['addphoto'] = 'Bæta við';
$labels['replacephoto'] = 'Skipta út';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Búa til nýtt nafnspjald';
$labels['deletecontact'] = 'Eyða völdum tengiliðum';
$labels['composeto'] = 'Skrifa skeyti til';
$labels['contactsfromto'] = 'Netföng $from til $to af $count';
$labels['print'] = 'Prenta';
$labels['export'] = 'Flytja út';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Flytja út nafnspjöld á vCard formi';
$labels['newcontactgroup'] = 'Nýr tengiliðahópur';
$labels['grouprename'] = 'Breyta nafni hóps';
$labels['groupdelete'] = 'Fjarlægja hóp';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Sýna fyrri síðu';
$labels['firstpage'] = 'Sýna fyrstu síðu';
$labels['nextpage'] = 'Sýna næstu síðu';
$labels['lastpage'] = 'Sýna síðustu síðu';
+
$labels['group'] = 'Hópur';
$labels['groups'] = 'Hópar';
$labels['personaladrbook'] = 'Persónuleg heimilisföng';
+
$labels['searchsave'] = 'Vista leit';
$labels['searchdelete'] = 'Eyða leit';
+
$labels['import'] = 'Flytja inn';
$labels['importcontacts'] = 'Flytja inn nafnspjöld';
$labels['importfromfile'] = 'Flytja inn af skrá';
+$labels['importtarget'] = 'Bæta nýjum tengiliðum við:';
$labels['importreplace'] = 'Skipta út allri netfangaskránni';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Búið';
+
+// settings
$labels['settingsfor'] = 'Stillingar fyrir';
$labels['about'] = 'Um forritið';
$labels['preferences'] = 'Stillingar';
$labels['userpreferences'] = 'Notendastillingar';
$labels['editpreferences'] = 'Breyta notendastillingum';
+
$labels['identities'] = 'Auðkenni';
$labels['manageidentities'] = 'Stjórna auðkennum þessa reiknings';
$labels['newidentity'] = 'Nýtt auðkenni';
+
$labels['newitem'] = 'Nýtt';
$labels['edititem'] = 'Breyta';
+
$labels['preferhtml'] = 'Vil HTML';
$labels['defaultcharset'] = 'Venjulegt stafasett';
$labels['htmlmessage'] = 'HTML skeyti';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Snið dagsetningar';
$labels['timeformat'] = 'Tímasnið';
$labels['prettydate'] = 'Fallegar dagsetningar';
@@ -318,9 +396,13 @@ $labels['timezone'] = 'Tímabelti';
$labels['pagesize'] = 'Línur á síðu';
$labels['signature'] = 'Undirskrift';
$labels['dstactive'] = 'Sumar-/vetratími';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Skrifa HTML-skeyti';
$labels['htmlonreply'] = 'sem svar við HTML-skeytum aðeins';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML-undirskrift';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Sýna forskoðunarglugga';
$labels['skin'] = 'Sniðmát á viðmóti';
$labels['logoutclear'] = 'Tæma rusl við útskráningu';
@@ -338,12 +420,14 @@ $labels['readwhendeleted'] = 'Merkja skeyti sem lesið þegar því er hent';
$labels['flagfordeletion'] = 'Merkja skeyti til eyðingar í stað þess að eyða';
$labels['skipdeleted'] = 'Ekki sýna eydd skeyti';
$labels['deletealways'] = 'Ef ekki er hægt að setja skeytið í ruslafötuna, henda þeim';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Sýna myndir annarsstaðar frá';
$labels['fromknownsenders'] = 'frá þekktum sendendum';
$labels['always'] = 'alltaf';
$labels['showinlineimages'] = 'Sýna viðhangandi myndir fyrir neðan skeytið';
$labels['autosavedraft'] = 'Vista sjálfkrafa sem drög';
$labels['everynminutes'] = '$n mínútu fresti';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'aldrei';
$labels['immediately'] = 'samstundis';
$labels['messagesdisplaying'] = 'Sýni skeyti';
@@ -359,11 +443,13 @@ $labels['checkallfolders'] = 'Athuga ný skeyti í öllum möppum';
$labels['displaynext'] = 'Að eyðingu/færslu lokinni sýna næsta skeyti';
$labels['defaultfont'] = 'Sjálfgefið letur HTML-skeyta';
$labels['mainoptions'] = 'Aðalstillingar';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Hluti';
$labels['maintenance'] = 'Viðhald';
$labels['newmessage'] = 'Nýtt skeyti';
$labels['signatureoptions'] = 'Valkostir undirskriftar';
$labels['whenreplying'] = 'Þegar svarað';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'hefja nýtt skeyti fyrir ofan eldra';
$labels['replybottomposting'] = 'hefja nýtt skeyti undir eldra';
$labels['replyremovesignature'] = 'Þegar svarað fjarlægja upphaflega undirskrift úr skeyti';
@@ -376,6 +462,7 @@ $labels['afternseconds'] = 'eftir $n sekúndur';
$labels['reqmdn'] = 'Biðja ávallt um kvittun';
$labels['reqdsn'] = 'Biðja ávallt um sendingarstöðu';
$labels['replysamefolder'] = 'Setja svarskeyti í möppu sem upphaflegt skeyti er í';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'Sleppa aukanetföngum í sjálfklárun';
$labels['listnamedisplay'] = 'Lista tengiliði sem';
$labels['spellcheckbeforesend'] = 'Athuga stafsetningu áður en skeyti er sent';
@@ -384,6 +471,11 @@ $labels['spellcheckignoresyms'] = 'Hunsa orð með merki';
$labels['spellcheckignorenums'] = 'Hunsa orð með tölum';
$labels['spellcheckignorecaps'] = 'Hunsa orð sem eru í hástöfum';
$labels['addtodict'] = 'Bæta við orðalista';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Mappa';
$labels['folders'] = 'Möppur';
$labels['foldername'] = 'Nafn möppu';
@@ -404,19 +496,26 @@ $labels['foldertype'] = 'Möpputegund';
$labels['personalfolder'] = 'Einkamappa';
$labels['otherfolder'] = 'Möppur annara notenda';
$labels['sharedfolder'] = 'Opin mappa';
+
$labels['sortby'] = 'Raða eftir';
$labels['sortasc'] = 'Raða vaxandi';
$labels['sortdesc'] = 'Raða minnkandi';
$labels['undo'] = 'Taka til baka';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Viðbætur';
$labels['version'] = 'Útgáfa';
$labels['source'] = 'Uppruni';
$labels['license'] = 'Notkunarleyfi';
$labels['support'] = 'Fá aðstoð';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Enska';
$labels['westerneuropean'] = 'Vesturevrópskt';
@@ -435,4 +534,5 @@ $labels['vietnamese'] = 'Víetnamskt';
$labels['japanese'] = 'Japanskt';
$labels['korean'] = 'Kóreska';
$labels['chinese'] = 'Kínverska';
+
?>
diff --git a/program/localization/is_IS/messages.inc b/program/localization/is_IS/messages.inc
index 06b707389..6e9f35af3 100644
--- a/program/localization/is_IS/messages.inc
+++ b/program/localization/is_IS/messages.inc
@@ -15,44 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Innskráning mistókst';
$messages['cookiesdisabled'] = 'Vafrinn þinn vill ekki taka við kökum (cookies)';
$messages['sessionerror'] = 'Innskráningin þín ógild eða útrunnin';
$messages['storageerror'] = 'Tengin við IMAP-miðlara mistókst';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Engin skeyti eru í þessu pósthólfi';
$messages['loggedout'] = 'Þú hefur útskráðst. Bless!';
$messages['mailboxempty'] = 'Pósthólfið er tómt';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Hleð...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Hleð gögn...';
$messages['checkingmail'] = 'Gái að nýjum skeytum...';
+$messages['sendingmessage'] = 'Sending message...';
$messages['messagesent'] = 'Skeyti var sent';
$messages['savingmessage'] = 'Vista skeyti...';
$messages['messagesaved'] = 'Skeytið vistað í Drög';
$messages['successfullysaved'] = 'Vistun heppnaðist!';
$messages['addedsuccessfully'] = 'Netfangi var bætt í netfangaskrá';
$messages['contactexists'] = 'Þetta netfang er þegar skráð í netfangaskrána';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Til verndar hafa allar myndir í þessu skeyti verið blokkaðar.';
$messages['encryptedmessage'] = 'Þetta er dulkóðað skeyti og því miður er ekki hægt að birta það';
$messages['nocontactsfound'] = 'Engin netföng';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Sending misheppnaðist';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Villa kom upp þegar var verið að vista';
$messages['errormoving'] = 'Gat ekki fært skeytið';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Gat ekki eytt skeytinu';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Ertu viss um að þú viljir eyða völdum netföngum?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
+$messages['deletemessagesconfirm'] = 'Do you really want to delete selected message(s)?';
$messages['deletefolderconfirm'] = 'Ertu viss um að vilja eyða þessari möppu?';
+$messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Formið var ekki fyllt út að fullu';
$messages['noemailwarning'] = 'Sláðu inn gildt netfang';
$messages['nonamewarning'] = 'Sláðu inn nafn';
$messages['nopagesizewarning'] = 'Sláðu inn síðustærð';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'à það minnsta einn viðtakandi verður að vera';
$messages['nosubjectwarning'] = 'Efnislínan er tóm. Viltu slá eitthvað inn í hana?';
$messages['nobodywarning'] = 'Viltu senda tómt skeyti?';
$messages['notsentwarning'] = 'Skeytið hefur ekki verið send. Viltu henda skeytinu?';
$messages['noldapserver'] = 'Please select an ldap server to search';
$messages['nosearchname'] = 'Sláðu inn nafn eða netfang';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr skeyti fundust';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Leit skilaði engu';
$messages['searching'] = 'Leita...';
$messages['checking'] = 'Gái...';
$messages['nospellerrors'] = 'Engar innsláttarvillur fundust';
$messages['folderdeleted'] = 'Möppu var eytt';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
+$messages['deletedsuccessfully'] = 'Successfully deleted.';
+$messages['converting'] = 'Removing formatting...';
+$messages['messageopenerror'] = 'Could not load message from server.';
+$messages['fileuploaderror'] = 'File upload failed.';
+$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/it_IT/labels.inc b/program/localization/it_IT/labels.inc
index ac8e2a6d4..75a24c5fd 100644
--- a/program/localization/it_IT/labels.inc
+++ b/program/localization/it_IT/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Benvenuto in $product';
$labels['username'] = 'Utente';
$labels['password'] = 'Password';
$labels['server'] = 'Server';
$labels['login'] = 'Entra';
+
+// taskbar
$labels['logout'] = 'Esci';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Impostazioni';
$labels['addressbook'] = 'Rubrica';
+
+// mailbox names
$labels['inbox'] = 'Posta in arrivo';
$labels['drafts'] = 'Bozze';
$labels['sent'] = 'Inviata';
$labels['trash'] = 'Cestino';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Mostra nomi reali per le cartelle speciali';
+
+// message listing
$labels['subject'] = 'Oggetto';
$labels['from'] = 'Mittente';
$labels['sender'] = 'Mittente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorità';
$labels['organization'] = 'Società';
$labels['readstatus'] = 'Visualizza lo stato';
$labels['listoptions'] = 'Elenco opzioni...';
+
$labels['mailboxlist'] = 'Cartelle';
$labels['messagesfromto'] = 'Messaggi da $from a $to di $count';
$labels['threadsfromto'] = 'Thread da $from a $to di $count';
$labels['messagenrof'] = 'Messaggio $nr di $count';
$labels['fromtoshort'] = '$from – $to di $count';
+
$labels['copy'] = 'Copia';
$labels['move'] = 'Sposta';
$labels['moveto'] = 'Sposta in...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Download';
$labels['open'] = 'Apri';
$labels['showattachment'] = 'Visualizza';
$labels['showanyway'] = 'Visualizza comunque';
+
$labels['filename'] = 'Nome file';
$labels['filesize'] = 'Dimensione file';
+
$labels['addtoaddressbook'] = 'Aggiungi alla rubrica';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Gio';
$labels['fri'] = 'Ven';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Domenica';
$labels['monday'] = 'Lunedì';
$labels['tuesday'] = 'Martedì';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Mercoledì';
$labels['thursday'] = 'Giovedì';
$labels['friday'] = 'Venerdì';
$labels['saturday'] = 'Sabato';
+
+// months short
$labels['jan'] = 'Gen';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set';
$labels['oct'] = 'Ott';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dic';
+
+// months long
$labels['longjan'] = 'Gennaio';
$labels['longfeb'] = 'Febbraio';
$labels['longmar'] = 'Marzo';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Settembre';
$labels['longoct'] = 'Ottobre';
$labels['longnov'] = 'Novembre';
$labels['longdec'] = 'Dicembre';
+
$labels['today'] = 'Oggi';
+
+// toolbar buttons
$labels['refresh'] = 'Aggiorna';
$labels['checkmail'] = 'Controlla nuovi messaggi';
$labels['compose'] = 'Scrivi un messaggio';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Altre operazioni...';
$labels['more'] = 'Di più';
$labels['back'] = 'Indietro';
$labels['options'] = 'Opzioni';
+
$labels['select'] = 'Seleziona';
$labels['all'] = 'Tutti';
$labels['none'] = 'Nessuno';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Espandi tutto';
$labels['expand-unread'] = 'Espandi non letti';
$labels['collapse-all'] = 'Richiudi tutti';
$labels['threaded'] = 'Per argomenti';
+
$labels['autoexpand_threads'] = 'Espandi';
$labels['do_expand'] = 'tutti i thread';
$labels['expand_only_unread'] = 'solo con messaggi non letti';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Elenco Colonne';
$labels['listsorting'] = 'Ordina per';
$labels['listorder'] = 'Ordinamento';
$labels['listmode'] = 'Modalità di visualizzazione';
+
$labels['folderactions'] = 'Operazioni cartella';
$labels['compact'] = 'Compatta';
$labels['empty'] = 'Svuota';
-$labels['importmessages'] = 'Importa messaggi';
+
$labels['quota'] = 'Spazio utilizzato';
$labels['unknown'] = 'sconosciuto';
$labels['unlimited'] = 'illimitato';
+
$labels['quicksearch'] = 'Ricerca veloce';
$labels['resetsearch'] = 'Annulla ricerca';
$labels['searchmod'] = 'Ambito di ricerca';
$labels['msgtext'] = 'Intero messaggio';
$labels['body'] = 'Body';
-$labels['type'] = 'Tipo';
-$labels['namex'] = 'Nome';
+
$labels['openinextwin'] = 'Apri in una nuova finestra';
$labels['emlsave'] = 'Scarica (.eml)';
$labels['changeformattext'] = 'Visualizza nel formato testo semplice';
$labels['changeformathtml'] = 'Visualizza nel formato HTML';
+
+// message compose
$labels['editasnew'] = 'Modifica come nuovo';
$labels['send'] = 'Invia';
$labels['sendmessage'] = 'Invia il messaggio adesso';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Ricevuta di ritorno';
$labels['dsn'] = 'Notifica di consegna';
$labels['mailreplyintro'] = 'Il $date $sender ha scritto:';
$labels['originalmessage'] = 'Messaggio originale';
+
$labels['editidents'] = 'Modifica identità';
$labels['spellcheck'] = 'Controllo ortografico';
$labels['checkspelling'] = 'Controlla ortografia';
$labels['resumeediting'] = 'Torna al messaggio';
$labels['revertto'] = 'Ripristina';
+
$labels['attach'] = 'Allega';
$labels['attachments'] = 'Allegati';
$labels['upload'] = 'Aggiungi';
$labels['uploadprogress'] = '$percent ($current di $total)';
$labels['close'] = 'Chiudi';
$labels['messageoptions'] = 'Opzioni messaggi...';
+
$labels['low'] = 'Bassa';
$labels['lowest'] = 'Molto bassa';
$labels['normal'] = 'Normale';
$labels['high'] = 'Alta';
$labels['highest'] = 'Molto alta';
+
$labels['nosubject'] = '(nessun oggetto)';
$labels['showimages'] = 'Visualizza immagini';
$labels['alwaysshow'] = 'Mostra sempre immagini da $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Questa è una bozza.';
$labels['andnmore'] = 'ancora $nr...';
$labels['togglemoreheaders'] = 'Mostra più intestazioni dei messaggi';
$labels['togglefullheaders'] = 'Visualizza header raw';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Testo semplice';
$labels['savesentmessagein'] = 'Salva i messaggi inviati in';
$labels['dontsave'] = 'non salvare';
$labels['maxuploadsize'] = 'La dimensione massima consentita è $size';
+
$labels['addcc'] = 'Aggiungi Cc';
$labels['addbcc'] = 'Aggiungi Bcc';
$labels['addreplyto'] = 'Aggiungi Rispondi a';
$labels['addfollowupto'] = 'Aggiungi Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Il mittente ha richiesto di ricevere una notifica dell\'avvenuta lettura del messaggio. Si desidera inviare tale notifica?';
$labels['receiptread'] = 'Ricevuta di ritorno (letto)';
$labels['yourmessage'] = 'Questa è la ricevuta di ritorno del messaggio inviato';
$labels['receiptnote'] = 'Nota: questa Ricevuta di ritorno attesta solamente che il messaggio è stato visualizzato nel computer del destinatario. Non c\'è pertanto alcuna garanzia che il destinatario abbia letto o compreso il suo contenuto.';
+
+// address boook
$labels['name'] = 'Nome visualizzato';
$labels['firstname'] = 'Nome';
$labels['surname'] = 'Cognome';
@@ -262,6 +301,7 @@ $labels['search'] = 'Ricerca';
$labels['advsearch'] = 'Ricerca avanzata';
$labels['advanced'] = 'Opzioni avanzate';
$labels['other'] = 'Altro';
+
$labels['typehome'] = 'Casa';
$labels['typework'] = 'Lavoro';
$labels['typeother'] = 'Altro';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Assistente';
$labels['typehomepage'] = 'Home page';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profilo';
+
$labels['addfield'] = 'Aggiungi campo...';
$labels['addcontact'] = 'Aggiungi contatto alla rubrica';
$labels['editcontact'] = 'Modifica contatto';
$labels['contacts'] = 'Contatti';
$labels['contactproperties'] = 'Proprietà contatto';
$labels['personalinfo'] = 'Informazioni personali';
+
$labels['edit'] = 'Modifica';
$labels['cancel'] = 'Annulla';
$labels['save'] = 'Salva';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Rinomina';
$labels['addphoto'] = 'Aggiungi';
$labels['replacephoto'] = 'Sostituisci';
$labels['uploadphoto'] = 'Carica foto';
+
$labels['newcontact'] = 'Crea un nuovo contatto';
$labels['deletecontact'] = 'Elimina i contatti selezionati';
$labels['composeto'] = 'Invia email a';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Crea un nuovo gruppo';
$labels['grouprename'] = 'Rinomina il gruppo';
$labels['groupdelete'] = 'Cancella il gruppo';
$labels['groupremoveselected'] = 'Rimuovi i contatti selezionati dal gruppo';
+
$labels['previouspage'] = 'Pagina precedente';
$labels['firstpage'] = 'Prima pagina';
$labels['nextpage'] = 'Pagina successiva';
$labels['lastpage'] = 'Ultima pagina';
+
$labels['group'] = 'Gruppo';
$labels['groups'] = 'Gruppi';
-$labels['listgroup'] = 'Elenca membri dei gruppi';
$labels['personaladrbook'] = 'Rubrica Personale';
+
$labels['searchsave'] = 'Salva ricerca';
$labels['searchdelete'] = 'Elimina ricerca';
+
$labels['import'] = 'Importa';
$labels['importcontacts'] = 'Importa contatti';
$labels['importfromfile'] = 'Importa da file:';
-$labels['importtarget'] = 'Aggiungi contatti a';
+$labels['importtarget'] = 'Aggiungi nuovi contattu alla rubrica:';
$labels['importreplace'] = 'Sostituisci l\'intera rubrica';
-$labels['importgroups'] = 'Importa le assegnazioni di gruppo';
-$labels['importgroupsall'] = 'Tutti (crea i gruppi se necessario)';
-$labels['importgroupsexisting'] = 'Solo per i gruppi esistenti';
$labels['importdesc'] = 'Puoi caricare i contatti da una rubrica esistente.<br/>Attualmente si possono importare contatti in formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> o CSV (comma-separated).';
$labels['done'] = 'Fatto';
+
+// settings
$labels['settingsfor'] = 'Impostazioni per';
$labels['about'] = 'Informazioni';
$labels['preferences'] = 'Preferenze';
$labels['userpreferences'] = 'Preferenze utente';
$labels['editpreferences'] = 'Modifica le preferenze per l\'utente';
+
$labels['identities'] = 'Identità';
$labels['manageidentities'] = 'Gestisci le identità per questo account';
$labels['newidentity'] = 'Nuova identità';
+
$labels['newitem'] = 'Nuovo elemento';
$labels['edititem'] = 'Modifica elemento';
+
$labels['preferhtml'] = 'Mostra HTML';
$labels['defaultcharset'] = 'Set di caratteri predefinito';
$labels['htmlmessage'] = 'Messaggio HTML';
@@ -371,7 +419,7 @@ $labels['ignore'] = 'ignora';
$labels['readwhendeleted'] = 'Marca il messaggio come letto prima di eliminarlo';
$labels['flagfordeletion'] = 'Marca il messaggio come eliminato invece di eliminarlo';
$labels['skipdeleted'] = 'Non mostrare i messaggi marcati come eliminati';
-$labels['deletealways'] = 'Quando non è possibile spostare i messaggi nel Cestino, eliminali';
+$labels['deletealways'] = 'Quando non è possinile spostare i messaggi nel Cestino eliminali';
$labels['deletejunk'] = 'Elimina direttamente i messaggi in Spam';
$labels['showremoteimages'] = 'Mostra immagini remote contenute nel messaggio';
$labels['fromknownsenders'] = 'da mittenti conosciuti';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignora le parole contenenti numeri';
$labels['spellcheckignorecaps'] = 'Ignora le parole con tutte le lettere maiuscole';
$labels['addtodict'] = 'Aggiungi al dizionario';
$labels['mailtoprotohandler'] = 'Registra gestore per mailto:';
-$labels['standardwindows'] = 'Gestisci i popup come finestre standard';
$labels['forwardmode'] = 'Inoltro messaggi';
$labels['inline'] = 'In linea';
$labels['asattachment'] = 'come allegato';
+
$labels['folder'] = 'Cartella';
$labels['folders'] = 'Cartelle';
$labels['foldername'] = 'Nome cartella';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Tipo di cartella';
$labels['personalfolder'] = 'Cartella privata';
$labels['otherfolder'] = 'Cartella di un altro utente';
$labels['sharedfolder'] = 'Cartella pubblica';
+
$labels['sortby'] = 'Ordina per';
$labels['sortasc'] = 'Ordinamento crescente';
$labels['sortdesc'] = 'Ordinamento decrescente';
$labels['undo'] = 'Annulla';
+
$labels['installedplugins'] = 'Plugin Installati';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versione';
$labels['source'] = 'Sorgente';
$labels['license'] = 'Licenza';
$labels['support'] = 'Ottieni supporto';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglese';
$labels['westerneuropean'] = 'Europa occidentale';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Giapponese';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Cinese';
+
?>
diff --git a/program/localization/it_IT/messages.inc b/program/localization/it_IT/messages.inc
index 0fd084f1b..80395b551 100644
--- a/program/localization/it_IT/messages.inc
+++ b/program/localization/it_IT/messages.inc
@@ -15,7 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'Si è verificato un errore!';
+
+$messages = array();
+$messages['errortitle'] = 'C\'è stato qualche errore';
$messages['loginfailed'] = 'Impossibile accedere. Utente o password non corretti';
$messages['cookiesdisabled'] = 'Il tuo browser non accetta i cookies';
$messages['sessionerror'] = 'Sessione non valida o scaduta';
@@ -54,8 +56,8 @@ $messages['contactnotfound'] = 'Il contatto richiesto non è stato trovato';
$messages['contactsearchonly'] = 'Inserisci dei termini per cercare i contatti';
$messages['sendingfailed'] = 'Impossibile inviare il messaggio';
$messages['senttooquickly'] = 'Per favore, attendi $sec secondi prima di inviare questo messaggio';
-$messages['errorsavingsent'] = 'Si è verificato un errore nel savare il messaggio inviato.';
-$messages['errorsaving'] = 'Si è verificato un errore nel salvataggio.';
+$messages['errorsavingsent'] = 'C\'è stato un errore nel salvare il messaggio inviato';
+$messages['errorsaving'] = 'Impossibile salvare';
$messages['errormoving'] = 'Impossibile spostare il messaggio';
$messages['errorcopying'] = 'Impossibile copiare il messaggio';
$messages['errordeleting'] = 'Impossibile eliminare il messaggio';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Rimozione della formattazione dal messaggio...';
$messages['messageopenerror'] = 'Impossibile caricare il messaggio dal server';
$messages['fileuploaderror'] = 'Errore durante il caricamento del file';
$messages['filesizeerror'] = 'Il file da caricare supera il limite massimo di $size';
-$messages['copysuccess'] = 'Copiati correttamente $nr contatti.';
-$messages['movesuccess'] = '$nr contatti spostati correttamente.';
-$messages['copyerror'] = 'Impossibile copiare i contatti.';
-$messages['moveerror'] = 'Impossibile spostare i contatti.';
+$messages['copysuccess'] = 'Copiati $nr indirizzi';
+$messages['copyerror'] = 'Impossibile copiare gli indirizzi';
$messages['sourceisreadonly'] = 'La rubrica è in sola lettura';
$messages['errorsavingcontact'] = 'Impossibile salvare il contatto';
$messages['movingmessage'] = 'Spostamento del messaggio...';
$messages['copyingmessage'] = 'Copia del messaggio...';
$messages['copyingcontact'] = 'Copia del contatto...';
-$messages['movingcontact'] = 'Spostamento contatto(i)';
$messages['deletingmessage'] = 'Cancellazione messaggio...';
$messages['markingmessage'] = 'Marca messaggio...';
$messages['addingmember'] = 'Aggiunta contatto al gruppo...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Importazione in corso, attendere...';
$messages['importformaterror'] = 'Importazione fallita! Il file caricato non è un file valido per l\'importazione.';
$messages['importconfirm'] = '<b>$inserted contatti importati con successo</p>';
$messages['importconfirmskipped'] = '<b>$skipped ignorati perché esistono già</b>';
-$messages['importmessagesuccess'] = 'Importati correttamente $nr messaggi';
-$messages['importmessageerror'] = 'Importazione fallita! Il file caricato non è un messaggio o una casella postale valida.';
$messages['opnotpermitted'] = 'Operazione non consentita!';
$messages['nofromaddress'] = 'Indirizzo e-mail mancante nell\'identità selezionata';
$messages['editorwarning'] = 'Passare all\'editor testuale farà perdere tutte le informazioni di formattazione. Sicuro di voler continuare?';
@@ -142,7 +139,7 @@ $messages['smtperror'] = 'Errore SMTP: $msg';
$messages['emailformaterror'] = 'Indirizzo e-mail non corretto: $email';
$messages['toomanyrecipients'] = 'Numero eccessivo di destinatari, ridurlo a $max';
$messages['maxgroupmembersreached'] = 'Il numero dei membri del gruppo eccede il massimo di $max';
-$messages['internalerror'] = 'Si è verificato un errore interno. Riprovare più tardi.';
+$messages['internalerror'] = 'Si è verificato un errore interno. Si prega di riprovare di nuovo.';
$messages['contactdelerror'] = 'Impossibile eliminare il/i contatto/i';
$messages['contactdeleted'] = 'Contatto/i correttamente eliminato/i';
$messages['contactrestoreerror'] = 'Impossibile ripristinare il/i contatto/i cancellato/i';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'Impossibile creare o muovere la cartella: acce
$messages['messagetoobig'] = 'La parte del messaggio è troppo grande per essere processata.';
$messages['attachmentvalidationerror'] = 'ATTENZIONE! Questo allegato è sospetto poiché non rispetta il tipo dichiarato nel messaggio. Se non conosci il mittente, non dovresti aprire l\'allegato nel browser in quanto potrebbe contenere malware.<br/><br/><em>Atteso: $expected; rilevato: $detected</em>';
$messages['noscriptwarning'] = 'Attenzione: questo servizio di webmail richiede Javascript! Per utilizzarlo abilita Javascript nelle impostazioni del tuo browser.';
+
?>
diff --git a/program/localization/ja_JP/labels.inc b/program/localization/ja_JP/labels.inc
index ef52695bb..6998f0623 100644
--- a/program/localization/ja_JP/labels.inc
+++ b/program/localization/ja_JP/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$productã«ã‚ˆã†ã“ã';
$labels['username'] = 'ユーザーå';
$labels['password'] = 'パスワード';
$labels['server'] = 'サーãƒãƒ¼';
$labels['login'] = 'ログイン';
+
+// taskbar
$labels['logout'] = 'ログアウト';
$labels['mail'] = 'é›»å­ãƒ¡ãƒ¼ãƒ«';
$labels['settings'] = '設定';
$labels['addressbook'] = 'アドレス帳';
+
+// mailbox names
$labels['inbox'] = 'å—ä¿¡ç®±';
$labels['drafts'] = '下書ã';
$labels['sent'] = 'é€ä¿¡æ¸ˆã¿';
$labels['trash'] = 'ã”ã¿ç®±';
$labels['junk'] = '迷惑メール';
-$labels['show_real_foldernames'] = '特殊フォルダーã®å®Ÿéš›ã®åå‰ã‚’表示';
+
+// message listing
$labels['subject'] = '件å';
$labels['from'] = '発信者';
$labels['sender'] = 'é€ä¿¡è€…';
@@ -44,11 +53,13 @@ $labels['priority'] = '優先度';
$labels['organization'] = 'ä¼æ¥­å';
$labels['readstatus'] = '閲覧ã®çŠ¶æ…‹';
$labels['listoptions'] = '一覧ã®ã‚ªãƒ—ション...';
+
$labels['mailboxlist'] = 'フォルダー';
$labels['messagesfromto'] = '$count通ã®$from通目ã‹ã‚‰$to通目ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸';
$labels['threadsfromto'] = '$count通ã®$from通目ã‹ã‚‰$to通目ã®ã‚¹ãƒ¬ãƒƒãƒ‰';
$labels['messagenrof'] = '$count通ã®$nr通目ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸';
$labels['fromtoshort'] = '$count通ã®$from通目ã‹ã‚‰$to通目';
+
$labels['copy'] = 'コピー';
$labels['move'] = '移動';
$labels['moveto'] = 'フォルダーã«ç§»å‹•';
@@ -56,9 +67,13 @@ $labels['download'] = 'ダウンロード';
$labels['open'] = 'é–‹ã';
$labels['showattachment'] = '表示';
$labels['showanyway'] = 'ã¨ã«ã‹ã表示';
+
$labels['filename'] = 'ファイルå';
$labels['filesize'] = 'ファイルã®å¤§ãã•';
+
$labels['addtoaddressbook'] = 'アドレス帳ã«è¿½åŠ ';
+
+// weekdays short
$labels['sun'] = 'æ—¥';
$labels['mon'] = '月';
$labels['tue'] = 'ç«';
@@ -66,6 +81,8 @@ $labels['wed'] = 'æ°´';
$labels['thu'] = '木';
$labels['fri'] = '金';
$labels['sat'] = '土';
+
+// weekdays long
$labels['sunday'] = '日曜日';
$labels['monday'] = '月曜日';
$labels['tuesday'] = 'ç«æ›œæ—¥';
@@ -73,6 +90,8 @@ $labels['wednesday'] = '水曜日';
$labels['thursday'] = '木曜日';
$labels['friday'] = '金曜日';
$labels['saturday'] = '土曜日';
+
+// months short
$labels['jan'] = '1月';
$labels['feb'] = '2月';
$labels['mar'] = '3月';
@@ -85,6 +104,8 @@ $labels['sep'] = '9月';
$labels['oct'] = '10月';
$labels['nov'] = '11月';
$labels['dec'] = '12月';
+
+// months long
$labels['longjan'] = '1月';
$labels['longfeb'] = '2月';
$labels['longmar'] = '3月';
@@ -97,7 +118,10 @@ $labels['longsep'] = '9月';
$labels['longoct'] = '10月';
$labels['longnov'] = '11月';
$labels['longdec'] = '12月';
+
$labels['today'] = '今日';
+
+// toolbar buttons
$labels['refresh'] = 'å†èª­è¾¼ã¿';
$labels['checkmail'] = 'æ–°ã—ã届ã„ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’確èª';
$labels['compose'] = 'メッセージã®ä½œæˆ';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'ãã®ä»–ã®æ“作...';
$labels['more'] = '続ã';
$labels['back'] = '戻る';
$labels['options'] = 'オプション';
+
$labels['select'] = 'é¸æŠž';
$labels['all'] = 'ã™ã¹ã¦';
$labels['none'] = 'ãªã—';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'ã™ã¹ã¦å±•é–‹';
$labels['expand-unread'] = '未開å°ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’展開';
$labels['collapse-all'] = 'ã™ã¹ã¦æŠ˜ã‚ŠãŸãŸã‚€';
$labels['threaded'] = 'スレッド化';
+
$labels['autoexpand_threads'] = 'メッセージã®ã‚¹ãƒ¬ãƒƒãƒ‰ã‚’展開';
$labels['do_expand'] = 'ã™ã¹ã¦ã®ã‚¹ãƒ¬ãƒƒãƒ‰';
$labels['expand_only_unread'] = '未読ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã ã‘';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = '列を一覧';
$labels['listsorting'] = '並ã¹æ›¿ãˆã‚‹åˆ—';
$labels['listorder'] = '並ã¹æ›¿ãˆã‚‹é †åº';
$labels['listmode'] = '一覧表示モード';
+
$labels['folderactions'] = 'フォルダーã®æ“作...';
$labels['compact'] = '圧縮';
$labels['empty'] = '空';
-$labels['importmessages'] = 'メッセージをインãƒãƒ¼ãƒˆ';
+
$labels['quota'] = 'ディスクã®ä½¿ç”¨çŠ¶æ³';
$labels['unknown'] = 'ä¸æ˜Ž';
$labels['unlimited'] = '無制é™';
+
$labels['quicksearch'] = '高速検索';
$labels['resetsearch'] = '検索を解除';
$labels['searchmod'] = '検索ã®æ¡ä»¶';
$labels['msgtext'] = 'メッセージ全体';
$labels['body'] = '本文';
-$labels['type'] = '種類';
-$labels['namex'] = 'åå‰';
+
$labels['openinextwin'] = 'æ–°ã—ã„ウィンドウã§é–‹ã';
$labels['emlsave'] = 'ダウンロード(.emlå½¢å¼)';
$labels['changeformattext'] = 'テキスト形å¼ã§è¡¨ç¤º';
$labels['changeformathtml'] = 'HTMLå½¢å¼ã§è¡¨ç¤º';
+
+// message compose
$labels['editasnew'] = 'æ–°ã—ã„メッセージã¨ã—ã¦ç·¨é›†';
$labels['send'] = 'é€ä¿¡';
$labels['sendmessage'] = 'メッセージをé€ä¿¡';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'é–‹å°ç¢ºèª';
$labels['dsn'] = 'é…é€çŠ¶æ…‹é€šçŸ¥';
$labels['mailreplyintro'] = '$date ã« $sender ã•ã‚“ã¯æ›¸ãã¾ã—ãŸ:';
$labels['originalmessage'] = 'å…ƒã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸';
+
$labels['editidents'] = '識別情報を編集';
$labels['spellcheck'] = 'スペル';
$labels['checkspelling'] = 'スペルãƒã‚§ãƒƒã‚¯';
$labels['resumeediting'] = '編集をå†é–‹';
$labels['revertto'] = 'å…ƒã«æˆ»ã™';
-$labels['responses'] = '回答';
-$labels['insertresponse'] = '回答を挿入';
-$labels['manageresponses'] = '回答を管ç†';
-$labels['savenewresponse'] = 'æ–°ã—ã„回答をä¿å­˜';
-$labels['editresponses'] = '回答を編集';
-$labels['editresponse'] = '回答を編集';
-$labels['responsename'] = 'åå‰';
-$labels['responsetext'] = '回答ã®æ–‡ç« ';
+
$labels['attach'] = '添付';
$labels['attachments'] = '添付ファイル';
$labels['upload'] = 'アップロード';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = 'é–‰ã˜ã‚‹';
$labels['messageoptions'] = 'メッセージã®ã‚ªãƒ—ション...';
+
$labels['low'] = '低';
$labels['lowest'] = '最低';
$labels['normal'] = '通常';
$labels['high'] = '高';
$labels['highest'] = '最高';
+
$labels['nosubject'] = '(件åãªã—)';
$labels['showimages'] = 'ç”»åƒã‚’表示';
$labels['alwaysshow'] = '$sender ã‹ã‚‰å±Šã„ãŸç”»åƒã¯å¸¸ã«è¡¨ç¤º';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'ã“ã‚Œã¯ä¸‹æ›¸ãã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã§ã™ã€‚';
$labels['andnmore'] = 'ã•ã‚‰ã«$nr件...';
$labels['togglemoreheaders'] = 'ã•ã‚‰ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’表示';
$labels['togglefullheaders'] = 'メッセージヘッダーã®ç”Ÿã®è¡¨ç¤ºã¨åˆ‡ã‚Šæ›¿ãˆ';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'テキスト';
$labels['savesentmessagein'] = 'é€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ä¿å­˜å…ˆ';
$labels['dontsave'] = 'ä¿å­˜ã—ãªã„';
$labels['maxuploadsize'] = '添付å¯èƒ½ãªãƒ•ã‚¡ã‚¤ãƒ«ã¯æœ€å¤§ã§$sizeã§ã™ã€‚';
+
$labels['addcc'] = '写ã—(Cc)を追加';
$labels['addbcc'] = 'éš ã—ãŸå†™ã—(Bcc)を追加';
$labels['addreplyto'] = '返信先(Reply-To)を追加';
$labels['addfollowupto'] = 'フォロー先(Followup-Toを追加';
+
+// mdn
$labels['mdnrequest'] = 'ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’読んã ã¨ãã«ã€é€ä¿¡è€…ãŒé€šçŸ¥ã‚’å—ã‘ãŸã„ã¨ä¾é ¼ã—ã¦ã„ã¾ã™ã€‚é–‹å°ç¢ºèªã®é€šçŸ¥ã‚’é€ä¿¡ã—ã¾ã™ã‹?';
$labels['receiptread'] = 'é–‹å°ç¢ºèª(表示済ã¿)';
$labels['yourmessage'] = 'ã“ã‚Œã¯ã‚ãªãŸãŒé€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«å¯¾ã™ã‚‹é–‹å°ç¢ºèªã§ã™ã€‚';
$labels['receiptnote'] = '注æ„: ã“ã®é–‹å°ç¢ºèªã¯ã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒå®›å…ˆã®ã‚³ãƒ³ãƒ”ューターã§è¡¨ç¤ºã•ã‚ŒãŸã“ã¨ã ã‘を知らã›ã‚‹ã‚‚ã®ã§ã™ã€‚å—信者ãŒãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’読んã ã‚Šã€å†…容をç†è§£ã—ãŸã¨ä¿è¨¼ã™ã‚‹ã‚‚ã®ã§ã¯ã‚ã‚Šã¾ã›ã‚“。';
+
+// address boook
$labels['name'] = '表示å';
$labels['firstname'] = 'å';
$labels['surname'] = '姓';
@@ -270,6 +301,7 @@ $labels['search'] = '検索';
$labels['advsearch'] = '高度ãªæ¤œç´¢';
$labels['advanced'] = '高度';
$labels['other'] = 'ãã®ä»–';
+
$labels['typehome'] = '自宅';
$labels['typework'] = 'è·å ´';
$labels['typeother'] = 'ãã®ä»–';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'アシスタント';
$labels['typehomepage'] = 'ホームページ';
$labels['typeblog'] = 'ブログ';
$labels['typeprofile'] = 'プロフィール';
+
$labels['addfield'] = '項目を追加...';
$labels['addcontact'] = 'æ–°ã—ã„連絡先を追加';
$labels['editcontact'] = '連絡先を編集';
$labels['contacts'] = '連絡先';
$labels['contactproperties'] = '連絡先ã®å±žæ€§';
$labels['personalinfo'] = '個人情報';
+
$labels['edit'] = '編集';
$labels['cancel'] = 'å–り消ã—';
$labels['save'] = 'ä¿å­˜';
@@ -298,6 +332,7 @@ $labels['rename'] = 'åå‰ã‚’変更';
$labels['addphoto'] = '追加';
$labels['replacephoto'] = 'ç½®ãæ›ãˆ';
$labels['uploadphoto'] = '写真をアップロード';
+
$labels['newcontact'] = 'æ–°ã—ã„連絡先カードを作æˆ';
$labels['deletecontact'] = 'é¸æŠžã—ãŸé€£çµ¡å…ˆã‚’削除';
$labels['composeto'] = 'ã“ã®é€£çµ¡å…ˆå®›ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’作æˆ';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = '連絡先グループを新ã—ã作æˆ';
$labels['grouprename'] = 'グループåを変更';
$labels['groupdelete'] = 'グループを削除';
$labels['groupremoveselected'] = 'é¸æŠžã—ãŸé€£çµ¡å…ˆã‚’グループã‹ã‚‰å‰Šé™¤';
+
$labels['previouspage'] = 'å‰ã®ãƒšãƒ¼ã‚¸ã‚’表示';
$labels['firstpage'] = '最åˆã®ãƒšãƒ¼ã‚¸ã‚’表示';
$labels['nextpage'] = '次ã®ãƒšãƒ¼ã‚¸ã‚’表示';
$labels['lastpage'] = '最後ã®ãƒšãƒ¼ã‚¸ã‚’表示';
+
$labels['group'] = 'グループ';
$labels['groups'] = 'グループ';
-$labels['listgroup'] = 'グループã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’一覧';
$labels['personaladrbook'] = '個人ã®ä½æ‰€';
+
$labels['searchsave'] = '検索情報をä¿å­˜';
$labels['searchdelete'] = '検索情報を削除';
+
$labels['import'] = 'インãƒãƒ¼ãƒˆ';
$labels['importcontacts'] = '連絡先をインãƒãƒ¼ãƒˆ';
$labels['importfromfile'] = 'ファイルã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ';
-$labels['importtarget'] = '次ã«é€£çµ¡å…ˆã‚’追加';
+$labels['importtarget'] = 'アドレス帳ã«æ–°ã—ã„連絡先ã®è¿½åŠ :';
$labels['importreplace'] = 'アドレス帳全体ã¨ç½®ãæ›ãˆ';
-$labels['importgroups'] = 'グループã®å‰²ã‚Šå½“ã¦ã‚’インãƒãƒ¼ãƒˆ';
-$labels['importgroupsall'] = 'ã™ã¹ã¦ (å¿…è¦ãªã‚‰ã‚°ãƒ«ãƒ¼ãƒ—を作æˆ)';
-$labels['importgroupsexisting'] = '存在ã™ã‚‹ã‚°ãƒ«ãƒ¼ãƒ—ã ã‘';
$labels['importdesc'] = '連絡先を既存ã®ã‚¢ãƒ‰ãƒ¬ã‚¹å¸³ã‹ã‚‰ã‚¢ãƒƒãƒ—ロードã§ãã¾ã™ã€‚<br />ç¾åœ¨ã€<a href="http://ja.wikipedia.org/wiki/VCard">vCard</a>ã¾ãŸã¯CSV(コンマ区切り)ã®ãƒ‡ãƒ¼ã‚¿å½¢å¼ã‹ã‚‰ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚';
$labels['done'] = '完了';
+
+// settings
$labels['settingsfor'] = '次ã®è¨­å®š:';
$labels['about'] = 'ã“ã®ãƒ—ログラムã«ã¤ã„ã¦';
$labels['preferences'] = '設定';
$labels['userpreferences'] = 'ユーザー設定';
$labels['editpreferences'] = 'ユーザー設定を変更';
+
$labels['identities'] = '識別情報';
$labels['manageidentities'] = 'ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®è­˜åˆ¥æƒ…報を管ç†';
$labels['newidentity'] = 'æ–°ã—ã„識別情報';
+
$labels['newitem'] = 'æ–°ã—ã„é …ç›®';
$labels['edititem'] = 'é …ç›®ã®ç·¨é›†';
+
$labels['preferhtml'] = 'HTMLを表示';
$labels['defaultcharset'] = 'åˆæœŸè¨­å®šã®æ–‡å­—セット';
$labels['htmlmessage'] = 'HTMLメッセージ';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'æ•°å­—ã‚’å«ã‚€å˜èªžã‚’無視';
$labels['spellcheckignorecaps'] = 'ã™ã¹ã¦å¤§æ–‡å­—ã®å˜èªžã‚’無視';
$labels['addtodict'] = '辞書ã«è¿½åŠ ';
$labels['mailtoprotohandler'] = 'mailto: ã®ãƒªãƒ³ã‚¯ã‚’扱ã†ãƒ—ロトコル処ç†ã®ç™»éŒ²';
-$labels['standardwindows'] = 'ãƒãƒƒãƒ—アップを通常ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¨ã—ã¦å‡¦ç†';
$labels['forwardmode'] = 'メッセージã®è»¢é€å½¢å¼';
$labels['inline'] = 'インライン';
$labels['asattachment'] = '添付ファイル';
+
$labels['folder'] = 'フォルダー';
$labels['folders'] = 'フォルダー';
$labels['foldername'] = 'フォルダーå';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'フォルダーã®ç¨®é¡ž';
$labels['personalfolder'] = '個人フォルダー';
$labels['otherfolder'] = 'ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼';
$labels['sharedfolder'] = '公開フォルダー';
+
$labels['sortby'] = '並ã¹æ›¿ãˆ';
$labels['sortasc'] = '昇順ã§ä¸¦ã¹æ›¿ãˆ';
$labels['sortdesc'] = 'é™é †ã§ä¸¦ã¹æ›¿ãˆ';
$labels['undo'] = 'å–り消ã—';
+
$labels['installedplugins'] = 'インストールã—ã¦ã„るプラグイン';
$labels['plugin'] = 'プラグイン';
$labels['version'] = 'ãƒãƒ¼ã‚¸ãƒ§ãƒ³';
$labels['source'] = 'ソース';
$labels['license'] = 'ライセンス';
$labels['support'] = 'サãƒãƒ¼ãƒˆã‚’å¾—ã‚‹';
+
+// units
$labels['B'] = 'ãƒã‚¤ãƒˆ';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = '英語';
$labels['westerneuropean'] = '西ヨーロッパ言語';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'ベトナム語';
$labels['japanese'] = '日本語';
$labels['korean'] = '韓国語';
$labels['chinese'] = '中国語';
+
?>
diff --git a/program/localization/ja_JP/messages.inc b/program/localization/ja_JP/messages.inc
index abe5a6e7a..f4dd0fceb 100644
--- a/program/localization/ja_JP/messages.inc
+++ b/program/localization/ja_JP/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ!';
$messages['loginfailed'] = 'ログインã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
$messages['cookiesdisabled'] = 'ブラウザーãŒCookieã‚’å—ã‘付ã‘ã¾ã›ã‚“。';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'メッセージをé€ä¿¡ã—ã¾ã—ãŸã€‚';
$messages['savingmessage'] = 'メッセージをä¿å­˜ä¸­...';
$messages['messagesaved'] = 'メッセージを下書ãã«ä¿å­˜ã—ã¾ã—ãŸã€‚';
$messages['successfullysaved'] = 'ä¿å­˜ã—ã¾ã—ãŸã€‚';
-$messages['savingresponse'] = '回答ã®æ–‡ç« ã‚’ä¿å­˜ä¸­...';
-$messages['deleteresponseconfirm'] = 'ã“ã®å›žç­”ã®æ–‡ç« ã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?';
$messages['addedsuccessfully'] = '連絡先をアドレス帳ã«è¿½åŠ ã—ã¾ã—ãŸã€‚';
$messages['contactexists'] = 'åŒã˜ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®é€£çµ¡å…ˆãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚';
$messages['contactnameexists'] = 'åŒã˜åå‰ã®é€£çµ¡å…ˆãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚';
@@ -56,7 +56,7 @@ $messages['contactnotfound'] = '連絡先ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。';
$messages['contactsearchonly'] = '連絡先を探ã™ãŸã‚ã®æ¤œç´¢èªžã‚’入力ã—ã¦ãã ã•ã„';
$messages['sendingfailed'] = 'メッセージをé€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
$messages['senttooquickly'] = 'ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã™ã‚‹ã¾ã§ã€$sec秒ãŠå¾…ã¡ãã ã•ã„。';
-$messages['errorsavingsent'] = 'é€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚';
+$messages['errorsavingsent'] = 'é€ä¿¡ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚';
$messages['errorsaving'] = 'ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚';
$messages['errormoving'] = 'メッセージを移動ã§ãã¾ã›ã‚“。';
$messages['errorcopying'] = 'メッセージをコピーã§ãã¾ã›ã‚“。';
@@ -101,16 +101,13 @@ $messages['converting'] = 'メールã‹ã‚‰æ›¸å¼ã‚’削除中...';
$messages['messageopenerror'] = 'サーãƒãƒ¼ã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“。';
$messages['fileuploaderror'] = 'ファイルをアップロードã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
$messages['filesizeerror'] = 'アップロードã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚µã‚¤ã‚ºãŒä¸Šé™($size)を超ãˆã¾ã—ãŸã€‚';
-$messages['copysuccess'] = 'Successfully copied $nr contacts.';
-$messages['movesuccess'] = 'Successfully moved $nr contacts.';
-$messages['copyerror'] = 'Could not copy any contacts.';
-$messages['moveerror'] = 'Could not move any contacts.';
+$messages['copysuccess'] = '$nr件ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’コピーã—ã¾ã—ãŸã€‚';
+$messages['copyerror'] = 'ã©ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚‚コピーã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
$messages['sourceisreadonly'] = 'ã“ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚½ãƒ¼ã‚¹ã¯èª­ã¿è¾¼ã¿å°‚用ã§ã™ã€‚';
$messages['errorsavingcontact'] = '連絡先ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ä¿å­˜ã§ãã¾ã›ã‚“。';
$messages['movingmessage'] = 'メッセージを移動中...';
$messages['copyingmessage'] = 'メッセージをコピー中...';
$messages['copyingcontact'] = '連絡先をコピー中...';
-$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'メッセージを削除中...';
$messages['markingmessage'] = 'メッセージã«ãƒžãƒ¼ã‚¯ã‚’設定中...';
$messages['addingmember'] = 'グループã«é€£çµ¡å…ˆã‚’コピー中...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'インãƒãƒ¼ãƒˆä¸­ã§ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ãã
$messages['importformaterror'] = 'インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸ! アップロードã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯æ­£ã—ã„データをインãƒãƒ¼ãƒˆã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ã‚ã‚Šã¾ã›ã‚“。';
$messages['importconfirm'] = '<b>$inserted件ã®é€£çµ¡å…ˆã‚’インãƒãƒ¼ãƒˆã—ã¾ã—ãŸã€‚</b>';
$messages['importconfirmskipped'] = '<b>$skipped件ã®æ—¢å­˜ã™ã‚‹é …目を飛ã°ã—ãŸã€‚</b>';
-$messages['importmessagesuccess'] = '$nr件ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’インãƒãƒ¼ãƒˆã—ã¾ã—ãŸã€‚';
-$messages['importmessageerror'] = 'インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸ! アップロードã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯æœ‰åŠ¹ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚„メールボックスã®ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ã‚ã‚Šã¾ã›ã‚“。';
$messages['opnotpermitted'] = '許å¯ã•ã‚Œã¦ã„ãªã„æ“作ã§ã™ã€‚';
$messages['nofromaddress'] = 'é¸æŠžã—ã¦ã„る識別情報ã«é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæŠœã‘ã¦ã„ã¾ã™ã€‚';
$messages['editorwarning'] = 'テキストエディターã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã¨ã€ã™ã¹ã¦ã®æ›¸å¼ã¯ãªããªã‚Šã¾ã™ã€‚本当ã«ç¶šã‘ã¾ã™ã‹?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'é¸æŠžã—ãŸè¦ªãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«ä½œæˆã¾ãŸã
$messages['messagetoobig'] = 'ãã®å‡¦ç†ã‚’ã™ã‚‹ã«ã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸éƒ¨åˆ†ãŒå¤§ãã™ãŽã¾ã™ã€‚';
$messages['attachmentvalidationerror'] = '警告! ã“ã®æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®å®£è¨€ã¨ä¸€è‡´ã—ãªã„種類ã¨ã„ã†ç†ç”±ã®ãŸã‚ç–‘ã‚ã—ã„ã§ã™ã€‚é€ä¿¡è€…ã‚’ä¿¡é ¼ã§ããªã„ãªã‚‰ã€æ‚ªæ„ã®ã‚る内容をå«ã‚“ã§ã„ã‚‹ã‹ã‚‚ã—ã‚Œãªã„ã®ã§ãƒ–ラウザーã§é–‹ã„ã¦ã¯ãªã‚Šã¾ã›ã‚“。<br/><br/><em>予測ã—ãŸç¨®é¡ž: $expected; 発見ã—ãŸç¨®é¡ž: $found</em>';
$messages['noscriptwarning'] = '警告: ã“ã®ã‚¦ã‚§ãƒ–メールサービスã«ã¯JavascriptãŒå¿…è¦ã§ã™! 使用ã™ã‚‹ã«ã¯Javascriptをブラウザーã®è¨­å®šã§æœ‰åŠ¹ã«ã—ã¦ãã ã•ã„。';
+
?>
diff --git a/program/localization/ka_GE/labels.inc b/program/localization/ka_GE/labels.inc
index 7a14b6216..3ab3b6e63 100644
--- a/program/localization/ka_GE/labels.inc
+++ b/program/localization/ka_GE/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'მáƒáƒ’ესáƒáƒšáƒ›áƒ”ბáƒáƒ— $product';
$labels['username'] = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი';
$labels['password'] = 'პáƒáƒ áƒáƒšáƒ˜';
$labels['server'] = 'სერვერი';
$labels['login'] = 'შესვლáƒ';
+
+// taskbar
$labels['logout'] = 'გáƒáƒ›áƒáƒ¡áƒ•áƒšáƒ';
$labels['mail'] = 'ელფáƒáƒ¡áƒ¢áƒ';
$labels['settings'] = 'პáƒáƒ áƒáƒ›áƒ”ტრები';
$labels['addressbook'] = 'მისáƒáƒ›áƒáƒ áƒ—ები';
+
+// mailbox names
$labels['inbox'] = 'მიღებული';
$labels['drafts'] = 'დრáƒáƒ”ბითი';
$labels['sent'] = 'გáƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒšáƒ˜';
$labels['trash'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜';
$labels['junk'] = 'სპáƒáƒ›áƒ˜';
+
+// message listing
$labels['subject'] = 'სáƒáƒ—áƒáƒ£áƒ áƒ˜';
$labels['from'] = 'გáƒáƒ›áƒ’ზáƒáƒ•áƒœáƒ˜';
+$labels['sender'] = 'Sender';
$labels['to'] = 'ვის';
$labels['cc'] = 'áƒáƒ¡áƒšáƒ˜';
$labels['bcc'] = 'ფáƒáƒ áƒ£áƒšáƒ˜';
$labels['replyto'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'თáƒáƒ áƒ˜áƒ¦áƒ˜';
$labels['size'] = 'ზáƒáƒ›áƒ';
$labels['priority'] = 'პრიáƒáƒ áƒ˜áƒ¢áƒ”ტი';
$labels['organization'] = 'áƒáƒ áƒ’áƒáƒœáƒ˜áƒ–áƒáƒªáƒ˜áƒ';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეები';
+$labels['messagesfromto'] = 'Messages $from to $to of $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'შეტყáƒáƒ‘ინებრ$nr დáƒáƒœ $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'áƒáƒ¡áƒšáƒ˜';
$labels['move'] = 'გáƒáƒ“áƒáƒ¢áƒáƒœáƒ';
$labels['moveto'] = 'გáƒáƒ“áƒáƒ¢áƒáƒœáƒ...';
$labels['download'] = 'გáƒáƒ“მáƒáƒ¬áƒ”რáƒ';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლი';
$labels['filesize'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ ზáƒáƒ›áƒ';
+
$labels['addtoaddressbook'] = 'მისáƒáƒ›áƒáƒ áƒ—ებში დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
+
+// weekdays short
$labels['sun'] = 'კვი';
$labels['mon'] = 'áƒáƒ áƒ¨';
$labels['tue'] = 'სáƒáƒ›';
@@ -55,6 +81,8 @@ $labels['wed'] = 'áƒáƒ—ხ';
$labels['thu'] = 'ხუთ';
$labels['fri'] = 'პáƒáƒ ';
$labels['sat'] = 'შáƒáƒ‘';
+
+// weekdays long
$labels['sunday'] = 'კვირáƒ';
$labels['monday'] = 'áƒáƒ áƒ¨áƒáƒ‘áƒáƒ—ი';
$labels['tuesday'] = 'სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი';
$labels['thursday'] = 'ხუთშáƒáƒ‘áƒáƒ—ი';
$labels['friday'] = 'პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი';
$labels['saturday'] = 'შáƒáƒ‘áƒáƒ—ი';
+
+// months short
$labels['jan'] = 'იáƒáƒœ';
$labels['feb'] = 'თებ';
$labels['mar'] = 'მáƒáƒ ';
@@ -74,6 +104,8 @@ $labels['sep'] = 'სექ';
$labels['oct'] = 'áƒáƒ¥áƒ¢';
$labels['nov'] = 'ნáƒáƒ”';
$labels['dec'] = 'დეკ';
+
+// months long
$labels['longjan'] = 'იáƒáƒœáƒ•áƒáƒ áƒ˜';
$labels['longfeb'] = 'თებერვáƒáƒšáƒ˜';
$labels['longmar'] = 'მáƒáƒ áƒ¢áƒ˜';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'სექტემბერი';
$labels['longoct'] = 'áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი';
$labels['longnov'] = 'ნáƒáƒ”მბერი';
$labels['longdec'] = 'დეკემბერი';
+
$labels['today'] = 'დღეს';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'შემáƒáƒ¬áƒ›áƒ”ბრáƒáƒ®áƒáƒš შეტყáƒáƒ‘ინებáƒáƒ–ე';
$labels['compose'] = 'შეტყáƒáƒ‘ინების დáƒáƒ¬áƒ”რáƒ';
$labels['writenewmessage'] = 'áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜';
$labels['replytoallmessage'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜ ყველáƒáƒ¡';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'გáƒáƒ“áƒáƒ’ზáƒáƒ•áƒœáƒ';
$labels['deletemessage'] = 'წáƒáƒ¨áƒšáƒ';
$labels['movemessagetotrash'] = 'შეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ˜áƒšáƒ”ბში გáƒáƒ“áƒáƒ¢áƒáƒœáƒ';
@@ -102,12 +144,17 @@ $labels['nextmessage'] = 'შემდეგი შეტყáƒáƒ‘ინე
$labels['lastmessage'] = 'ბáƒáƒšáƒ შეტყáƒáƒ‘ინების ნáƒáƒ®áƒ•áƒ';
$labels['backtolist'] = 'უკáƒáƒœ ჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ¨áƒ˜';
$labels['viewsource'] = 'შიგთáƒáƒ•áƒ¡áƒ˜';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ”თ შეტყáƒáƒ‘ინებები';
$labels['markread'] = 'რáƒáƒ’áƒáƒ áƒª წáƒáƒ™áƒ˜áƒ—ხული';
$labels['markunread'] = 'რáƒáƒ’áƒáƒ áƒª წáƒáƒ£áƒ™áƒ˜áƒ—ხáƒáƒ•áƒ˜';
$labels['markflagged'] = 'რáƒáƒ’áƒáƒ áƒª მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜';
$labels['markunflagged'] = 'რáƒáƒ’áƒáƒ áƒª მáƒáƒ£áƒœáƒ˜áƒ¨áƒœáƒáƒ•áƒ˜';
$labels['moreactions'] = 'მეტი მáƒáƒ¥áƒ›áƒ”დებáƒ...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ';
$labels['all'] = 'ყველáƒ';
$labels['none'] = 'áƒáƒ áƒªáƒ”რთი';
@@ -115,70 +162,122 @@ $labels['currpage'] = 'მიმდინáƒáƒ áƒ” გვერდი';
$labels['unread'] = 'წáƒáƒ£áƒ™áƒ˜áƒ—ხáƒáƒ•áƒ˜';
$labels['flagged'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜';
$labels['unanswered'] = 'უპáƒáƒ¡áƒ£áƒ®áƒ';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'შებრუნებული';
$labels['filter'] = 'ფილტრი';
$labels['list'] = 'სიáƒ';
+$labels['threads'] = 'Threads';
$labels['expand-all'] = 'ყველáƒáƒ¡ გáƒáƒ¨áƒšáƒ';
$labels['expand-unread'] = 'წáƒáƒ£áƒ™áƒ˜áƒ—ხáƒáƒ•áƒ˜áƒ¡ გáƒáƒ¨áƒšáƒ';
$labels['collapse-all'] = 'ყველáƒáƒ¡ დáƒáƒ™áƒ”ცვáƒ';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
$labels['fromto'] = 'ვისგáƒáƒœ/ვის';
$labels['flag'] = 'დრáƒáƒ¨áƒ';
$labels['attachment'] = 'მიმáƒáƒ’რებული ფáƒáƒ˜áƒšáƒ˜';
$labels['nonesort'] = 'áƒáƒ áƒªáƒ”რთი';
$labels['sentdate'] = 'გáƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒ¡ თáƒáƒ áƒ˜áƒ¦áƒ˜';
+$labels['arrival'] = 'Arrival date';
$labels['asc'] = 'ზრდáƒáƒ“áƒáƒ‘ით';
$labels['desc'] = 'კლებáƒáƒ“áƒáƒ‘ით';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
$labels['listorder'] = 'დáƒáƒšáƒáƒ’ებáƒ';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'შეკუმშვáƒ';
$labels['empty'] = 'გáƒáƒªáƒáƒ áƒ˜áƒ”ლებáƒ';
+
$labels['quota'] = 'შეზღუდვáƒ';
$labels['unknown'] = 'უცნáƒáƒ‘ი';
$labels['unlimited'] = 'შეუზღუდáƒáƒ•áƒ˜';
+
$labels['quicksearch'] = 'სწრáƒáƒ¤áƒ˜ ძიებáƒ';
$labels['resetsearch'] = 'ძიების გáƒáƒ¡áƒ£áƒ¤áƒ—áƒáƒ•áƒ”ბáƒ';
$labels['searchmod'] = 'ძებნის ვáƒáƒ áƒ˜áƒáƒœáƒ¢áƒ”ბი';
$labels['msgtext'] = 'ყველრშეტყáƒáƒ‘ინებáƒ';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'გáƒáƒ®áƒ¡áƒœáƒ áƒáƒ®áƒáƒš ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜';
$labels['emlsave'] = 'გáƒáƒ“მáƒáƒ¬áƒ”რრ(.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბრრáƒáƒ’áƒáƒ áƒª áƒáƒ®áƒšáƒ˜áƒ¡';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'შეტყáƒáƒ‘ინების გáƒáƒ’ზáƒáƒ•áƒœáƒ';
$labels['savemessage'] = 'დრáƒáƒ”ბით შენáƒáƒ®áƒ•áƒ';
$labels['addattachment'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ';
$labels['charset'] = 'კáƒáƒ“ირებáƒ';
$labels['editortype'] = 'რედáƒáƒ¥áƒ¢áƒáƒ áƒ˜';
$labels['returnreceipt'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜áƒ¡ მáƒáƒ—ხáƒáƒ•áƒœáƒ';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'áƒáƒ áƒ—áƒáƒ’რáƒáƒ¤áƒ˜áƒ£áƒšáƒ˜ შემáƒáƒ¬áƒ›áƒ”ბáƒ';
$labels['resumeediting'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბის გáƒáƒ’რძელებáƒ';
$labels['revertto'] = 'გáƒáƒ£áƒ¥áƒ›áƒ”ბáƒ';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'გზáƒáƒ•áƒœáƒ˜áƒšáƒ”ბი';
$labels['upload'] = 'áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'დáƒáƒ®áƒ£áƒ áƒ•áƒ';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'დáƒáƒ‘áƒáƒšáƒ˜';
$labels['lowest'] = 'უდáƒáƒ‘ლესი';
$labels['normal'] = 'სáƒáƒ¨áƒ£áƒáƒšáƒ';
$labels['high'] = 'მáƒáƒ¦áƒáƒšáƒ˜';
$labels['highest'] = 'უმáƒáƒ¦áƒšáƒ”სი';
+
$labels['nosubject'] = '(უსáƒáƒ—áƒáƒ£áƒ áƒ)';
$labels['showimages'] = 'გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ჩვენებáƒ';
$labels['alwaysshow'] = 'ყáƒáƒ•áƒ”ლთვის გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ” სურáƒáƒ—ები $sender –გáƒáƒœ';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ტექსტური';
$labels['savesentmessagein'] = 'შეინáƒáƒ®áƒ” შეტყáƒáƒ‘ინებáƒ';
$labels['dontsave'] = 'áƒáƒ  შეინáƒáƒ®áƒ';
$labels['maxuploadsize'] = 'მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ áƒ˜ დáƒáƒ¨áƒ•áƒ”ბული ფáƒáƒ˜áƒšáƒ˜áƒ¡ ზáƒáƒ›áƒ $size';
+
$labels['addcc'] = 'დáƒáƒáƒ›áƒáƒ¢áƒ” კáƒáƒžáƒ˜áƒ';
$labels['addbcc'] = 'დáƒáƒáƒ›áƒáƒ¢áƒ” ფáƒáƒ áƒ£áƒšáƒ˜ კáƒáƒžáƒ˜áƒ';
$labels['addreplyto'] = 'დáƒáƒáƒ›áƒáƒ¢áƒ” გáƒáƒ›áƒáƒ›áƒ’ზáƒáƒ•áƒœáƒ˜';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'გáƒáƒ›áƒáƒ›áƒ’ზáƒáƒ•áƒœáƒ¡ სურს შეიტყáƒáƒ¡ წერილის მიღებáƒ. გსურთ შეáƒáƒ¢áƒ§áƒáƒ‘ინáƒáƒ— გáƒáƒ›áƒáƒ›áƒ’ზáƒáƒ•áƒœáƒ¡?';
$labels['receiptread'] = 'გზáƒáƒ•áƒœáƒ˜áƒšáƒ˜áƒ¡ დáƒáƒ‘რუნებáƒ';
$labels['yourmessage'] = 'ეს áƒáƒ áƒ˜áƒ¡ მიღების დáƒáƒ¡áƒ¢áƒ£áƒ áƒ˜ თქვენს შეტყáƒáƒ‘ინებáƒáƒ–ე';
$labels['receiptnote'] = 'გáƒáƒœáƒ›áƒáƒ áƒ¢áƒ”ბáƒ: ეს ნიშნáƒáƒ•áƒ¡ რáƒáƒ› áƒáƒ“რესáƒáƒ¢áƒ›áƒ მიიღრშეტყáƒáƒ‘ინებáƒ. მáƒáƒ’რáƒáƒ›, áƒáƒ  ნიშნáƒáƒ•áƒ¡ რáƒáƒ› წáƒáƒ˜áƒ™áƒ˜áƒ—ხრáƒáƒœ გáƒáƒ˜áƒ’რტექსტი';
+
+// address boook
$labels['name'] = 'სრული სáƒáƒ®áƒ”ლი';
$labels['firstname'] = 'სáƒáƒ®áƒ”ლი';
$labels['surname'] = 'გვáƒáƒ áƒ˜';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
$labels['department'] = 'დეპáƒáƒ áƒ¢áƒáƒ›áƒ”ნტი';
$labels['gender'] = 'სქესი';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'ელ–ფáƒáƒ¡áƒ¢áƒ';
$labels['phone'] = 'ტელეფáƒáƒœáƒ˜';
$labels['address'] = 'მისáƒáƒ›áƒáƒ áƒ—ი';
@@ -188,14 +287,21 @@ $labels['zipcode'] = 'ZIP კáƒáƒ“ი';
$labels['region'] = 'შტáƒáƒ¢áƒ˜/პრáƒáƒ•áƒ˜áƒœáƒªáƒ˜áƒ';
$labels['country'] = 'ქვეყáƒáƒœáƒ';
$labels['birthday'] = 'დáƒáƒ‘áƒáƒ“ების დღე';
+$labels['anniversary'] = 'Anniversary';
$labels['website'] = 'ვებგვერდი';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
$labels['male'] = 'მáƒáƒ›áƒ áƒáƒ‘ითი';
$labels['female'] = 'მდედრáƒáƒ‘ით';
$labels['manager'] = 'მენეჯერი';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
$labels['allfields'] = 'ყველრველი';
$labels['search'] = 'ძებნáƒ';
$labels['advsearch'] = 'გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბული ძებნáƒ';
+$labels['advanced'] = 'Advanced';
$labels['other'] = 'სხვáƒ';
+
$labels['typehome'] = 'სáƒáƒ®áƒšáƒ˜';
$labels['typework'] = 'სáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ˜';
$labels['typeother'] = 'სხვáƒ';
@@ -206,13 +312,18 @@ $labels['typeworkfax'] = 'სáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ˜áƒ¡ ფáƒáƒ¥áƒ¡áƒ˜';
$labels['typecar'] = 'მáƒáƒœáƒ¥áƒáƒœáƒ';
$labels['typepager'] = 'პეიჯერი';
$labels['typevideo'] = 'ვიდეáƒ';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
$labels['typeblog'] = 'ბლáƒáƒ’ი';
$labels['typeprofile'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜';
+
$labels['addfield'] = 'ველის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ...';
$labels['addcontact'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბში დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
$labels['editcontact'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜áƒ¡ რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
$labels['contacts'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბი';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'პირáƒáƒ“ი ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ';
+
$labels['edit'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
$labels['cancel'] = 'გáƒáƒ£áƒ¥áƒ›áƒ”ბáƒ';
$labels['save'] = 'შენáƒáƒ®áƒ•áƒ';
@@ -220,42 +331,61 @@ $labels['delete'] = 'წáƒáƒ¨áƒšáƒ';
$labels['rename'] = 'გáƒáƒ“áƒáƒ áƒ¥áƒ›áƒ”ვáƒ';
$labels['addphoto'] = 'დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
$labels['replacephoto'] = 'გáƒáƒ›áƒáƒªáƒ•áƒšáƒ';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜áƒ¡ შექმნáƒ';
$labels['deletecontact'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ”ლი კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜áƒ¡ წáƒáƒ¨áƒšáƒ';
$labels['composeto'] = 'ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ გáƒáƒ’ზáƒáƒ•áƒœáƒ შერჩეულ áƒáƒ“რესáƒáƒ¢áƒ”ბთáƒáƒœ';
$labels['contactsfromto'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბი $from დáƒáƒœ $to ში $count';
$labels['print'] = 'დáƒáƒ‘ეჭვდáƒ';
$labels['export'] = 'ექსპáƒáƒ áƒ¢áƒ˜';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბის ექსპáƒáƒ áƒ¢áƒ˜ vCard ფáƒáƒ áƒ›áƒáƒ¢áƒ¨áƒ˜';
$labels['newcontactgroup'] = 'áƒáƒ®áƒáƒšáƒ˜ სáƒáƒ™áƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ ჯგუფის შექმნáƒ';
$labels['grouprename'] = 'ჯგუფის სáƒáƒ®áƒ”ლის შეცვლáƒ';
$labels['groupdelete'] = 'ჯგუფის წáƒáƒ¨áƒšáƒ';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'წინáƒáƒ¡ ჩვენებáƒ';
$labels['firstpage'] = 'პირველის ჩვენებáƒ';
$labels['nextpage'] = 'შემდეგის ჩვენებáƒ';
$labels['lastpage'] = 'ბáƒáƒšáƒáƒ¡ ჩვენებáƒ';
+
$labels['group'] = 'ჯგუფი';
$labels['groups'] = 'ჯგუფები';
$labels['personaladrbook'] = 'პერსáƒáƒœáƒáƒšáƒ£áƒ áƒ˜ მისáƒáƒ›áƒáƒ áƒ—ები';
+
$labels['searchsave'] = 'ძებნის შენáƒáƒ®áƒ•áƒ';
$labels['searchdelete'] = 'ძებნის წáƒáƒ¨áƒšáƒ';
+
$labels['import'] = 'შემáƒáƒ¢áƒáƒœáƒ';
$labels['importcontacts'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბის შემáƒáƒ¢áƒáƒœáƒ';
$labels['importfromfile'] = 'შემáƒáƒ¢áƒáƒœáƒ ფáƒáƒ˜áƒšáƒ˜áƒ“áƒáƒœ:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'ჩáƒáƒáƒœáƒáƒªáƒ•áƒšáƒ”თ áƒáƒ áƒ¡áƒ”ბული მისáƒáƒ›áƒáƒ áƒ—ები';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'დáƒáƒ¡áƒ áƒ£áƒšáƒ”ბულიáƒ';
+
+// settings
$labels['settingsfor'] = 'პáƒáƒ áƒáƒ›áƒ”ტრები';
+$labels['about'] = 'About';
$labels['preferences'] = 'პáƒáƒ áƒáƒ›áƒ”ტრები';
$labels['userpreferences'] = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის პáƒáƒ áƒáƒ›áƒ”ტრები';
$labels['editpreferences'] = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის პáƒáƒ áƒáƒ›áƒ”ტრების რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
+
$labels['identities'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ”ბი';
$labels['manageidentities'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ”ბის მáƒáƒ áƒ—ვáƒ';
$labels['newidentity'] = 'áƒáƒ®áƒáƒšáƒ˜ პრáƒáƒ¤áƒ˜áƒšáƒ˜';
+
$labels['newitem'] = 'áƒáƒ®áƒáƒšáƒ˜';
$labels['edititem'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
+
$labels['preferhtml'] = 'რáƒáƒ’áƒáƒ áƒª HTML';
$labels['defaultcharset'] = 'ნáƒáƒ’ულისხმები სიმბáƒáƒšáƒáƒ—რნáƒáƒ™áƒ áƒ”ბი';
$labels['htmlmessage'] = 'HTML შეტყáƒáƒ‘ინებáƒ';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'თáƒáƒ áƒ˜áƒ¦áƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜';
$labels['timeformat'] = 'დრáƒáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜';
$labels['prettydate'] = 'კáƒáƒ áƒ’ი თáƒáƒ áƒ˜áƒ¦áƒ”ბი';
@@ -266,8 +396,13 @@ $labels['timezone'] = 'დრáƒáƒ˜áƒ—ი ზáƒáƒœáƒ';
$labels['pagesize'] = 'სტრიქáƒáƒœáƒ˜ გვერდზე';
$labels['signature'] = 'ხელმáƒáƒ¬áƒ”რáƒ';
$labels['dstactive'] = 'დრáƒáƒ˜áƒ¡ გáƒáƒ“áƒáƒ§áƒ•áƒáƒœáƒ';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'შეტყáƒáƒ‘ინების შექმნრHTML –ში';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML ხელმáƒáƒ¬áƒ”რáƒ';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'ჩვენებáƒ';
$labels['skin'] = 'ინტერფეისი';
$labels['logoutclear'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ”ბის გáƒáƒ¡áƒ£áƒ¤áƒ—áƒáƒ•áƒ”ბრგáƒáƒ›áƒáƒ¡áƒ•áƒšáƒ˜áƒ¡áƒáƒ¡';
@@ -278,16 +413,21 @@ $labels['mailboxview'] = 'სáƒáƒ¤áƒáƒ¡áƒ¢áƒ ყუთის ჩვენეá
$labels['mdnrequests'] = 'მგზáƒáƒ•áƒœáƒ”ლის შეტყáƒáƒ‘ინებები';
$labels['askuser'] = 'ჰკითხე მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელს';
$labels['autosend'] = 'გáƒáƒ’ზáƒáƒ•áƒœáƒ” áƒáƒ•áƒ¢áƒáƒ›áƒáƒ¢áƒ£áƒ áƒáƒ“';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'იგნáƒáƒ áƒ˜áƒ áƒ”ბáƒ';
$labels['readwhendeleted'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ” გზáƒáƒ•áƒœáƒ˜áƒšáƒ˜ წáƒáƒ™áƒ˜áƒ—ხულáƒáƒ“ წáƒáƒ¨áƒšáƒ˜áƒ¡ დრáƒáƒ¡';
$labels['flagfordeletion'] = 'áƒáƒ¦áƒœáƒ˜áƒ¨áƒœáƒ”თ გზáƒáƒ•áƒœáƒ˜áƒšáƒ”ბი რáƒáƒ’áƒáƒ áƒª წáƒáƒ¡áƒáƒ¨áƒšáƒ”ლი წáƒáƒ¨áƒšáƒ˜áƒ¡ ნáƒáƒªáƒ•áƒšáƒáƒ“';
$labels['skipdeleted'] = 'áƒáƒ  გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜ გზáƒáƒ•áƒœáƒ˜áƒšáƒ”ბი';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ” მáƒáƒ¨áƒáƒ áƒ”ბული სურáƒáƒ—ები';
$labels['fromknownsenders'] = 'ნáƒáƒªáƒœáƒáƒ‘ი მგზáƒáƒ•áƒœáƒ”ლებისგáƒáƒœ';
$labels['always'] = 'ყáƒáƒ•áƒ”ლთვის';
$labels['showinlineimages'] = 'áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ული სურáƒáƒ—ები გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ” გზáƒáƒ•áƒœáƒ˜áƒšáƒ˜áƒ¡ ქვემáƒáƒ—';
$labels['autosavedraft'] = 'áƒáƒ•áƒ¢áƒáƒ›áƒáƒ¢áƒ£áƒ áƒ˜ შენáƒáƒ®áƒ•áƒ';
$labels['everynminutes'] = 'ყáƒáƒ•áƒ”ლ $n წუთში';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'áƒáƒ áƒáƒ¡áƒ“რáƒáƒ¡';
$labels['immediately'] = 'დáƒáƒ£áƒ§áƒáƒœáƒ”ბლივ';
$labels['messagesdisplaying'] = 'გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ” შეტყáƒáƒ‘ინებები';
@@ -301,12 +441,15 @@ $labels['advancedoptions'] = 'დáƒáƒ›áƒáƒ¢áƒ”ბითი პáƒáƒ áƒáƒ›áƒ”á
$labels['focusonnewmessage'] = 'ფáƒáƒ™áƒ£áƒ¡áƒ˜áƒ áƒ”ბრáƒáƒ®áƒáƒš შეტყáƒáƒ‘ინებებზე';
$labels['checkallfolders'] = 'შეáƒáƒ›áƒáƒ¬áƒ›áƒ” ყველრსáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე áƒáƒ®áƒáƒš შეტყáƒáƒ‘ინებáƒáƒ–ე';
$labels['displaynext'] = 'შეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ˜áƒ¡ áƒáƒœ გáƒáƒ“áƒáƒ¢áƒáƒœáƒ˜áƒ¡ შემდეგ გáƒáƒ›áƒáƒ©áƒœáƒ“ეს შემდეგი შეტყáƒáƒ‘ინებáƒ';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'ძირითáƒáƒ“ი პáƒáƒ áƒáƒ›áƒ”ტრები';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'გáƒáƒœáƒ§áƒáƒ¤áƒ˜áƒšáƒ”ბáƒ';
$labels['maintenance'] = 'მáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ”ბáƒ';
$labels['newmessage'] = 'áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
$labels['signatureoptions'] = 'ხელმáƒáƒ¬áƒ”რის áƒáƒ¤áƒªáƒ˜áƒ”ბი';
$labels['whenreplying'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜áƒ¡ შემთხვევáƒáƒ¨áƒ˜';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'დáƒáƒ˜áƒ¬áƒ§áƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებრáƒáƒ áƒ˜áƒ’ინáƒáƒšáƒ˜áƒ¡ ზემáƒáƒ—';
$labels['replybottomposting'] = 'დáƒáƒ˜áƒ¬áƒ§áƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებრáƒáƒ áƒ˜áƒ’ინáƒáƒšáƒ˜áƒ¡ ქვემáƒáƒ—';
$labels['replyremovesignature'] = 'წáƒáƒ˜áƒ¨áƒáƒšáƒáƒ¡ ხელმáƒáƒ¬áƒ”რრპáƒáƒ¡áƒ£áƒ®áƒ˜áƒ¡ შემთხვევáƒáƒ¨áƒ˜';
@@ -314,8 +457,25 @@ $labels['autoaddsignature'] = 'áƒáƒ•áƒ¢áƒáƒ›áƒáƒ¢áƒ£áƒ áƒáƒ“ დáƒáƒ”მáƒ
$labels['newmessageonly'] = 'მხáƒáƒšáƒáƒ“ áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
$labels['replyandforwardonly'] = 'მხáƒáƒšáƒáƒ“ გáƒáƒ“áƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒ¡ დრპáƒáƒ¡áƒ£áƒ®áƒ˜áƒ¡ შემთხვევáƒáƒ¨áƒ˜';
$labels['insertsignature'] = 'ხელმáƒáƒªáƒ”რის ჩáƒáƒ¡áƒ›áƒ';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
$labels['afternseconds'] = '$n წáƒáƒ›áƒ˜áƒ¡ შემდეგ';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'ლექსიკáƒáƒœáƒ¨áƒ˜ დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე';
$labels['folders'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეები';
$labels['foldername'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის დáƒáƒ¡áƒáƒ®áƒ”ლებáƒ';
@@ -325,33 +485,54 @@ $labels['create'] = 'შექმნáƒ';
$labels['createfolder'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის შექმნáƒ';
$labels['managefolders'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეების მáƒáƒ áƒ—ვáƒ';
$labels['specialfolders'] = 'სპეციáƒáƒšáƒ£áƒ áƒ˜ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
$labels['location'] = 'მდებáƒáƒ áƒ”áƒáƒ‘áƒ';
$labels['info'] = 'ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
$labels['foldertype'] = 'დáƒáƒ¡áƒ¢áƒ˜áƒ¡ ტიპი';
$labels['personalfolder'] = 'კერძრდáƒáƒ¡áƒ¢áƒ';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'სáƒáƒ¯áƒáƒ áƒ დáƒáƒ¡áƒ¢áƒ';
+
$labels['sortby'] = 'დáƒáƒšáƒáƒ’ებáƒ';
$labels['sortasc'] = 'დáƒáƒšáƒáƒ’ებრზრდáƒáƒ“áƒáƒ‘ით';
$labels['sortdesc'] = 'დáƒáƒšáƒáƒ’ებრკლებáƒáƒ“áƒáƒ‘ით';
$labels['undo'] = 'დáƒáƒ‘რუნებáƒ';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'ბტ';
$labels['KB'] = 'კბტ';
$labels['MB'] = 'მბტ';
$labels['GB'] = 'გბტ';
+
+// character sets
$labels['unicode'] = 'უნიკáƒáƒ“ი';
$labels['english'] = 'ინსგლისური';
$labels['westerneuropean'] = 'დáƒáƒ¡áƒáƒ•áƒšáƒ£áƒ áƒ”ვრáƒáƒžáƒ£áƒšáƒ˜';
$labels['easterneuropean'] = 'áƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თევრáƒáƒžáƒ£áƒšáƒ˜';
+$labels['southeasterneuropean'] = 'South-Eastern European';
$labels['baltic'] = 'ბáƒáƒšáƒ¢áƒ˜áƒ£áƒ áƒ˜';
$labels['cyrillic'] = 'კირილიცáƒ';
$labels['arabic'] = 'áƒáƒ áƒáƒ‘ული';
$labels['greek'] = 'ბერძნული';
$labels['hebrew'] = 'ებრáƒáƒ£áƒšáƒ˜';
$labels['turkish'] = 'თურქული';
+$labels['nordic'] = 'Nordic';
$labels['thai'] = 'ტáƒáƒ˜';
$labels['celtic'] = 'კელტური';
$labels['vietnamese'] = 'ვიეტნáƒáƒ›áƒ£áƒ áƒ˜';
$labels['japanese'] = 'იáƒáƒžáƒáƒœáƒ£áƒ áƒ˜';
$labels['korean'] = 'კáƒáƒ áƒ”ული';
$labels['chinese'] = 'ჩინური';
+
?>
diff --git a/program/localization/ka_GE/messages.inc b/program/localization/ka_GE/messages.inc
index 2c544e17d..754343fac 100644
--- a/program/localization/ka_GE/messages.inc
+++ b/program/localization/ka_GE/messages.inc
@@ -15,6 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'შესვლრშეუძლებელიáƒ';
$messages['cookiesdisabled'] = 'თქვენი ბრáƒáƒ£áƒ–ერი კუკიებს áƒáƒ  პáƒáƒ¡áƒ£áƒ®áƒáƒ‘ს';
$messages['sessionerror'] = 'თქვენი სესირáƒáƒ áƒ˜áƒ¡ მცდáƒáƒ áƒ˜ áƒáƒœ ვáƒáƒ“áƒáƒ’áƒáƒ¡áƒ£áƒšáƒ˜';
@@ -22,11 +25,17 @@ $messages['storageerror'] = 'IMAP სერვერთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨
$messages['servererror'] = 'შეცდáƒáƒ›áƒ სერვერზე!';
$messages['servererrormsg'] = 'სერვერის შეცდáƒáƒ›áƒ: $msg';
$messages['dberror'] = 'მáƒáƒœáƒáƒªáƒ”მთრბáƒáƒ–ის შეცდáƒáƒ›áƒ!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
$messages['errornoperm'] = 'მáƒáƒ¥áƒ›áƒ”დების შესრულებრშეუძლებáƒáƒšáƒ˜áƒ. წვდáƒáƒ›áƒ áƒáƒ™áƒ áƒ«áƒáƒšáƒ£áƒšáƒ˜áƒ.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ მáƒáƒ—ხáƒáƒ•áƒœáƒ! მáƒáƒœáƒáƒªáƒ”მების შენáƒáƒ®áƒ•áƒ áƒáƒ  მáƒáƒ®áƒ”რხდáƒ.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'áƒáƒ  áƒáƒ áƒ˜áƒ¡ áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
$messages['loggedout'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით დáƒáƒ˜áƒ®áƒ£áƒ áƒ თქვენი სესიáƒ';
$messages['mailboxempty'] = 'სáƒáƒ¤áƒáƒ¡áƒ¢áƒ ყუთი ცáƒáƒ áƒ˜áƒ”ლიáƒ';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'იტვირთებáƒ...';
$messages['uploading'] = 'ფáƒáƒ˜áƒšáƒ˜ იტვირთებáƒ...';
$messages['uploadingmany'] = 'ფáƒáƒ˜áƒšáƒ”ბის áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ...';
@@ -39,22 +48,31 @@ $messages['messagesaved'] = 'შეტყáƒáƒ‘ინების დრáƒáƒ”áƒ
$messages['successfullysaved'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით შეინáƒáƒ®áƒ';
$messages['addedsuccessfully'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით დáƒáƒ”მáƒáƒ¢áƒ მისáƒáƒ›áƒáƒ áƒ—ებში';
$messages['contactexists'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ áƒáƒ› მისáƒáƒ›áƒáƒ áƒ—ზე უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'უსáƒáƒ¤áƒ áƒ—ხáƒáƒ”ბის მიზნით სურáƒáƒ—ების ჩვენებრშეზღუდულიáƒ';
$messages['encryptedmessage'] = 'შეტყáƒáƒ‘ინებრდáƒáƒ¨áƒ˜áƒ¤áƒ áƒ£áƒšáƒ˜áƒ დრსáƒáƒ›áƒ¬áƒ£áƒ®áƒáƒ áƒáƒ“ ჩვენებრშეუძლებელიáƒ';
$messages['nocontactsfound'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ';
$messages['contactnotfound'] = 'მáƒáƒ—ხáƒáƒ•áƒœáƒ˜áƒšáƒ˜ კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'შეტყáƒáƒ‘ინებრვერ გáƒáƒ˜áƒ’ზáƒáƒ•áƒœáƒ';
$messages['senttooquickly'] = 'გთხáƒáƒ•áƒ— მáƒáƒ˜áƒªáƒáƒ“áƒáƒ— $sec წáƒáƒ›áƒ˜. სáƒáƒœáƒáƒ› იგზáƒáƒ•áƒœáƒ”ბრშეტყáƒáƒ‘ინებáƒ';
+$messages['errorsavingsent'] = 'შეცდáƒáƒ›áƒ სáƒáƒœáƒáƒ› ინáƒáƒ®áƒ”ბრგáƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
+$messages['errorsaving'] = 'შენáƒáƒ®áƒ•áƒ˜áƒ¡ დრáƒáƒ¡ მáƒáƒ®áƒ“რშეცდáƒáƒ›áƒ';
$messages['errormoving'] = 'შეტყáƒáƒ‘ინების გáƒáƒ“áƒáƒ¢áƒáƒœáƒ შეუძლებელიáƒ';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'შეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ';
$messages['errormarking'] = 'შეტყáƒáƒ‘ინების მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ შეუძლებელიáƒ';
$messages['deletecontactconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბის წáƒáƒ¨áƒšáƒ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ შეტყáƒáƒ‘ინებების წáƒáƒ¨áƒšáƒ?';
$messages['deletefolderconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ áƒáƒ› სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის წáƒáƒ¨áƒšáƒ?';
$messages['purgefolderconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ ყველრშეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ áƒáƒ¦áƒœáƒ˜áƒ¨áƒœáƒ£áƒš სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
$messages['groupdeleting'] = 'ჯგუფის წáƒáƒ¨áƒšáƒ...';
$messages['folderdeleting'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის წáƒáƒ¨áƒšáƒ...';
$messages['foldermoving'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის გáƒáƒ“áƒáƒ¢áƒáƒœáƒ...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'ყველრველი áƒáƒ  áƒáƒ áƒ˜áƒ¡ შევსებული';
$messages['noemailwarning'] = 'მიუთითეთ სწáƒáƒ áƒ˜ ელ–ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ მისáƒáƒ›áƒáƒ áƒ—ი';
$messages['nonamewarning'] = 'მიუთითეთ სáƒáƒ®áƒ”ლი';
@@ -74,22 +92,40 @@ $messages['searching'] = 'ძიებáƒ...';
$messages['checking'] = 'შემáƒáƒ¬áƒ›áƒ”ბáƒ...';
$messages['nospellerrors'] = 'áƒáƒ áƒ—áƒáƒ’რáƒáƒ¤áƒ˜áƒ£áƒšáƒ˜ შეცდáƒáƒ›áƒ áƒáƒ  áƒáƒ áƒ˜áƒ¡';
$messages['folderdeleted'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ';
$messages['converting'] = 'შეტყáƒáƒ‘ინების ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ áƒ”ბის გáƒáƒ£áƒ¥áƒ›áƒ”ბáƒ...';
$messages['messageopenerror'] = 'შეტყáƒáƒ‘ინებრვერ ჩáƒáƒ˜áƒ¢áƒ•áƒ˜áƒ áƒ—რსერვერიდáƒáƒœ';
$messages['fileuploaderror'] = 'ფáƒáƒ˜áƒšáƒ˜ ვერ áƒáƒ˜áƒ¢áƒ•áƒ˜áƒ áƒ—áƒ';
$messages['filesizeerror'] = 'áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ული ფáƒáƒ˜áƒšáƒ˜áƒ¡ ზáƒáƒ›áƒ მეტირდáƒáƒ¡áƒáƒ¨áƒ•áƒ”ბ ფáƒáƒ˜áƒšáƒ˜áƒ¡ მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ  ზáƒáƒ›áƒáƒ–ე ($size)';
+$messages['copysuccess'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით დáƒáƒ™áƒáƒžáƒ˜áƒ áƒ“რ$nr მისáƒáƒ›áƒáƒ áƒ—ი';
+$messages['copyerror'] = 'ვერცერთი მისáƒáƒ›áƒáƒ áƒ—ი ვერ დáƒáƒ™áƒáƒžáƒ˜áƒ áƒ“áƒ';
$messages['sourceisreadonly'] = 'áƒáƒ¦áƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ მისáƒáƒ›áƒáƒ áƒ—ის მხáƒáƒšáƒáƒ“ წáƒáƒ™áƒ˜áƒ—ხვáƒáƒ შესáƒáƒ«áƒšáƒ”ბელი';
$messages['errorsavingcontact'] = 'სáƒáƒ™áƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ მისáƒáƒ›áƒáƒ áƒ—ის შენáƒáƒ®áƒ•áƒ შეუძლებელიáƒ';
$messages['movingmessage'] = 'შეტყáƒáƒ‘ინების გáƒáƒ“áƒáƒ¢áƒáƒœáƒ...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით გáƒáƒ˜áƒ’ზáƒáƒ•áƒœáƒ';
$messages['errorsendingreceipt'] = 'áƒáƒ  გáƒáƒ˜áƒ’ზáƒáƒ•áƒœáƒ';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ, ის თქვენთვის ერთáƒáƒ“ერთიáƒ';
$messages['forbiddencharacter'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის სáƒáƒ®áƒ”ლი შეიცáƒáƒ•áƒ¡ áƒáƒ™áƒ áƒ«áƒáƒšáƒ£áƒš სიმბáƒáƒšáƒáƒ”ბს';
$messages['selectimportfile'] = 'გთხáƒáƒ•áƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒáƒ— ფáƒáƒ˜áƒšáƒ˜ áƒáƒ¡áƒáƒ¢áƒ•áƒ˜áƒ áƒ—áƒáƒ“';
$messages['addresswriterror'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒš მისáƒáƒ›áƒáƒ áƒ—ებში ჩáƒáƒ¬áƒ”რრშეუძლებელიáƒ';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'გთხáƒáƒ•áƒ— მáƒáƒ˜áƒªáƒáƒ“áƒáƒ—, მიმდინáƒáƒ áƒ”áƒáƒ‘ს შემáƒáƒ¢áƒáƒœáƒ';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით დáƒáƒ¡áƒ áƒ£áƒšáƒ“რ$inserted კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბის შემáƒáƒ¢áƒáƒœáƒ, $skipped áƒáƒ áƒ¡áƒ”ბულის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბáƒ</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ შეზღუდულიáƒ';
$messages['nofromaddress'] = 'ელ–ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ მისáƒáƒ›áƒáƒ áƒ—ი გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბულიáƒ';
$messages['editorwarning'] = 'რედáƒáƒ¥áƒ¢áƒáƒ áƒ˜áƒ¡ გáƒáƒ“áƒáƒ áƒ—ვრტექსტურ რეჟიმში გáƒáƒ›áƒáƒ˜áƒ¬áƒ•áƒ”ვს áƒáƒ áƒ¡áƒ”ბული ტექსტის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ დáƒáƒ™áƒáƒ áƒ’ვáƒáƒ¡. გსურთ გáƒáƒ’რძელებáƒ?';
@@ -101,16 +137,35 @@ $messages['smtptoerror'] = 'SMTP Error ($code): ვერ დáƒáƒ”მáƒáƒ¢áƒ
$messages['smtprecipientserror'] = 'SMTP Error: მიმღებთრჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ˜áƒ¡ დáƒáƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბრვერ მáƒáƒ®áƒ”რხდáƒ';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'ელ-ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ მისáƒáƒ›áƒáƒ áƒ—ი áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
$messages['contactdeleted'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢(ებ)ი წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
$messages['contactrestored'] = 'კáƒáƒœáƒ áƒáƒ¥áƒ¢(ებ)ი წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით áƒáƒ¦áƒ“გáƒ,';
$messages['groupdeleted'] = 'ჯგუფი წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
$messages['groupcreated'] = 'ჯგუფი წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით შეიქმნáƒ.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
$messages['messagedeleted'] = 'შეტყáƒáƒ‘ინებები წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ.';
$messages['messagemoved'] = 'შეტყáƒáƒ‘ინებები გáƒáƒ“áƒáƒ¢áƒáƒœáƒ˜áƒšáƒ˜áƒ წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
$messages['messagemarked'] = 'შეტყáƒáƒ‘ინებები წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით მáƒáƒ˜áƒœáƒ˜áƒ¨áƒœáƒ.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
$messages['namecannotbeempty'] = 'სáƒáƒ®áƒ”ლი áƒáƒ  შეიძლებრიყáƒáƒ¡ ცáƒáƒ áƒ˜áƒ”ლი.';
$messages['nametoolong'] = 'სáƒáƒ®áƒ”ლი ძáƒáƒšáƒ˜áƒáƒœ მáƒáƒ™áƒšáƒ”áƒ.';
$messages['folderupdated'] = 'დáƒáƒ¡áƒ¢áƒ წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით გáƒáƒœáƒáƒ®áƒšáƒ“áƒ.';
$messages['foldercreated'] = 'დáƒáƒ¡áƒ¢áƒ წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით შეიქმნáƒ.';
$messages['invalidimageformat'] = 'გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/km_KH/labels.inc b/program/localization/km_KH/labels.inc
index 9a2799922..7b10b5f7f 100644
--- a/program/localization/km_KH/labels.inc
+++ b/program/localization/km_KH/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product សូមស្វាគមនáŸ';
$labels['username'] = 'ឈ្មោះអ្នកប្រើ';
$labels['password'] = 'ពាក្យសំងាážáŸ‹';
$labels['server'] = 'ម៉ាស៊ីនមáŸ';
$labels['login'] = 'áž–áž·áž“áž·ážáŸ’យចូល';
+
+// taskbar
$labels['logout'] = 'áž–áž·áž“áž·ážáŸ’យចáŸáž‰';
$labels['mail'] = 'អ៊ីមែល';
$labels['settings'] = 'កំនážáŸ‹áž€áž¶ážšáž”្រើប្រាស់';
$labels['addressbook'] = 'សៀវភៅអាសយដ្ឋាន';
+
+// mailbox names
$labels['inbox'] = 'ប្រអប់សំបុážáŸ’ážš';
$labels['drafts'] = 'សំបុážáŸ’រពង្រៀង';
$labels['sent'] = 'សំបុážáŸ’រដែលបានបញ្ជូន';
$labels['trash'] = 'ធុងសំរាម';
$labels['junk'] = 'សំបុážáŸ’រមិនល្អ';
+
+// message listing
$labels['subject'] = 'ចំណងជើង';
$labels['from'] = 'អ្នកផ្ញើ';
+$labels['sender'] = 'Sender';
$labels['to'] = 'អ្នកទទួល';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
@@ -41,17 +52,28 @@ $labels['size'] = 'ទំហំ';
$labels['priority'] = 'អទិភាព';
$labels['organization'] = 'អង្គភាព';
$labels['readstatus'] = 'ស្ážáž¶áž“ភាពនៃការអាន';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'ážážáž‘ាំងអស់';
$labels['messagesfromto'] = 'សំបុážáŸ’រពី $from ទៅដល់ $toក្នុងចំណោម $count សំបុážáŸ’ážš';
$labels['threadsfromto'] = 'បន្ážáž»áŸ†ážŸáŸ†áž”áž»ážáŸ’រពី $from ទៅដល់ $toក្នុងចំណោម $count សំបុážáŸ’ážš';
$labels['messagenrof'] = 'សំបុážáŸ’ážš $nr នៃ $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'ចំលង';
$labels['move'] = 'ផ្ទáŸážš';
$labels['moveto'] = 'ផ្ទáŸážšáž‘ៅ';
$labels['download'] = 'ទាញយក';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ឈ្មោះឯកសារ';
$labels['filesize'] = 'ទំហំឯកសារ';
+
$labels['addtoaddressbook'] = 'រក្សាទុកក្នុងសៀវភៅអាសយដ្ឋាន';
+
+// weekdays short
$labels['sun'] = 'អាទិážáŸ’áž™';
$labels['mon'] = 'áž…áŸáž“្ទ';
$labels['tue'] = 'អង្គារ';
@@ -59,6 +81,8 @@ $labels['wed'] = 'ពុធ';
$labels['thu'] = 'ព្រហស្បážáž·áŸ';
$labels['fri'] = 'សុក្រ';
$labels['sat'] = 'សៅរáŸ';
+
+// weekdays long
$labels['sunday'] = 'អាទិážáŸ’áž™';
$labels['monday'] = 'áž…áŸáž“្ទ';
$labels['tuesday'] = 'អង្គារ';
@@ -66,6 +90,8 @@ $labels['wednesday'] = 'ពុធ';
$labels['thursday'] = 'ព្រហស្បážáž·áŸ';
$labels['friday'] = 'សុក្រ';
$labels['saturday'] = 'សៅរáŸ';
+
+// months short
$labels['jan'] = 'មករា';
$labels['feb'] = 'កុម្ភះ';
$labels['mar'] = 'មិនា';
@@ -78,6 +104,8 @@ $labels['sep'] = 'កញ្ញា';
$labels['oct'] = 'ážáž»áž›áž¶';
$labels['nov'] = 'វិច្ឆិកា';
$labels['dec'] = 'ធ្នូ';
+
+// months long
$labels['longjan'] = 'មករា';
$labels['longfeb'] = 'កុម្ភះ';
$labels['longmar'] = 'មិនា';
@@ -90,14 +118,22 @@ $labels['longsep'] = 'កញ្ញា';
$labels['longoct'] = 'ážáž»áž›áž¶';
$labels['longnov'] = 'វិច្ឆិកា';
$labels['longdec'] = 'ធ្នូ';
+
$labels['today'] = 'ážáŸ’ងៃនáŸáŸ‡';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'áž–áž·áž“áž·ážáŸ’យសំបុážáŸ’ážšážáŸ’មី';
$labels['compose'] = 'សរសáŸážšážŸáŸ†áž”áž»ážáŸ’ážšážáŸ’មី';
$labels['writenewmessage'] = 'សរសáŸážšážŸáŸ†áž”áž»ážáŸ’ážšážáŸ’មី';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'ឆ្លើយážáž”ទៅអ្នកផ្ញើ';
$labels['replytoallmessage'] = 'ឆ្លើយážáž”ទៅ អ្នកទទួលទាំងអស់និង ក្រុម ឬ អ្នកផ្ញើ';
$labels['replyall'] = 'ឆ្លើយážáž”ទៅទាំងអស់គ្នា';
$labels['replylist'] = 'ឆ្លើយážáž”ទៅក្រុម';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'ផ្ញើសំបុážáŸ’របន្ážážš';
$labels['deletemessage'] = 'លុបសំបុážáŸ’រចោល';
$labels['movemessagetotrash'] = 'ផ្ទáŸážšážŸáŸ†áž”áž»ážáŸ’រទៅក្នុងធុងសំរាម';
@@ -108,11 +144,17 @@ $labels['nextmessage'] = 'បង្ហាញសំបុážáŸ’របន្á
$labels['lastmessage'] = 'បង្ហាញសំបុážáŸ’រចុងក្រោយ';
$labels['backtolist'] = 'ážáŸ’រលប់ទៅកាន់ក្រុមសំបុážáŸ’ážš';
$labels['viewsource'] = 'បង្ហាញ Source របស់សំបុážáŸ’ážš';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'កំណážáŸ‹ážŸáŸ†áž‚ាល់សំបុážáŸ’ážš';
$labels['markread'] = 'កំណážáŸ‹ážáž¶áž”ានអានរួច';
$labels['markunread'] = 'កំណážáŸ‹ážáž¶áž˜áž·áž“ទាន់បានអាន';
$labels['markflagged'] = 'កំណážáŸ‹ážŸáŸ†áž‚ាល់ដោយផ្កាយ';
$labels['markunflagged'] = 'លុបកំណážáŸ‹ážŸáŸ†áž‚ាល់ដោយផ្កាយ';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'ជ្រើសរើស';
$labels['all'] = 'ទាំងអស់';
$labels['none'] = 'មិនážáŸ†ážšáŸ€áž”';
@@ -120,7 +162,9 @@ $labels['currpage'] = 'ទំពáŸážšáž“áŸáŸ‡';
$labels['unread'] = 'មិនទាន់អាន';
$labels['flagged'] = 'មានកំណážáŸ‹ážŸáŸ†áž‚ាល់ដោយផ្កាយ';
$labels['unanswered'] = 'មិនទាន់ឆ្លើយážáž”';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'បានលុបរួច';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'បញ្ច្រស់';
$labels['filter'] = 'លក្ážážáŸážŽáŸ’ឌ';
$labels['list'] = 'ážáž¶ážšáž¶áž„';
@@ -129,6 +173,7 @@ $labels['expand-all'] = 'បង្ហាញសំបុážáŸ’រទាំងអá
$labels['expand-unread'] = 'បង្ហាញសំបុážáŸ’រមិនទាន់អាន';
$labels['collapse-all'] = 'បិទសំបុážáŸ’រទាំងអស់';
$labels['threaded'] = 'បានបែកចែកជាក្រុមរួច';
+
$labels['autoexpand_threads'] = 'បង្ហាញបណ្ážáž»áŸ†ážŸáŸ†áž”áž»ážáŸ’ážš';
$labels['do_expand'] = 'បណ្ážáž»áŸ†áž‘ាំងអស់';
$labels['expand_only_unread'] = 'បង្ហាញážáŸ‚សំបុážáŸ’រដែលមិនទាន់អាន';
@@ -144,19 +189,29 @@ $labels['listcolumns'] = 'ážáž¶ážšáž¶áž„ជួរឈ';
$labels['listsorting'] = 'ážáŸ†ážšáŸ€áž”ជួរឈ';
$labels['listorder'] = 'លំដាប់នៃការážáŸ†ážšáŸ€áž”';
$labels['listmode'] = 'បង្ហាញជាážáž¶ážšáž¶áž„';
+
$labels['folderactions'] = 'មុážáž„ារážáž';
$labels['compact'] = 'បង្រួម';
$labels['empty'] = 'áž‘áž‘áŸážš';
+
$labels['quota'] = 'ទំហំសំបុážáŸ’រទាំងអស់ដែលមាន';
$labels['unknown'] = 'មិនស្គាល់';
$labels['unlimited'] = 'គ្មានកំនážáŸ‹';
+
$labels['quicksearch'] = 'ស្វែងរក';
$labels['resetsearch'] = 'កំណážáŸ‹áž›áž€áŸ’ážážáŸážŽáŸ’ឌស្វែងរកជាážáŸ’មី';
$labels['searchmod'] = 'កែសំរួលលក្ážážáŸážŽáŸ’ឌស្វែងរក';
$labels['msgtext'] = 'សំបុážáŸ’រទាំងមូល';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'បើកក្នុងវីនដូវážáŸ’មី';
$labels['emlsave'] = 'រក្សាទុកទិន្ននáŸáž™áž‡áž¶áž¯áž€ážŸáž¶ážšáž”្រភáŸáž‘(.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'កែហើយរក្សាទុកដូចជាសំបុážáŸ’ážšážáŸ’មី';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'ផ្ញើសំបុážáŸ’ážšáž“áŸáŸ‡';
$labels['savemessage'] = 'រក្សាទុកសំបុážáŸ’រពង្រៀង';
$labels['addattachment'] = 'ឯកសារភ្ជាប់';
@@ -164,33 +219,54 @@ $labels['charset'] = 'ប្រភáŸáž‘អក្សរ';
$labels['editortype'] = 'ប្រភáŸáž‘ Editor';
$labels['returnreceipt'] = 'អážáŸ’ážáž”ទបញ្ជាក់ពីការážáŸ’រឡប់';
$labels['dsn'] = 'ប្រាប់អំពីស្ážáž¶áž“ភាពផ្ញើ';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
$labels['editidents'] = 'ផ្លាស់ប្ážáž¼ážšáž¢ážáŸ’ážážŸáž‰áŸ’ញាណ';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'áž–áž·áž“áž·ážáŸ’យអក្ážážšáž¶ážœáž·ážšáž»áž‘្ធ';
$labels['resumeediting'] = 'បន្ážážšáž€áž¶ážšáž€áŸ‚ážáŸ†ážšáž¼ážœ';
$labels['revertto'] = 'ážáŸ’រលប់ទៅ';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'ឯកសារភ្ជាប់';
$labels['upload'] = 'ភ្ជាប់ឯកសារ';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'បិទ';
$labels['messageoptions'] = 'កំណážáŸ‹áž‡áŸ†ážšáž¾ážŸážšáž”ស់សំបុážáŸ’ážš';
+
$labels['low'] = 'ទាប';
$labels['lowest'] = 'ទាបបំផុáž';
$labels['normal'] = 'ធម្មážáž¶';
$labels['high'] = 'ážáŸ’ពស់';
$labels['highest'] = 'ážáŸ’ពស់បំផុáž';
+
$labels['nosubject'] = '(គ្មានចំណងជើង)';
$labels['showimages'] = 'បង្ហាញរូបភាព';
$labels['alwaysshow'] = 'បង្ហាញជានិច្ចរាល់រូបភាពបញ្ជូនពី$sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'អážáŸ’ážáž”áž‘ HTML';
$labels['plaintoggle'] = 'អážáŸ’ážáž”ទធម្មážáž¶';
$labels['savesentmessagein'] = 'រក្សាសំបុážáŸ’រដែលបានផ្ញើក្នុង';
$labels['dontsave'] = 'មិនរក្សាទុក';
$labels['maxuploadsize'] = 'ទំហំឯកសារធំបំផុážážŠáŸ‚លអាចភ្ជាប់បានគឺ$size';
+
$labels['addcc'] = 'បន្ážáŸ‚ម Cc';
$labels['addbcc'] = 'បន្ážáŸ‚ម Bcc';
$labels['addreplyto'] = 'បន្ážáŸ‚ម Reply-To';
$labels['addfollowupto'] = 'បន្ážáŸ‚ម Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
$labels['receiptread'] = 'អážáŸ’ážáž”ទផ្ញើážáŸ’រលប់ (បានអាន)';
$labels['yourmessage'] = 'áž“áŸáŸ‡áž‚ឺជាអážáŸ’ážáž”ទផ្ញើážáŸ’រលប់សំរាប់សំបុážáŸ’ររបស់លោកអ្នក។';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
$labels['name'] = 'ឈ្មោះសំរាប់បង្ហាញ';
$labels['firstname'] = 'នាមážáŸ’រកូល';
$labels['surname'] = 'នាមážáŸ’លួន';
@@ -220,7 +296,12 @@ $labels['female'] = 'ស្រី';
$labels['manager'] = 'នាយក';
$labels['assistant'] = 'ជំនួយការ';
$labels['spouse'] = 'គ្រួសារ';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
$labels['other'] = 'ផ្សáŸáž„ពីនáŸáŸ‡';
+
$labels['typehome'] = 'áž‚áŸáž ážŠáŸ’ឋាន';
$labels['typework'] = 'កន្លែងធ្វើការ';
$labels['typeother'] = 'ផ្សáŸáž„ពីនáŸáŸ‡';
@@ -232,12 +313,17 @@ $labels['typecar'] = 'ážšážáž™áž“្áž';
$labels['typepager'] = 'ឧបករណáŸáž•áŸ’ážáž›áŸ‹ážŸáž¶ážš';
$labels['typevideo'] = 'វីដáŸáž¢áž¼ážš';
$labels['typeassistant'] = 'ជំនួយការ';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
$labels['addfield'] = 'បន្ážáŸ‚ម';
$labels['addcontact'] = 'បន្ážáŸ‚មអាសយដ្ឋានទាក់ទង';
$labels['editcontact'] = 'កែប្រែអាសយដ្ឋានទាក់ទង';
$labels['contacts'] = 'អាសយដ្ឋានទាក់ទងទាំងអស់';
$labels['contactproperties'] = 'áž–áŸážáŸŒáž˜áž¶áž“អំពីទំនាក់ទំនង';
$labels['personalinfo'] = 'áž–áŸážáŸŒáž˜áž¶áž“ផ្ទាល់ážáŸ’លួន';
+
$labels['edit'] = 'កែážáŸ†ážšáž¼ážœ';
$labels['cancel'] = 'លះបង់';
$labels['save'] = 'រក្សាទុក';
@@ -245,38 +331,63 @@ $labels['delete'] = 'លុបចោល';
$labels['rename'] = 'ប្ážáž¼ážšážˆáŸ’មោះ';
$labels['addphoto'] = 'បន្ážáŸ‚មរូបážáž';
$labels['replacephoto'] = 'លុបរូបážáž';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'បង្កើážáž¢áž¶ážŸáž™ážŠáŸ’ឋានទាក់ទងážáŸ’មី';
$labels['deletecontact'] = 'លុបអាសយដ្ឋានទាក់ទងដែលបានជ្រើសរើស';
$labels['composeto'] = 'ផ្ញើសំបុážáŸ’រទៅ';
$labels['contactsfromto'] = 'អាសយដ្ឋានទាក់ទង $from ដល់ $to នៃ$count';
$labels['print'] = 'បោះពុម្ភ';
$labels['export'] = 'ទាញនិងរក្សាទុក';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'ទាញនិងរក្សាទុកអាសយដ្ឋានជាប្រភáŸáž‘vCard';
$labels['newcontactgroup'] = 'បង្កើážáž€áŸ’រុមអាសយដ្ឋានážáŸ’មី';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'ទំពáŸážšáž˜áž»áž“';
$labels['firstpage'] = 'ទំពáŸážšážŠáŸ†áž”ូង';
$labels['nextpage'] = 'ទំពáŸážšáž”ន្ទាប់';
$labels['lastpage'] = 'ទំពáŸážšáž…ុងក្រោយ';
+
$labels['group'] = 'ក្រុម';
$labels['groups'] = 'ក្រុម';
$labels['personaladrbook'] = 'អាសយដ្ឋានផ្ទាល់ážáŸ’លួន';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'បញ្ចូល';
$labels['importcontacts'] = 'បញ្ចូលអាសយដ្ឋាន';
$labels['importfromfile'] = 'បញ្ចូលពី ឯកសារ';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'ផ្លាស់ប្ážáž¼ážšáž¢áž¶ážŸáž™ážŠáŸ’ឋានទាំងអស់';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'ចប់រួចរាល់';
+
+// settings
$labels['settingsfor'] = 'កំណážáŸ‹ážŸáŸ†ážšáž¶áž”់';
+$labels['about'] = 'About';
$labels['preferences'] = 'កំណážáŸ‹ážáž¶áž˜áž€áž¶ážšáž…ូលចិážáŸ’áž';
$labels['userpreferences'] = 'កំណážáŸ‹ážáž¶áž˜áž€áž¶ážšáž…ូលចិážáŸ’ážážšáž”ស់អ្នកប្រើ';
$labels['editpreferences'] = 'ផ្លាស់ប្ážáž¼ážšáž€áž¶ážšáž…ូលចិážáŸ’ážážšáž”ស់អ្នកប្រើ';
+
$labels['identities'] = 'អážáŸ’ážážŸáž‰áŸ’ញាណ';
$labels['manageidentities'] = 'គ្រប់គ្រងអážáŸ’ážážŸáž‰áŸ’ញាណ';
$labels['newidentity'] = 'អážáŸ’ážážŸáž‰áŸ’ញាណážáŸ’មី';
+
$labels['newitem'] = 'ážœážáŸ’ážáž»ážáŸ’មី';
$labels['edititem'] = 'កែប្រែវážáŸ’ážáž»';
+
$labels['preferhtml'] = 'បង្ហាញជា HTML';
$labels['defaultcharset'] = 'áž›áŸážáž€áž¼ážáž¢áž€áŸ’សរមានស្រាប់';
$labels['htmlmessage'] = 'សំបុážáŸ’រប្រភáŸáž‘ HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'កាលបរិច្ឆáŸážáž„ាយស្រួលមើល';
$labels['setdefault'] = 'កំណážáŸ‹áž‘ុក';
$labels['autodetect'] = 'ស្វáŸáž™áž”្រវážáŸ’ážáž·';
@@ -285,9 +396,13 @@ $labels['timezone'] = 'ម៉ោង';
$labels['pagesize'] = 'ចំនួនសំបុážáŸ’រក្នុងមួយទំពáŸážš';
$labels['signature'] = 'áž ážáŸ’ážáž›áŸážáž¶';
$labels['dstactive'] = 'ម៉ោងវស្សានរដូវ';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'សរសáŸážšážŸáŸ†áž”áž»ážáŸ’ážšážáž¶áž˜áž”ែប HTML';
$labels['htmlonreply'] = 'ឆ្លើយážáž”សំបុážáŸ’ážšážáž¶áž˜áž”ែប HTML';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'áž ážáŸ’ážáž›áŸážáž¶ážáž¶áž˜áž”ែប HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'បង្ហាញប្រអប់សំរាប់មើលសំបុážáŸ’ážš';
$labels['skin'] = 'ការរចនាទំពáŸážš';
$labels['logoutclear'] = 'សំអាážáž’ុងសំរាមពáŸáž›áž–áž·áž“áž·ážáŸ’យចáŸáž‰';
@@ -305,12 +420,14 @@ $labels['readwhendeleted'] = 'កំណážáŸ‹ážŸáŸ†áž”áž»ážáŸ’ážšážáž¶áž”ាáž
$labels['flagfordeletion'] = 'កំណážáŸ‹ážŸáž‰áŸ’ញាផ្កាយអោយសំបុážáŸ’ážšážáž¶áž”ានលុបដោយមិនចាំបាច់លុបជាក់ស្ážáŸ‚áž„';
$labels['skipdeleted'] = 'មិនបង្ហាញសំបុážáŸ’រដែលបានលុប';
$labels['deletealways'] = 'លុបសំបុážáŸ’រចោលប្រសិនជាមិនអាចផ្ទáŸážŸáŸ†áž”áž»ážáŸ’រនោះទៅធុងសំរាមបាន';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'បង្ហាញរូបភាពដែលគáŸáž•áŸ’ញើមក';
$labels['fromknownsenders'] = 'ពីអ្នកផ្ញើដែលស្គាល់';
$labels['always'] = 'គ្រប់ពáŸáž›';
$labels['showinlineimages'] = 'បង្ហាញរូបភាពនៅក្រោមអážáŸ’ážáž”ទសំបុážáŸ’ážš';
$labels['autosavedraft'] = 'រក្សាទុកសំបុážáŸ’រពង្រៀងដោយស្វáŸáž™áž”្រវážáŸ’ážáž·';
$labels['everynminutes'] = 'រៀងរាល់ $n នាទី';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'មិនដែល';
$labels['immediately'] = 'ភ្លាមៗ';
$labels['messagesdisplaying'] = 'កំពុងបង្ហាញសំបុážáŸ’ážš';
@@ -324,12 +441,15 @@ $labels['advancedoptions'] = 'ការកំណážáŸ‹áž–ឹស្ážáž¶ážš';
$labels['focusonnewmessage'] = 'ផ្ážáŸ„ážáž›áž¾ážœáž¸áž“ដូវដែលកំពុងសរសáŸážšážŸáŸ†áž”áž»ážáŸ’ážšážáŸ’មី';
$labels['checkallfolders'] = 'áž–áž·áž“áž·ážáŸ’យសំបុážáŸ’ážšážáŸ’មីនៅគ្រប់ážážáž‘ាំងអស់';
$labels['displaynext'] = 'បន្ទាប់ពីសំបុážáŸ’ážšážáŸ’រូវបានលុប​ឬផ្ទáŸážšáž”ង្ហាញសំបុážáŸ’របន្ទាប់';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'ជំរើសដែលជាគោល';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'ផ្នែក';
$labels['maintenance'] = 'ការážáŸ‚រក្សា';
$labels['newmessage'] = 'សំបុážáŸ’ážšážáŸ’មី';
$labels['signatureoptions'] = 'កំណážáŸ‹áž ážáŸ’ážáž›áŸážáž¶';
$labels['whenreplying'] = 'នៅពáŸáž›áž€áŸ†áž–ុងឆ្លើយážáž”';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'ចាប់ផ្ážáž¾áž˜â€‹ážŸážšážŸáŸážšâ€‹áž–ី​លើ​សំបុážáŸ’រ​ដើម';
$labels['replybottomposting'] = 'ចាប់ផ្ážáž¾áž˜ážŸážšážŸáŸážšáž–ីក្រោមសំបុážáŸ’រដើម';
$labels['replyremovesignature'] = 'នៅ​ពáŸáž›â€‹áž†áŸ’លើយ​ážáž”​លុប​ហážáŸ’ážáž›áŸážáž¶â€‹áž…áŸáž‰â€‹áž–ីសំបុážáŸ’ážš';
@@ -342,6 +462,20 @@ $labels['afternseconds'] = 'ក្រោយពី $n វិនាទី';
$labels['reqmdn'] = 'ក្រោយពី $n វិនាទី';
$labels['reqdsn'] = 'ក្រោយពី $n វិនាទី';
$labels['replysamefolder'] = 'ក្រោយពី $n វិនាទី';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'ážáž';
$labels['folders'] = 'ážážáž‘ាំងអស់';
$labels['foldername'] = 'ឈ្មោះážáž';
@@ -358,13 +492,30 @@ $labels['location'] = 'ទីកន្លែង';
$labels['info'] = 'áž–áŸážáŸŒáž˜áž¶áž“';
$labels['getfoldersize'] = 'ទំហំážáž';
$labels['changesubscription'] = 'ផ្លាស់ប្ážáž¼ážšáž€áž¶ážšáž‡áž¶ážœ';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'ážáŸ†ážšáŸ€áž”ážáž¶áž˜';
$labels['sortasc'] = 'ážáŸ†ážšáŸ€áž”ážáž¶áž˜áž›áŸ†ážŠáž¶áž”់ចុះ';
$labels['sortdesc'] = 'ážáŸ†ážšáŸ€áž”ážáž¶áž˜áž›áŸ†ážŠáž¶áž”់ឡើង';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'យូនីកូដ';
$labels['english'] = 'ភាសាអង់គ្លáŸážŸ';
$labels['westerneuropean'] = 'អឺរ៉ុបážáž¶áž„លិច';
@@ -383,4 +534,5 @@ $labels['vietnamese'] = 'ភាសាវៀážážŽáž¶áž˜';
$labels['japanese'] = 'ភាសាជប៉ុន';
$labels['korean'] = 'ភាសាកូរ៉áŸ';
$labels['chinese'] = 'ភាសាចិន';
+
?>
diff --git a/program/localization/km_KH/messages.inc b/program/localization/km_KH/messages.inc
index a2c4bab20..1f629fa6c 100644
--- a/program/localization/km_KH/messages.inc
+++ b/program/localization/km_KH/messages.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'ការពិនិážáŸ’យចូលមិនបានសំរáŸáž…ព្រោះមានបញ្ហាកើážáž¡áž¾áž„';
$messages['cookiesdisabled'] = 'កម្មវិធីមើលគáŸáž áž‘ំពáŸážšáž“áŸáŸ‡áž˜áž·áž“ទទួលយកCookies';
$messages['sessionerror'] = 'Session មិនážáŸ’រឹមážáŸ’រូវ ឬហួសកំណážáŸ‹';
$messages['storageerror'] = 'មិនអាចភ្ជាប់ទៅកាន់ម៉ាស៊ីនIMAP';
$messages['servererror'] = 'មានបញ្ហានៅម៉ាស៊ីនមáŸ';
$messages['servererrormsg'] = 'បញ្ហា: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'មិនអាចប្រážáž·áž”ážáŸ’ážáž·áž”ានពីព្រោះážážáž“áŸáŸ‡ážáŸ’រូវបានគáŸáž€áŸ†ážŽážáŸ‹ážŸáŸ†ážšáž¶áž”់ážáŸ‚មើល';
$messages['errornoperm'] = 'មិនអាចប្រážáž·áž”ážáŸ’ážáž·áž”ានពីព្រោះមិនមានសិទ្ទគ្រប់គ្រាន់';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'មិនអាចរក្សាទុកទិន្ននáŸáž™áž”ានពីព្រោះមានបញ្ហានៅពáŸáž›áž”ញ្ជូនទិន្ននáŸáž™';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'ពុំមានសំបុážáŸ’រក្នុងប្រអប់សំបុážáŸ’ážšáž“áŸáŸ‡áž‘áŸ';
$messages['loggedout'] = 'អ្នកបានពិនិážáŸ’យចáŸáž‰ážŠáŸ„យជោគជáŸáž™áŸ”';
$messages['mailboxempty'] = 'ប្រអប់សំបុážáŸ’ážšáž‘áž‘áŸ';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'កំពុងដំណើរការ...';
$messages['uploading'] = 'កំពុងបញ្ជូនឯកសារ...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'កំពុងបើកឯកសារ...';
$messages['checkingmail'] = 'កំពុងស្វែងរកមើលសំបុážáŸ’ážšážáŸ’មីáŸ...';
$messages['sendingmessage'] = 'កំពុងផ្ញើសំបុážáŸ’ážš...';
@@ -38,20 +48,27 @@ $messages['messagesaved'] = 'សំបុážáŸ’ážšážáŸ’រូវបានរក
$messages['successfullysaved'] = 'រក្សាទុកដោយជោគជáŸáž™';
$messages['addedsuccessfully'] = 'អាសយដ្ឋានážáŸ’រូវបានរក្សាទុកដោយជោគជáŸáž™';
$messages['contactexists'] = 'áž–áŸážáŸŒáž˜áž¶áž“ទាក់ទងដែលមានអ៊ីមែលនáŸáŸ‡áž˜áž¶áž“ក្នុងសៀវភៅអាសយដ្ឋានរួចហើយ';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'រូបភាពដែលមានក្នុងសំបុážáŸ’ážšáž“áŸáŸ‡ážáŸ’រូវបានបិទដើម្បីរក្សាសុវážáŸ’ážáž—ាព';
$messages['encryptedmessage'] = 'លោកអ្នកមិនអាចមើលសំបុážáŸ’ážšáž“áŸáŸ‡áž”ានទáŸáž–ីព្រោះសំបុážáŸ’ážšáž“áŸáŸ‡áž‡áž¶ážŸáŸ†áž”áž»ážáŸ’រសំងាážáŸ‹';
$messages['nocontactsfound'] = 'ពុំមានអាសយដ្ឋានទាក់ទងទáŸ';
$messages['contactnotfound'] = 'អាសយដ្ឋានទាក់ទងដែលលោកអ្នកចង់រកពុំមានឡើយ';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'មិនអាចផ្ញើសំបុážáŸ’របាន';
$messages['senttooquickly'] = 'សូមរងចាំ $sec វិនាទីមុននឹងផ្ញើសំបុážáŸ’ážšáž“áŸáŸ‡';
+$messages['errorsavingsent'] = 'មានបញ្ហាកើážáž¡áž¾áž„នៅពáŸáž›áž€áŸ†áž–ុងរក្សាទុកសំបុážáŸ’រដែលបានផ្ញើរួច';
+$messages['errorsaving'] = 'មានបញ្ហាកើážáž¡áž¾áž„នៅពáŸáž›áž€áŸ†áž–ុងរក្សាសំបុážáŸ’រទុក';
$messages['errormoving'] = 'មិនអាចផ្ទáŸážšážŸáŸ†áž”áž»ážáŸ’របាន';
$messages['errorcopying'] = 'មិនអាចចំលងសំបុážáŸ’របាន';
$messages['errordeleting'] = 'មិនអាចលុបសំបុážáŸ’រចោលបាន';
$messages['errormarking'] = 'មិនអាចកំណážáŸ‹áž…ំណាំលើសំបុážáŸ’របាន';
$messages['deletecontactconfirm'] = 'ážáž¾áž›áŸ„កអ្នកពិážáž‡áž¶áž…ង់លុបពáŸážáŸŒáž˜áž¶áž“ទំនាក់ទំនងនáŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'ážáž¾áž›áŸ„កអ្នកពិážáž‡áž¶áž…ង់លុបសំបុážáŸ’ážšáž“áŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?';
$messages['deletefolderconfirm'] = 'ážáž¾áž›áŸ„កអ្នកពិážáž‡áž¶áž…ង់លុបážážáž“áŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?';
$messages['purgefolderconfirm'] = 'ážáž¾áž›áŸ„កអ្នកពិážáž‡áž¶áž…ង់លុបសំបុážáŸ’រទាំងអស់នៅក្នុងážážáž“áŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'កំពុងលុបážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...';
$messages['foldermoving'] = 'កំពុងផ្ទáŸážšážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...';
$messages['foldersubscribing'] = 'កំពុងកំណážáŸ‹áž”្រើážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...';
@@ -67,7 +84,9 @@ $messages['nobodywarning'] = 'ážáž¾áž›áŸ„កអ្នកចង់ផ្ញើáž
$messages['notsentwarning'] = 'សំបុážáŸ’ážšáž“áŸáŸ‡áž˜áž·áž“ទាន់បានផ្ញើទáŸáŸ” ážáž¾áž›áŸ„កអ្នកចង់លុបចោលទáŸ?';
$messages['noldapserver'] = 'សូមកំណážáŸ‹áž˜áŸ‰áž¶ážŸáŸŠáž¸áž“ LDAPដើម្បីស្វែងរក';
$messages['nosearchname'] = 'សូមបំពáŸáž‰ážˆáŸ’មោះទំនាក់ទំនង ឬអាសយដ្ឋានអ៊ីមែល';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'រកឃើញសំបុážáŸ’រចំនួន $nr';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'រកមិនឃើញអ្វីទាំងអស់';
$messages['searching'] = 'កំពុងស្វែងរក...';
$messages['checking'] = 'កំពុងពិនិážáŸ’យរក...';
@@ -82,24 +101,35 @@ $messages['converting'] = 'កំពុងលុបការរចនាចោáž
$messages['messageopenerror'] = 'មិនអាចទាញយកសំបុážáŸ’រពីម៉ាស៊ីនមáŸáž”ានទáŸ';
$messages['fileuploaderror'] = 'មិនអាចបញ្ជូលភ្ជាប់ឯកសារ';
$messages['filesizeerror'] = 'ទំហំឯកសារážáŸ’រូវបញ្ជូនលើសចំណុះទំហំធំបំផុážáž‚ឺ $size';
+$messages['copysuccess'] = 'បានចំលងអាសយដ្ឋានចំនួន $nrដោយជោគជáŸáž™';
+$messages['copyerror'] = 'មិនអាចចំលងអាសយដ្ឋានណាមួយឡើយ';
$messages['sourceisreadonly'] = 'លោកអ្នកមានសិទ្ធážáŸ’រឹមážáŸ‚មើលប្រភពនៃអាសយដ្ឋាននáŸáŸ‡';
$messages['errorsavingcontact'] = 'មិនអាចរក្សាអាសយដ្ឋានបានទáŸ';
$messages['movingmessage'] = 'កំពុកផ្ážáŸážšážŸáŸ†áž”áž»ážáŸ’ážš...';
$messages['copyingmessage'] = 'កំពុងចំលងសំបុážáŸ’ážš...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
$messages['deletingmessage'] = 'កំពុងលុបសំបុážáŸ’ážš...';
$messages['markingmessage'] = 'កំពុងកំណážáŸ‹ážŸáŸ†áž‚ាល់សំបុážáŸ’ážš...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'បានបញ្ជូនអážáŸ’ážáž”ទបញ្ជាក់ážáž¶áž”ានអានបានសំរáŸáž…';
$messages['errorsendingreceipt'] = 'មិនអាចបញ្ជូនអážáŸ’ážáž”ទបញ្ជាក់ážáž¶áž”ានអាន áž‘áŸ';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'លោកអ្នកមិនអាចលុបអážáŸ’ážážŸáž‰áŸ’ញាណនáŸáŸ‡áž‘áŸáž–្រោះវានៅសល់ចុងក្រោយគáŸ';
$messages['forbiddencharacter'] = 'ឈ្មោះážážáž“áŸáŸ‡áž˜áž¶áž“អក្សរដែលážáŸ’រូវហាមឃាážáŸ‹';
$messages['selectimportfile'] = 'សូមជ្រើសរើសឯកសារដើម្បីបញ្ជូនភ្ជាប់';
$messages['addresswriterror'] = 'សៀវភៅអាសយដ្ឋាននោះមិនអាចសរសáŸážšáž…ូលបានទáŸ';
$messages['contactaddedtogroup'] = 'បានដាក់ពážáŸŒáž˜áž¶áž“ទំនាក់ទំនងចូលក្នុងក្រុមនáŸáŸ‡ážŠáŸ„យជោគជáŸáž™';
$messages['contactremovedfromgroup'] = 'បានលុបពážáŸŒáž˜áž¶áž“ទំនាក់ទំនងចáŸáž‰áž–ីក្រុមនáŸáŸ‡ážŠáŸ„យជោគជáŸáž™';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'សូមមáŸážáŸ’ážáž¶ážšáž„់ចាំកំពុងទាញទិន្ននáŸáž™áž…ូល ...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>áž–áŸážáŸŒáž˜áž¶áž“ទំនាក់ទំនង $insertedបានបញ្ចូលដោយជោគជáŸáž™,ហើយបានរំលងចោលពážáŸŒáž˜áž¶áž“ដែលមានស្រាប់$skipped </b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'ប្រážáž·áŸ’ážáž”ážáŸ’ážáž·áž€áž¶ážšážáŸ’រូវបានគáŸáž áž¶áž˜ážƒáž¶ážáŸ‹!';
$messages['nofromaddress'] = 'ážáŸ’វះអាសយដ្ឋានអ៊ីមែលក្នុងអážáŸ’ážážŸáž‰áŸ’ណាណមួយនáŸáŸ‡';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
$messages['smtpconnerror'] = 'SMTP Error ($code):មិនអាចភ្ជាប់ទៅម៉ាស៊ីនមáŸ';
$messages['smtpautherror'] = 'SMTP Error ($code):áž–áŸážáŸŒáž˜áž¶áž“គនីយមិនážáŸ’រឹមážáŸ’រូវ';
$messages['smtpfromerror'] = 'SMTP Error ($code):មិនអាចកំនážáŸ‹áž¢áŸ’នកផ្ញើ "$from" ($msg)';
@@ -109,19 +139,33 @@ $messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'អាសយដ្ឋានអ៊ីមែលមិនážáŸ’រឹមážáŸ’រូវទáŸ:$email';
$messages['toomanyrecipients'] = 'ចំនួនអ្នកទទួលច្រើនលើសកំនážáŸ‹!សូមមáŸážáŸ’ážáž¶áž›áž»áž”ចោលរហូážážŠáž›áŸ‹ $max។';
$messages['maxgroupmembersreached'] = 'ចំនួនក្រុមលើសកំនážáŸ‹áž áž¾áž™áž…ំនួនច្រើនបំផុážáž‚ឺ $max';
+$messages['internalerror'] = 'មានបញ្ហាážáž¶áž„ម៉ាស៊ីនម០។សូមព្យាយាមម្ážáž„ទៀáž!';
$messages['contactdelerror'] = 'មិនអាចលុបអាសយដ្ឋានទំនាក់ទំនង';
$messages['contactdeleted'] = 'អាសយដ្ឋានទំនាក់ទំនងážáŸ’រូវបានលុបដោយជោគជáŸáž™';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
$messages['groupdeleted'] = 'លុបក្រុមបានដោយជោគជáŸáž™';
$messages['grouprenamed'] = 'ប្ážáž¼ážšážˆáŸ’មោះក្រុមបានដោយជោគជáŸáž™';
$messages['groupcreated'] = 'បង្កើážáž€áŸ’រុមបានដោយជោគជáŸáž™';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
$messages['messagedeleted'] = 'លុបសំបុážáŸ’របានដោយជោគជáŸáž™';
$messages['messagemoved'] = 'ផ្ទáŸážšážŸáŸ†áž”áž»ážáŸ’របានដោយជោគជáŸáž™';
$messages['messagecopied'] = 'ចំលងសំបុážáŸ’របានដោយជោគជáŸáž™';
$messages['messagemarked'] = 'កំណážáŸ‹ážŸáŸ†áž‚ាល់សំបុážáŸ’របានដោយជោគជáŸáž™';
$messages['autocompletechars'] = 'សូមសរសáŸážšáž¢áž€áŸ’សរយ៉ាងážáž·áž… $minដើម្បីបង្ហាយដោយស្វáŸáž™áž”្រវážáŸ’ážáž·';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
$messages['namecannotbeempty'] = 'សូមសរសáŸážšážˆáŸ’មោះ';
$messages['nametoolong'] = 'ឈ្មោះវែងពáŸáž€';
$messages['folderupdated'] = 'ផ្លាស់ប្ážáž¼ážšážážáž”ានដោយជោគជáŸáž™';
$messages['foldercreated'] = 'បង្កើážážážáž”ានដោយជោគជáŸáž™';
$messages['invalidimageformat'] = 'ប្រភáŸáž‘រូបភាពមិនážáŸ’រឹមážáŸ’រូវ';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/ko_KR/labels.inc b/program/localization/ko_KR/labels.inc
index bccd42163..950928767 100644
--- a/program/localization/ko_KR/labels.inc
+++ b/program/localization/ko_KR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$productì— ì˜¤ì‹  ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤';
$labels['username'] = '사용ìžëª…';
$labels['password'] = '암호';
$labels['server'] = '서버';
$labels['login'] = '로그ì¸';
+
+// taskbar
$labels['logout'] = '로그아웃';
$labels['mail'] = 'ë©”ì¼';
$labels['settings'] = '설정';
$labels['addressbook'] = '주소ë¡';
+
+// mailbox names
$labels['inbox'] = 'ë°›ì€ íŽ¸ì§€í•¨';
$labels['drafts'] = '임시 보관함';
$labels['sent'] = '보낸 편지함';
$labels['trash'] = '휴지통';
$labels['junk'] = '스팸 편지함';
-$labels['show_real_foldernames'] = '특별 í´ë”ì—ì„œ 실제 ì´ë¦„ ë³´ì´ê¸°';
+
+// message listing
$labels['subject'] = '제목';
$labels['from'] = '보내는 사람';
$labels['sender'] = '발신ì¸';
@@ -44,11 +53,13 @@ $labels['priority'] = '우선순위';
$labels['organization'] = '기관';
$labels['readstatus'] = 'ì½ìŒ ìƒíƒœ';
$labels['listoptions'] = 'ëª©ë¡ ì˜µì…˜...';
+
$labels['mailboxlist'] = 'í´ë”';
$labels['messagesfromto'] = 'ì´ $countê°œ 중 $from 번째부터 $to ë²ˆì§¸ê¹Œì§€ì˜ ë©”ì‹œì§€';
$labels['threadsfromto'] = 'ì´ $countê°œ 중 $from 번째부터 $to ë²ˆì§¸ê¹Œì§€ì˜ ìŠ¤ë ˆë“œ';
$labels['messagenrof'] = 'ì´ $countê°œ 중 $nr 번째 메시지';
$labels['fromtoshort'] = 'ì´ $countê°œ 중 $from 번째 - $to 번째';
+
$labels['copy'] = '복사';
$labels['move'] = 'ì´ë™';
$labels['moveto'] = 'ì´ë™í•  위치...';
@@ -56,9 +67,13 @@ $labels['download'] = '다운로드';
$labels['open'] = '열기';
$labels['showattachment'] = '보기';
$labels['showanyway'] = 'ê·¸ëž˜ë„ í•­ìƒ ë³´ê¸°';
+
$labels['filename'] = '파ì¼ëª…';
$labels['filesize'] = 'íŒŒì¼ í¬ê¸°';
+
$labels['addtoaddressbook'] = '주소ë¡ì— 추가';
+
+// weekdays short
$labels['sun'] = 'ì¼';
$labels['mon'] = 'ì›”';
$labels['tue'] = 'í™”';
@@ -66,6 +81,8 @@ $labels['wed'] = '수';
$labels['thu'] = '목';
$labels['fri'] = '금';
$labels['sat'] = '토';
+
+// weekdays long
$labels['sunday'] = 'ì¼ìš”ì¼';
$labels['monday'] = '월요ì¼';
$labels['tuesday'] = '화요ì¼';
@@ -73,6 +90,8 @@ $labels['wednesday'] = '수요ì¼';
$labels['thursday'] = '목요ì¼';
$labels['friday'] = '금요ì¼';
$labels['saturday'] = '토요ì¼';
+
+// months short
$labels['jan'] = '1ì›”';
$labels['feb'] = '2ì›”';
$labels['mar'] = '3ì›”';
@@ -85,6 +104,8 @@ $labels['sep'] = '9ì›”';
$labels['oct'] = '10ì›”';
$labels['nov'] = '11ì›”';
$labels['dec'] = '12ì›”';
+
+// months long
$labels['longjan'] = '1ì›”';
$labels['longfeb'] = '2ì›”';
$labels['longmar'] = '3ì›”';
@@ -97,7 +118,10 @@ $labels['longsep'] = '9ì›”';
$labels['longoct'] = '10ì›”';
$labels['longnov'] = '11ì›”';
$labels['longdec'] = '12ì›”';
+
$labels['today'] = '오늘';
+
+// toolbar buttons
$labels['refresh'] = '새로 고침';
$labels['checkmail'] = '새 메시지 확ì¸';
$labels['compose'] = '메시지 작성';
@@ -130,6 +154,7 @@ $labels['moreactions'] = '추가 ë™ìž‘...';
$labels['more'] = 'ë”보기';
$labels['back'] = '뒤로';
$labels['options'] = '옵션';
+
$labels['select'] = 'ì„ íƒ';
$labels['all'] = '모ë‘';
$labels['none'] = 'ì—†ìŒ';
@@ -137,7 +162,7 @@ $labels['currpage'] = '현재 페ì´ì§€';
$labels['unread'] = 'ì½ì§€ ì•ŠìŒ';
$labels['flagged'] = '깃발로 표시ë¨';
$labels['unanswered'] = '답장하지 ì•ŠìŒ';
-$labels['withattachment'] = 'ì²¨ë¶€íŒŒì¼ í¬í•¨';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'ì‚­ì œë¨';
$labels['undeleted'] = 'ì‚­ì œë˜ì§€ ì•ŠìŒ';
$labels['invert'] = '반전';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'ëª¨ë‘ í™•ìž¥';
$labels['expand-unread'] = 'ì½ì§€ ì•Šì€ ë©”ì‹œì§€ 확장';
$labels['collapse-all'] = 'ëª¨ë‘ ì ‘ê¸°';
$labels['threaded'] = '스레드화ë¨';
+
$labels['autoexpand_threads'] = '메시지 스레드 확장';
$labels['do_expand'] = '모든 스레드';
$labels['expand_only_unread'] = 'ì½ì§€ ì•Šì€ ë©”ì‹œì§€ì—만 ì ìš©';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'ì—´ ëª©ë¡ ë³´ê¸°';
$labels['listsorting'] = 'ì—´ ì •ë ¬';
$labels['listorder'] = '정렬 순서';
$labels['listmode'] = '화면 모드 ëª©ë¡ ë³´ê¸°';
+
$labels['folderactions'] = 'í´ë” 명령';
$labels['compact'] = '간단하게';
$labels['empty'] = '비어 있ìŒ';
-$labels['importmessages'] = '메시지 가져오기';
+
$labels['quota'] = 'ë””ìŠ¤í¬ ì‚¬ìš©ëŸ‰';
$labels['unknown'] = 'ì•Œ 수 ì—†ìŒ';
$labels['unlimited'] = '제한 ì—†ìŒ';
+
$labels['quicksearch'] = '빠른 검색';
$labels['resetsearch'] = '검색 재설정';
$labels['searchmod'] = 'ìˆ˜ì •ìž ê²€ìƒ‰';
$labels['msgtext'] = '전체 메시지';
$labels['body'] = '본문';
-$labels['type'] = '유형';
-$labels['namex'] = 'ì´ë¦„';
+
$labels['openinextwin'] = '새 ì°½ì—ì„œ 열기';
$labels['emlsave'] = '다운로드(.eml)';
-$labels['changeformattext'] = '메시지를 í‰ë¬¸ 형ì‹ìœ¼ë¡œ 표시';
-$labels['changeformathtml'] = 'HTML 형ì‹ìœ¼ë¡œ 표시';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = '새 메시지로 편집';
$labels['send'] = '보내기';
$labels['sendmessage'] = 'ë©”ì¼ ë³´ë‚´ê¸°';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = '수신 확ì¸';
$labels['dsn'] = '전송 ìƒíƒœ 알림';
$labels['mailreplyintro'] = '$dateì— $senderì´(ê°€) 작성한 ë‚´ìš©:';
$labels['originalmessage'] = 'ì›ë³¸ 메세지';
+
$labels['editidents'] = 'ì‹ ì› íŽ¸ì§‘';
$labels['spellcheck'] = '맞춤법';
$labels['checkspelling'] = '맞춤법 검사하기';
$labels['resumeediting'] = '편집 계ì†í•˜ê¸°';
$labels['revertto'] = 'ëŒì•„가기';
+
$labels['attach'] = '첨부';
$labels['attachments'] = '첨부파ì¼';
$labels['upload'] = '업로드';
$labels['uploadprogress'] = '$percent ($total개 중 $current개)';
$labels['close'] = '닫기';
$labels['messageoptions'] = '메시지 옵션...';
+
$labels['low'] = 'ë‚®ìŒ';
$labels['lowest'] = '가장 ë‚®ìŒ';
$labels['normal'] = '보통';
$labels['high'] = '높ìŒ';
$labels['highest'] = '가장 높ìŒ';
+
$labels['nosubject'] = '(제목 ì—†ìŒ)';
$labels['showimages'] = 'ì´ë¯¸ì§€ 보기';
$labels['alwaysshow'] = '$senderì—ì„œ ìˆ˜ì‹ ëœ ì´ë¯¸ì§€ í•­ìƒ ë³´ê¸°';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'ì´ê²ƒì€ 작성 ì¤‘ì¸ ë©”ì‹œì§€ìž…ë‹ˆë‹¤.';
$labels['andnmore'] = '$nr ë” ë³´ê¸°...';
$labels['togglemoreheaders'] = '메시지 í—¤ë” ë” ë³´ê¸°';
$labels['togglefullheaders'] = 'ì› ë©”ì‹œì§€ í—¤ë” í‘œì‹œ/숨기기';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ì¼ë°˜ í…스트';
$labels['savesentmessagein'] = '보낸 메시지를 ë‹¤ìŒ ìœ„ì¹˜ì— ì €ìž¥';
$labels['dontsave'] = '저장하지 ì•ŠìŒ';
$labels['maxuploadsize'] = '최대 허용 íŒŒì¼ í¬ê¸°ëŠ” $size 입니다';
+
$labels['addcc'] = '참조 추가';
$labels['addbcc'] = 'ìˆ¨ì€ ì°¸ì¡° 추가';
$labels['addreplyto'] = '회신 주소 추가';
$labels['addfollowupto'] = '전달 추가';
+
+// mdn
$labels['mdnrequest'] = 'ì´ ë©”ì‹œì§€ë¥¼ 보낸 ì‚¬ëžŒì´ ì‚¬ìš©ìžê°€ ì´ ë©”ì‹œì§€ë¥¼ ì½ì—ˆì„ ë•Œ ì½ìŒ 확ì¸ì„ 요청했습니다. 보낸 사람ì—게 알리시겠습니까?';
$labels['receiptread'] = '수신 í™•ì¸ (ì½ìŒ)';
$labels['yourmessage'] = 'ì´ê²ƒì€ 사용ìžì˜ ë©”ì‹œì§€ì— ëŒ€í•œ 수신 확ì¸ìž…니다.';
$labels['receiptnote'] = '참고: ì´ ìˆ˜ì‹  확ì¸ì€ ì´ ë©”ì‹œì§€ê°€ 받는 ì‚¬ëžŒì˜ ì»´í“¨í„°ì— í‘œì‹œë˜ì—ˆë‹¤ëŠ” ê²ƒë§Œì„ ì˜ë¯¸í•©ë‹ˆë‹¤. 받는 ì‚¬ëžŒì´ ë©”ì‹œì§€ ë‚´ìš©ì„ ì½ê±°ë‚˜ ì´í•´í–ˆë‹¤ëŠ” ë³´ìž¥ì€ ì—†ìŠµë‹ˆë‹¤.';
+
+// address boook
$labels['name'] = '표시명';
$labels['firstname'] = 'ì´ë¦„';
$labels['surname'] = '성';
@@ -262,6 +301,7 @@ $labels['search'] = '검색';
$labels['advsearch'] = '고급 검색';
$labels['advanced'] = '고급';
$labels['other'] = '기타';
+
$labels['typehome'] = 'ìžíƒ';
$labels['typework'] = 'ì§ìž¥';
$labels['typeother'] = '기타';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = '비서';
$labels['typehomepage'] = '홈페ì´ì§€';
$labels['typeblog'] = '블로그';
$labels['typeprofile'] = 'ìžê¸°ì†Œê°œ';
+
$labels['addfield'] = '필드 추가..';
$labels['addcontact'] = '새 ì—°ë½ì²˜ 추가';
$labels['editcontact'] = 'ì—°ë½ì²˜ 편집';
$labels['contacts'] = 'ì—°ë½ì²˜';
$labels['contactproperties'] = 'ì—°ë½ì²˜ ì†ì„±';
$labels['personalinfo'] = 'ê°œì¸ ì •ë³´';
+
$labels['edit'] = '편집';
$labels['cancel'] = '취소';
$labels['save'] = '저장';
@@ -290,6 +332,7 @@ $labels['rename'] = 'ì´ë¦„ 변경';
$labels['addphoto'] = '추가';
$labels['replacephoto'] = '바꾸기';
$labels['uploadphoto'] = '사진 업로드';
+
$labels['newcontact'] = '새 ì—°ë½ì²˜ ì¹´ë“œ ìƒì„±';
$labels['deletecontact'] = 'ì„ íƒí•œ ì—°ë½ì²˜ ì‚­ì œ';
$labels['composeto'] = 'ë©”ì¼ ìž‘ì„± 대ìƒ';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = '새 ì—°ë½ì²˜ 그룹 ìƒì„±';
$labels['grouprename'] = '그룹명 변경';
$labels['groupdelete'] = '그룹 삭제';
$labels['groupremoveselected'] = '그룹ì—ì„œ ì„ íƒí•œ ì—°ë½ì²˜ 제거';
+
$labels['previouspage'] = 'ì´ì „ 페ì´ì§€ 보기';
$labels['firstpage'] = 'ì²˜ìŒ íŽ˜ì´ì§€ 보기';
$labels['nextpage'] = 'ë‹¤ìŒ íŽ˜ì´ì§€ 보기';
$labels['lastpage'] = '마지막 페ì´ì§€ 보기';
+
$labels['group'] = '그룹';
$labels['groups'] = '그룹';
-$labels['listgroup'] = '그룹 êµ¬ì„±ì› ëª©ë¡ ë³´ê¸°';
$labels['personaladrbook'] = 'ê°œì¸ ì£¼ì†Œ';
+
$labels['searchsave'] = '검색 저장';
$labels['searchdelete'] = '검색 삭제';
+
$labels['import'] = '가져오기';
$labels['importcontacts'] = 'ì—°ë½ì²˜ 가져오기';
$labels['importfromfile'] = '파ì¼ì—ì„œ 가져오기:';
-$labels['importtarget'] = 'ì—°ë½ì²˜ 추가 위치';
+$labels['importtarget'] = '새 ì—°ë½ì²˜ë¥¼ 주소ë¡ì— 추가:';
$labels['importreplace'] = 'ì „ì²´ 주소ë¡ì„ 바꾸기';
-$labels['importgroups'] = '그룹 할당 가져오기';
-$labels['importgroupsall'] = 'ì „ì²´ (í•„ìš”ì— ë”°ë¼ ê·¸ë£¹ ìƒì„±)';
-$labels['importgroupsexisting'] = '기존 그룹ì—만 해당';
$labels['importdesc'] = '기존 주소ë¡ì—ì„œ ì—°ë½ì²˜ë¥¼ 가져올 수 있습니다.<br/> 현재 <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ë°ì´í„° 형ì‹ì—ì„œ 주소 가져오기를 지ì›í•©ë‹ˆë‹¤.\'';
$labels['done'] = '완료';
+
+// settings
$labels['settingsfor'] = '설정';
$labels['about'] = 'ì •ë³´...';
$labels['preferences'] = '환경설정';
$labels['userpreferences'] = 'ì‚¬ìš©ìž í™˜ê²½ì„¤ì •';
$labels['editpreferences'] = 'ì‚¬ìš©ìž í™˜ê²½ì„¤ì • 편집';
+
$labels['identities'] = 'ì‹ ì›';
$labels['manageidentities'] = 'ì´ ê³„ì •ì˜ ì‹ ì› ê´€ë¦¬';
$labels['newidentity'] = '새 ì‹ ì›';
+
$labels['newitem'] = '새 항목';
$labels['edititem'] = '항목 편집';
+
$labels['preferhtml'] = 'HTML 표시';
$labels['defaultcharset'] = '기본 ì¸ì½”딩';
$labels['htmlmessage'] = 'HTML 메시지';
@@ -354,7 +402,7 @@ $labels['htmleditor'] = 'HTML 메시지 작성';
$labels['htmlonreply'] = 'HTML 메시지 회신 시';
$labels['htmlonreplyandforward'] = '전달 ë˜ëŠ” HTML 메시지 회신 ì‹œ';
$labels['htmlsignature'] = 'HTML 서명';
-$labels['showemail'] = 'ì´ë©”ì¼ ì£¼ì†Œë¥¼ 표시 ì´ë¦„ê³¼ 함께 보기';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = '미리보기 창 보기';
$labels['skin'] = 'ì¸í„°íŽ˜ì´ìŠ¤ 스킨';
$labels['logoutclear'] = '로그아웃할 때 휴지통 비우기';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = '숫ìžê°€ í¬í•¨ëœ 단어 무시';
$labels['spellcheckignorecaps'] = 'ëª¨ë‘ ëŒ€ë¬¸ìžë¡œ í‘œê¸°ëœ ë‹¨ì–´ 무시';
$labels['addtodict'] = 'ì‚¬ì „ì— ì¶”ê°€';
$labels['mailtoprotohandler'] = 'mailto: ë§í¬ì˜ 프로토콜 ì²˜ë¦¬ìž ë“±ë¡';
-$labels['standardwindows'] = 'íŒì—…ì„ ì¼ë°˜ ì°½ê°™ì´ ì·¨ê¸‰';
$labels['forwardmode'] = '메시지 전달';
$labels['inline'] = '본문 내용으로';
$labels['asattachment'] = '첨부파ì¼ë¡œ';
+
$labels['folder'] = 'í´ë”';
$labels['folders'] = 'í´ë”';
$labels['foldername'] = 'í´ë”명';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'í´ë” 유형';
$labels['personalfolder'] = 'ê°œì¸ í´ë”';
$labels['otherfolder'] = '다른 사용ìžì˜ í´ë”';
$labels['sharedfolder'] = '공유 í´ë”';
+
$labels['sortby'] = 'ì •ë ¬ ë°©ì‹';
$labels['sortasc'] = '오름차순으로 정렬';
$labels['sortdesc'] = '내림차순으로 정렬';
$labels['undo'] = '실행 취소';
+
$labels['installedplugins'] = 'ì„¤ì¹˜ëœ í”ŒëŸ¬ê·¸ì¸';
$labels['plugin'] = '플러그ì¸';
$labels['version'] = '버전';
$labels['source'] = '소스';
$labels['license'] = 'ë¼ì´ì„ ìŠ¤';
$labels['support'] = 'ì§€ì› ìš”ì²­';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = '유니코드';
$labels['english'] = 'ì˜ì–´';
$labels['westerneuropean'] = '서유럽어';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = '베트남어';
$labels['japanese'] = 'ì¼ë³¸ì–´';
$labels['korean'] = '한국어';
$labels['chinese'] = '중국어';
+
?>
diff --git a/program/localization/ko_KR/messages.inc b/program/localization/ko_KR/messages.inc
index f6f274c43..bf42c9c89 100644
--- a/program/localization/ko_KR/messages.inc
+++ b/program/localization/ko_KR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = '오류 ë°œìƒ!';
$messages['loginfailed'] = '로그ì¸ì´ 실패하였습니다.';
$messages['cookiesdisabled'] = '브ë¼ìš°ì €ê°€ 쿠키를 지ì›í•˜ì§€ 않습니다.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = '요청한 ì—°ë½ì²˜ë¥¼ ì°¾ì„ ìˆ˜ 없었습니ë‹
$messages['contactsearchonly'] = 'ì—°ë½ì²˜ë¥¼ 찾기 위해 ì¼ë¶€ 검색용어를 입력하세요.';
$messages['sendingfailed'] = '메시지 보내기를 실패하였ìŒ.';
$messages['senttooquickly'] = 'ì´ ë©”ì‹œì§€ë¥¼ 보내기 ì „ì— $secì´ˆ ë™ì•ˆ 기다리세요.';
+$messages['errorsavingsent'] = '보낸 메시지를 저장하는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.';
+$messages['errorsaving'] = '저장 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.';
$messages['errormoving'] = '메시지를 ì´ë™í•  수 없었ìŒ.';
$messages['errorcopying'] = '메시지를 복사할 수 없었ìŒ.';
$messages['errordeleting'] = '메시지를 삭제할 수 없었ìŒ.';
@@ -97,16 +101,13 @@ $messages['converting'] = 'ì„œì‹ ì„¤ì • ì‚­ì œ 중...';
$messages['messageopenerror'] = '서버ì—ì„œ 메시지를 불러올 수 ì—†ìŒ.';
$messages['fileuploaderror'] = 'íŒŒì¼ ì—…ë¡œë“œë¥¼ 실패함.';
$messages['filesizeerror'] = 'ì—…ë¡œë“œëœ íŒŒì¼ì´ 최대 í¬ê¸°ì¸ $size를 초과하였습니다.';
-$messages['copysuccess'] = '$nrê°œì˜ ì—°ë½ì²˜ë¥¼ 성공ì ìœ¼ë¡œ 복사함';
-$messages['movesuccess'] = '$nrê°œì˜ ì—°ë½ì²˜ë¥¼ 성공ì ìœ¼ë¡œ ì´ë™í•¨';
-$messages['copyerror'] = 'ì „ì²´ ì—°ë½ì²˜ë¥¼ 복사할 수 없없ìŒ';
-$messages['moveerror'] = 'ì „ì²´ ì—°ë½ì²˜ë¥¼ ì´ë™í•  수 없없ìŒ';
+$messages['copysuccess'] = '$nrê°œì˜ ì£¼ì†Œë¥¼ 성공ì ìœ¼ë¡œ 복사함.';
+$messages['copyerror'] = '모든 주소를 복사할 수 ì—†ìŒ.';
$messages['sourceisreadonly'] = 'ì´ ì£¼ì†Œì˜ ì†ŒìŠ¤ëŠ” ì½ê¸° 전용입니다.';
$messages['errorsavingcontact'] = 'ì—°ë½ì²˜ì˜ 주소를 저장할 수 ì—†ìŒ.';
$messages['movingmessage'] = '메시지를 ì´ë™í•˜ëŠ” 중...';
$messages['copyingmessage'] = '메시지 복사하는 중...';
$messages['copyingcontact'] = 'ì—°ë½ì²˜ 복사하는 중...';
-$messages['movingcontact'] = 'ì—°ë½ì²˜ ì´ë™ 중...';
$messages['deletingmessage'] = '메시지 삭제하는 중...';
$messages['markingmessage'] = 'ë©”ì‹œì§€ì— í‘œì‹œí•˜ëŠ” 중...';
$messages['addingmember'] = 'ê·¸ë£¹ì— ì—°ë½ì²˜ë¥¼ 추가하는 중...';
@@ -125,8 +126,6 @@ $messages['importwait'] = '가져오는 중, 기다려주시기 ë°”ëžë‹ˆë‹¤...'
$messages['importformaterror'] = '가져오기를 실패함! ì—…ë¡œë“œëœ íŒŒì¼ì€ 유효하지 ì•Šì€ ê°€ì ¸ì˜¤ê¸° ë°ì´í„° 파ì¼ìž…니다.';
$messages['importconfirm'] = '<b>$inserted ì—°ë½ì²˜ë¥¼ 성공ì ìœ¼ë¡œ 가져옴<b>';
$messages['importconfirmskipped'] = '<b>기존 ê¸°ìž¬ì‚¬í•­ì¸ $skippedì„(를) 건너뜀</b>';
-$messages['importmessagesuccess'] = '$nrê°œì˜ ë©”ì‹œì§€ë¥¼ 성공ì ìœ¼ë¡œ 가져옴';
-$messages['importmessageerror'] = '가져오기 실패! ì—…ë¡œë“œëœ íŒŒì¼ì€ 유효하지 ì•Šì€ ë©”ì‹œì§€ ë˜ëŠ” ë©”ì¼í•¨ 파ì¼ìž„';
$messages['opnotpermitted'] = 'ìž‘ì—…ì´ í—ˆê°€ë˜ì§€ ì•ŠìŒ!';
$messages['nofromaddress'] = 'ì„ íƒëœ ì‹ ì›ì— ì´ë©”ì¼ ì£¼ì†Œ ê°€ 누ë½ë¨.';
$messages['editorwarning'] = 'ì¼ë°˜ í…스트 편집기로 바꾸면 모든 í…스트 ì„œì‹ì´ 사ë¼ì§‘니다. 계ì†í•˜ì‹œê² ìŠµë‹ˆê¹Œ?';
@@ -141,6 +140,7 @@ $messages['smtperror'] = 'SMTP 오류: $msg';
$messages['emailformaterror'] = '유효하지 ì•Šì€ ì´ë©”ì¼ ì£¼ì†Œ: $email';
$messages['toomanyrecipients'] = '수신ì¸ì´ 너무 많ìŒ. ìˆ˜ì‹ ì¸ ìˆ˜ë¥¼ $max명으로 줄ì´ì„¸ìš”.';
$messages['maxgroupmembersreached'] = '그룹 구성ì›ì˜ 수가 최대 ì¸ì›ì¸ $maxëª…ì„ ì´ˆê³¼í•©ë‹ˆë‹¤.';
+$messages['internalerror'] = '내부 오류가 ë°œìƒí•¨. ìž¬ì‹œë„ í•´ì£¼ì‹œê¸° ë°”ëžë‹ˆë‹¤.';
$messages['contactdelerror'] = 'ì—°ë½ì²˜ë¥¼ 삭제할 수 ì—†ìŒ.';
$messages['contactdeleted'] = 'ì—°ë½ì²˜ê°€ 성공ì ìœ¼ë¡œ ì‚­ì œë¨.';
$messages['contactrestoreerror'] = 'ì‚­ì œëœ ì—°ë½ì²˜ë¥¼ 복구할 수 ì—†ìŒ.';
@@ -168,4 +168,5 @@ $messages['parentnotwritable'] = 'ì„ íƒí•œ ìƒìœ„ í´ë”ì— í´ë”를 ìƒì„±/ì
$messages['messagetoobig'] = '메시지 ë¶€ë¶„ì´ ì²˜ë¦¬í•˜ê¸°ì—는 너무 í½ë‹ˆë‹¤.';
$messages['attachmentvalidationerror'] = '경고! ì´ ì²¨ë¶€ 파ì¼ì˜ ìœ í˜•ì´ ë©”ì‹œì§€ì—ì„œ ì„ ì–¸ëœ ìœ í˜•ê³¼ ì¼ì¹˜í•˜ì§€ 않기 ë•Œë¬¸ì— ì˜ì‹¬ë©ë‹ˆë‹¤. 발신ì¸ì„ 신뢰할 수 ì—†ì„ ê²½ìš°, 악성 코드를 í¬í•¨í•  ìˆ˜ë„ ìžˆê¸° ë•Œë¬¸ì— ë¸Œë¼ìš°ì €ì—ì„œ 열지 않는 ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤. <br/><br/><em> 예ìƒí•œ 유형: $expected; ë°œê²¬ëœ ìœ í˜•: $found</ em>';
$messages['noscriptwarning'] = '경고: ì´ ì›¹ ë©”ì¼ ì„œë¹„ìŠ¤ëŠ” ìžë°”스í¬ë¦½íŠ¸ê°€ 필요합니다! ì´ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ì‹œë ¤ë©´ ìžë°”스í¬ë¦½íŠ¸ë¥¼ 브ë¼ìš°ì € 설정ì—ì„œ 활성화하시기 ë°”ëžë‹ˆë‹¤.';
+
?>
diff --git a/program/localization/ku/labels.inc b/program/localization/ku/labels.inc
index c88b52d46..a4f6cb568 100644
--- a/program/localization/ku/labels.inc
+++ b/program/localization/ku/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bixêr hatî $product \'ê';
$labels['username'] = 'Bikarhêner';
$labels['password'] = 'Nasnav';
$labels['server'] = 'Pêşkêşkar';
$labels['login'] = 'Têkevê';
+
+// taskbar
$labels['logout'] = 'Derkeve';
$labels['mail'] = 'E-Peyam';
$labels['settings'] = 'Mîhengên Takekesî';
$labels['addressbook'] = 'Lênûska Navnîşanan';
+
+// mailbox names
$labels['inbox'] = 'Hatî';
$labels['drafts'] = 'Hilanînî';
$labels['sent'] = 'Şandî';
$labels['trash'] = 'Çop';
$labels['junk'] = 'Biikêrnehatî';
+
+// message listing
$labels['subject'] = 'Mijar';
$labels['from'] = 'Åžandyar';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Standyar';
$labels['cc'] = 'Kopiya Karbon';
$labels['bcc'] = 'Kopiya karbon a Veşartî';
$labels['replyto'] = 'Navnîşanên Standyar';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Dîrok';
$labels['size'] = 'Mezinahî';
$labels['priority'] = 'Girîngî';
$labels['organization'] = 'Sazî';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Peldank';
$labels['messagesfromto'] = 'Peyam $count ên di navbera $from - $to';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = '$nr a peyama $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Kopiya Karbon';
+$labels['move'] = 'Move';
$labels['moveto'] = 'bibe...';
$labels['download'] = 'daxe';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Navê pelê';
$labels['filesize'] = 'Mezinahiya pelê';
+
$labels['addtoaddressbook'] = 'Têxe lênûska navnîşanan';
+
+// weekdays short
$labels['sun'] = 'YÅŸ';
$labels['mon'] = 'DÅŸ';
$labels['tue'] = 'SÅŸ';
@@ -55,6 +81,8 @@ $labels['wed'] = 'Çş';
$labels['thu'] = 'PÅŸ';
$labels['fri'] = 'ÃŽn';
$labels['sat'] = 'Åže';
+
+// weekdays long
$labels['sunday'] = 'YekÅŸem';
$labels['monday'] = 'DuÅŸem';
$labels['tuesday'] = 'Sêşem';
@@ -62,12 +90,50 @@ $labels['wednesday'] = 'Çarşem';
$labels['thursday'] = 'Pêncşem';
$labels['friday'] = 'ÃŽn';
$labels['saturday'] = 'Şemî';
+
+// months short
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'May';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+
+// months long
+$labels['longjan'] = 'January';
+$labels['longfeb'] = 'February';
+$labels['longmar'] = 'March';
+$labels['longapr'] = 'April';
+$labels['longmay'] = 'May';
+$labels['longjun'] = 'June';
+$labels['longjul'] = 'July';
+$labels['longaug'] = 'August';
+$labels['longsep'] = 'September';
+$labels['longoct'] = 'October';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'December';
+
$labels['today'] = 'ÃŽro';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Li peyamên nû venihêre';
$labels['compose'] = 'Peyamekê biafirîne';
$labels['writenewmessage'] = 'Peyameke nû biafirîne';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Bersivê bide peyamê';
$labels['replytoallmessage'] = 'Bersivê ji bo hemû kesên ku ev peyan standine bişîne';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Bersivê bide peyamê';
$labels['deletemessage'] = 'Peyamê jê bibe';
$labels['movemessagetotrash'] = 'Peyamê dake çopê';
@@ -78,94 +144,338 @@ $labels['nextmessage'] = 'Peyama di rêzê de nîşan bide';
$labels['lastmessage'] = 'Peyama dawî nîşan bide';
$labels['backtolist'] = 'Vegere lîsteya peyaman';
$labels['viewsource'] = 'Çavkaniyê nîşan bide';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'Peyamê nîşan bike';
$labels['markread'] = 'Wekî xwendî';
$labels['markunread'] = 'Wekî nexwendî';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'Hilbijêre';
$labels['all'] = 'Hemû';
$labels['none'] = 'Ne yek jî';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Nexwendî';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'Ne yek jî';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Kompakt';
$labels['empty'] = 'Vala Bike';
+
$labels['quota'] = 'Bikaranîna dîskê';
$labels['unknown'] = 'nayê zanîn';
$labels['unlimited'] = 'bêsînor';
+
$labels['quicksearch'] = 'Lêgerîna bilez';
$labels['resetsearch'] = 'Lêgerînê reset bike';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Peyamê niha bişîne';
$labels['savemessage'] = 'Hilîne';
$labels['addattachment'] = 'Pelekê lê zêde bike';
$labels['charset'] = 'Curetîp';
$labels['editortype'] = 'Cureyê serastkat';
$labels['returnreceipt'] = 'Rapora Vegerînê';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Kontrola rastnivîsê';
$labels['resumeediting'] = 'Serastkirinê bidomîne';
$labels['revertto'] = 'Şûnde bîne';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Pêvek';
$labels['upload'] = 'Bar bike';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Bigire';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Nizm';
$labels['lowest'] = 'Nizmtirîn';
$labels['normal'] = 'Asayî';
$labels['high'] = 'Bilind';
$labels['highest'] = 'Bilintirîn';
+
$labels['nosubject'] = '(bê mijar)';
$labels['showimages'] = 'Xuyakirina wêneyan';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Deqa tazî';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Cc Têxê';
$labels['addbcc'] = 'Bcc Têxê';
$labels['addreplyto'] = 'Bibersivîne têxê';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Şandyara/ê vê peyamê xwest dema ku te peyam vekir, jê re hişyarî here. Dixwazî jê re hişyarî here?';
$labels['receiptread'] = 'Rapora Vegerînê (xwendî)';
$labels['yourmessage'] = 'Ev rapora vegerîna peyama te ye';
$labels['receiptnote'] = 'Nîşe: Ev dide zanîn ka peyama te şand hat xwendin an na. Naveroka peyamê bi mîgogerî nayê zanîn.';
+
+// address boook
$labels['name'] = 'Navê xuya dibe';
$labels['firstname'] = 'Nav';
$labels['surname'] = 'PaÅŸnav';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'E-Peyam';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Têkiliyeke nû têxê';
$labels['editcontact'] = 'Têkiliyê serast bike';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Serast bike';
$labels['cancel'] = 'Betal';
$labels['save'] = 'Tomar bike';
$labels['delete'] = 'Jê Bibe';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'kardeke nû a têkiliyê biafirîne';
$labels['deletecontact'] = 'Têkiliyên hilbijartî jê bibe';
$labels['composeto'] = 'Ji têkiliya hilbijartî re peyam bişîne';
$labels['contactsfromto'] = 'Têkiliyên $count ên di navbera $from - $to de';
$labels['print'] = 'çap bike';
$labels['export'] = 'Derxe';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Seta berê nîşan bide';
$labels['firstpage'] = 'Seta yekemîn nîşan bide';
$labels['nextpage'] = 'Seta di rêzê de nîşan bide';
$labels['lastpage'] = 'Seta dawî nîşan bide';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Kom';
$labels['personaladrbook'] = 'Navnîşanên Takekesî';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'Mîheng ji bo';
+$labels['about'] = 'About';
$labels['preferences'] = 'Vebijêrk';
$labels['userpreferences'] = 'Vebijêrkên bikarhêner';
$labels['editpreferences'] = 'Vebijêrkên bikarhêner serast bike';
+
$labels['identities'] = 'Nasname';
$labels['manageidentities'] = 'Nasnameyên vê hesabê serast bike';
$labels['newidentity'] = 'Nasnameya nû';
+
$labels['newitem'] = 'Parçeya nû';
$labels['edititem'] = 'Parçeyê serast bike';
+
$labels['preferhtml'] = 'Wekî HTML nîşan bide';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Peyama HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Kurtenivîsa Dîrokê';
$labels['setdefault'] = 'Wekî standard tomar bike';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Ziman';
$labels['timezone'] = 'Herêma demê';
$labels['pagesize'] = 'Hejmara peyamên her rûpelekê';
$labels['signature'] = 'Åžanenav';
$labels['dstactive'] = 'Demjimêra havînî';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Peyameke HTML biafirîne';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Åžanenava HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Panela berê nîşan bide';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'Xweber hilîne';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'qet';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Peldank';
$labels['folders'] = 'Peldank';
$labels['foldername'] = 'Navê peldankê';
@@ -174,7 +484,55 @@ $labels['messagecount'] = 'Peyam';
$labels['create'] = 'Biafirîne';
$labels['createfolder'] = 'Peldankeke nû biafirîne';
$labels['managefolders'] = 'Rêveberiya peldankan';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Şêweyê rêzkirinê';
$labels['sortasc'] = 'Wekî zêde dibe';
$labels['sortdesc'] = 'Wekî kêm dibe';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ku/messages.inc b/program/localization/ku/messages.inc
index 6000aacb0..9d219cbf5 100644
--- a/program/localization/ku/messages.inc
+++ b/program/localization/ku/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Têketin têk çû';
$messages['cookiesdisabled'] = 'Geroka te destûrê nade çerezan';
$messages['sessionerror'] = 'Danişîna te çewt e an jî bi dawî bûye';
$messages['storageerror'] = 'Girêdana pêşkêşkara IMAP têk çû';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Di vê peyamdankê de tu peyam nehat dîtin';
$messages['loggedout'] = 'Te danişînî bi dawî anî. Oxir be!';
$messages['mailboxempty'] = 'Peyamdank vala ye';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Tê barkirin...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Dane tên barkirin...';
$messages['checkingmail'] = 'Li peyamên nû vedinihêre...';
$messages['sendingmessage'] = 'Peyamê dişîne...';
@@ -32,42 +48,124 @@ $messages['messagesaved'] = 'Peyam di Hilanînî de hat hilanîn';
$messages['successfullysaved'] = 'Hat hilanîn';
$messages['addedsuccessfully'] = 'Têkilî li navnîşanan hat zêdekirin';
$messages['contactexists'] = 'Têkiliyeke bi vê navnîşanê jixwe heye';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Ji bo ewlekariya te wêneyên cuda yên vê peyamê hatin astenkirin.';
$messages['encryptedmessage'] = 'Ev peyamenek şîfrekirî ye, bibore, nayê vekirin!';
$messages['nocontactsfound'] = 'Tu têkiliyek nehat dîtin';
$messages['contactnotfound'] = 'Têkiliya dihat xwestin nehat dîtin';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Peyam nehat ÅŸandin';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Di tomarkirinê de çewtiyek derket';
$messages['errormoving'] = 'Ciyê peyamê nehat guherandin';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Peyam nehat jêbirin';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Ji dil dixwazî têkiliya/ên nîşankirî jê bibî?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Ji dil dixwazî peya/ên nîşankirî jê bibî?';
$messages['deletefolderconfirm'] = 'Ji dil dixwazî vê peldankê jê bibî?';
$messages['purgefolderconfirm'] = 'Ji dil dixwazî hemû peyamên di vê peldankê de jê bibî?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Form bi temamî nehat tijekirin';
$messages['noemailwarning'] = 'Tika ye, navnîşaneke rast têkevê';
$messages['nonamewarning'] = 'Tika ye, navekî têkevê';
$messages['nopagesizewarning'] = 'Tika ye, mezinahiyeke pelê têkevê';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Tika ye, herî kêm standyarekê têkevê';
$messages['nosubjectwarning'] = 'Qada "Mijar"ê vala ye. Dixwazî niha tiştekî lê binivîsî?';
$messages['nobodywarning'] = 'Peyamê bê nivîs bişeyînî?';
$messages['notsentwarning'] = 'Peyam nehat şandin. Dixwazî peyamê pişTgo bikî?';
$messages['noldapserver'] = 'Tika ye, ji bo lêgerînê pêşkêşkareke Idap têkevê';
$messages['nosearchname'] = 'Tika ye, nav an jî navnîşaneke têkiliyê têkevê';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr peyam hat(in) dîtin';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Di lêgerînê de tu tişt nehat dîtin';
$messages['searching'] = 'Digere...';
$messages['checking'] = 'Vedinihêre...';
$messages['nospellerrors'] = 'Tu şaşiyeke rastnivîsê nehat dîtin';
$messages['folderdeleted'] = 'Peldank hat jêbirin';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'Hat jêbirin';
$messages['converting'] = 'Formatkirin ji peyamê tê birin...';
$messages['messageopenerror'] = 'Peyam ji pêşkêşkar nehat barkirin';
$messages['fileuploaderror'] = 'Barkirina pelê têk çû';
$messages['filesizeerror'] = 'Pel pir mezin e. Herî zêde divê $size be';
+$messages['copysuccess'] = '$nr navnîşan hat(in) jibergirtin';
+$messages['copyerror'] = 'Tu navnîşan nehat jibergirtin';
$messages['sourceisreadonly'] = 'Çavkaniya vê navnîşanê tenê-xwendin e';
$messages['errorsavingcontact'] = 'Navnîşana têkiliyê nehat barkirin';
$messages['movingmessage'] = 'Ciyê peyamê tê guhertin...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'Rapora şandina serkeftî';
$messages['errorsendingreceipt'] = 'Rapor nehat ÅŸandin';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Nikarî vê nasnameyê jê bibî. Ew ya dawî ye.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/lt_LT/labels.inc b/program/localization/lt_LT/labels.inc
index 129b0de47..6398a3683 100644
--- a/program/localization/lt_LT/labels.inc
+++ b/program/localization/lt_LT/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Sveiki! ÄŒia $product';
$labels['username'] = 'Naudotojo vardas';
$labels['password'] = 'Slaptažodis';
$labels['server'] = 'Serveris';
$labels['login'] = 'Prisijungti';
+
+// taskbar
$labels['logout'] = 'Atsijungti';
$labels['mail'] = 'El. paštas';
$labels['settings'] = 'Nuostatos';
$labels['addressbook'] = 'Adresų knyga';
+
+// mailbox names
$labels['inbox'] = 'Gauti laiškai';
$labels['drafts'] = 'JuodraÅ¡Äiai';
$labels['sent'] = 'Išsiųsti laiškai';
$labels['trash'] = 'Šiukšlinė';
$labels['junk'] = 'Brukalas';
-$labels['show_real_foldernames'] = 'Rodyti tikrus specialiųjų aplankų vardus';
+
+// message listing
$labels['subject'] = 'Tema';
$labels['from'] = 'SiuntÄ—jas';
$labels['sender'] = 'SiuntÄ—jas';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritetas';
$labels['organization'] = 'Organizacija';
$labels['readstatus'] = 'Neskaitytas';
$labels['listoptions'] = 'Sąrašo nuostatos…';
+
$labels['mailboxlist'] = 'Aplankai';
$labels['messagesfromto'] = 'Laiškai nuo $from iki $to iš $count';
$labels['threadsfromto'] = 'Gijos nuo $from iki $to iš $count';
$labels['messagenrof'] = 'Laiškas $nr iš $count';
$labels['fromtoshort'] = '$from – $to iš $count';
+
$labels['copy'] = 'Kopijuoti';
$labels['move'] = 'Perkelti';
$labels['moveto'] = 'Perkelti į…';
@@ -56,9 +67,13 @@ $labels['download'] = 'Parsisiųsti';
$labels['open'] = 'Atverti';
$labels['showattachment'] = 'Rodyti';
$labels['showanyway'] = 'Vistiek rodyti';
+
$labels['filename'] = 'Failo vardas';
$labels['filesize'] = 'Failo dydis';
+
$labels['addtoaddressbook'] = 'Įtraukti į adresų knygą';
+
+// weekdays short
$labels['sun'] = 'Sek';
$labels['mon'] = 'Pir';
$labels['tue'] = 'Ant';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Tre';
$labels['thu'] = 'Ket';
$labels['fri'] = 'Pen';
$labels['sat'] = 'Šeš';
+
+// weekdays long
$labels['sunday'] = 'Sekmadienis';
$labels['monday'] = 'Pirmadienis';
$labels['tuesday'] = 'Antradienis';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'TreÄiadienis';
$labels['thursday'] = 'Ketvirtadienis';
$labels['friday'] = 'Penktadienis';
$labels['saturday'] = 'Šeštadienis';
+
+// months short
$labels['jan'] = 'Sau';
$labels['feb'] = 'Vas';
$labels['mar'] = 'Kov';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Rgs';
$labels['oct'] = 'Spl';
$labels['nov'] = 'Lap';
$labels['dec'] = 'Grd';
+
+// months long
$labels['longjan'] = 'Sausis';
$labels['longfeb'] = 'Vasaris';
$labels['longmar'] = 'Kovas';
@@ -97,10 +118,13 @@ $labels['longsep'] = 'RugsÄ—jis';
$labels['longoct'] = 'Spalis';
$labels['longnov'] = 'Lapkritis';
$labels['longdec'] = 'Gruodis';
+
$labels['today'] = 'Å iandien';
+
+// toolbar buttons
$labels['refresh'] = 'Atnaujinti';
$labels['checkmail'] = 'Tikrinti, ar yra naujų laiškų';
-$labels['compose'] = 'Rašyti';
+$labels['compose'] = 'Rašyti naują laišką';
$labels['writenewmessage'] = 'Rašyti naują laišką';
$labels['reply'] = 'Atsakyti';
$labels['replytomessage'] = 'Atsakyti siuntÄ—jui';
@@ -127,9 +151,10 @@ $labels['markunread'] = 'Kaip neskaitytus';
$labels['markflagged'] = 'Pažymėti gairele';
$labels['markunflagged'] = 'Pašalinti gairelę';
$labels['moreactions'] = 'Kiti veiksmai…';
-$labels['more'] = 'Kita';
+$labels['more'] = 'Daugiau';
$labels['back'] = 'Grįžti';
$labels['options'] = 'Nuostatos';
+
$labels['select'] = 'Pažymėti';
$labels['all'] = 'visus';
$labels['none'] = 'Nerūšiuoti';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'išskleisti visas';
$labels['expand-unread'] = 'iÅ¡skleisti turinÄias neskaitytų laiÅ¡kų';
$labels['collapse-all'] = 'suskleisti visas';
$labels['threaded'] = 'Rodyti gijas';
+
$labels['autoexpand_threads'] = 'IÅ¡skleisti gijas';
$labels['do_expand'] = 'visas';
$labels['expand_only_unread'] = 'tik turinÄias neskaitytų laiÅ¡kų';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Stulpelių sąrašas';
$labels['listsorting'] = 'Stulpelis rikiavimui';
$labels['listorder'] = 'Rikiavimo tvarka';
$labels['listmode'] = 'Sąrašo rodymo veiksena';
+
$labels['folderactions'] = 'Veiksmai su aplankais…';
$labels['compact'] = 'Suglaudinti';
$labels['empty'] = 'Ištuštinti';
-$labels['importmessages'] = 'Importuoti laiškus';
+
$labels['quota'] = 'Disko naudojimas';
$labels['unknown'] = 'nežinomas';
$labels['unlimited'] = 'neribotas';
+
$labels['quicksearch'] = 'SparÄioji paieÅ¡ka';
$labels['resetsearch'] = 'Atšaukti paiešką';
$labels['searchmod'] = 'Paieškos modifikatoriai';
$labels['msgtext'] = 'Visas laiškas';
$labels['body'] = 'Laiško tekstas';
-$labels['type'] = 'Tipas';
-$labels['namex'] = 'Vardas';
+
$labels['openinextwin'] = 'Atverti naujame lange';
$labels['emlsave'] = 'Parsisiųsti (.eml)';
$labels['changeformattext'] = 'Rodyti grynojo teksto formatu';
$labels['changeformathtml'] = 'Rodyti HTML formatu';
+
+// message compose
$labels['editasnew'] = 'Redaguoti kaip naujÄ…';
$labels['send'] = 'Siųsti';
$labels['sendmessage'] = 'Išsiųsti laiską';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Prašyti pristatymo pažymos';
$labels['dsn'] = 'Laiško pristatymo pažyma';
$labels['mailreplyintro'] = '$date, $sender rašė:';
$labels['originalmessage'] = 'Originalus laiškas';
+
$labels['editidents'] = 'Tvarkyti tapatybes';
$labels['spellcheck'] = 'Tikrinti rašybą';
$labels['checkspelling'] = 'Tikrinti rašybą';
$labels['resumeediting'] = 'Tęsti redagavimą';
$labels['revertto'] = 'Atstatyti į';
+
$labels['attach'] = 'PridÄ—ti failÄ…';
$labels['attachments'] = 'PridÄ—ti failai';
$labels['upload'] = 'Įkelti';
$labels['uploadprogress'] = '$percent ($current iš $total)';
$labels['close'] = 'Užverti';
$labels['messageoptions'] = 'Laiško savybės…';
+
$labels['low'] = 'Žemas';
$labels['lowest'] = 'Žemiausias';
$labels['normal'] = 'Normalus';
$labels['high'] = 'Aukštas';
$labels['highest'] = 'AukÅ¡Äiausias';
+
$labels['nosubject'] = '(tema nenurodyta)';
$labels['showimages'] = 'Rodyti paveikslÄ—lius';
$labels['alwaysshow'] = 'Visada rodyti paveikslėlius $sender laiškuose';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Tai – laiško juodraštis.';
$labels['andnmore'] = '$nr daugiau...';
$labels['togglemoreheaders'] = 'Rodyti daugiau antraÅ¡Äių';
$labels['togglefullheaders'] = 'Įjungti/išjungti neapdorotas laiškų antraštes';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Grynasis tekstas';
$labels['savesentmessagein'] = 'Išsiųstus laiškus įrašyti į';
$labels['dontsave'] = 'neįrašyti';
$labels['maxuploadsize'] = 'Maksimalus leistinas failo dydis yra $size';
+
$labels['addcc'] = 'PridÄ—ti Cc';
$labels['addbcc'] = 'PridÄ—ti Bcc';
$labels['addreplyto'] = 'PridÄ—ti Reply-To';
$labels['addfollowupto'] = 'PridÄ—ti Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Å io laiÅ¡ko siuntÄ—jas papraÅ¡Ä— patvirtinti, kad jÅ«s jį perskaitÄ—te. Ar iÅ¡siųsti tai patvirtinanÄiÄ… pažymÄ…?';
$labels['receiptread'] = 'Patvirtinimas (laiškas perskaitytas)';
$labels['yourmessage'] = 'Tai – pažyma, patvirtinanti, jog buvo perskaitytas Jūsų laiškas';
$labels['receiptnote'] = 'Pastaba: šia pažyma patvirtinamas tik faktas, jog laiškas buvo parodytas gavėjui. Ja negarantuojama, jog gavėjas perskaitė ir suprato laiško turinį.';
+
+// address boook
$labels['name'] = 'Rodomas vardas';
$labels['firstname'] = 'Vardas';
$labels['surname'] = 'PavardÄ—';
@@ -262,6 +301,7 @@ $labels['search'] = 'Paieška';
$labels['advsearch'] = 'Išplėstinė paieška';
$labels['advanced'] = 'IÅ¡samiau';
$labels['other'] = 'Kitas';
+
$labels['typehome'] = 'Namų';
$labels['typework'] = 'Darbo';
$labels['typeother'] = 'Kitas';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'PadÄ—jÄ—jo(-os)';
$labels['typehomepage'] = 'Tinklalapis';
$labels['typeblog'] = 'Tinklaraštis';
$labels['typeprofile'] = 'Profilis';
+
$labels['addfield'] = 'Pridėti lauką…';
$labels['addcontact'] = 'PridÄ—ti adresatÄ…';
$labels['editcontact'] = 'Taisyti adresatÄ…';
$labels['contacts'] = 'Adresatai';
$labels['contactproperties'] = 'Adresato savybÄ—s';
$labels['personalinfo'] = 'Asmeniniai duomenys';
+
$labels['edit'] = 'Redaguoti';
$labels['cancel'] = 'Atsisakyti';
$labels['save'] = 'Įrašyti';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Pervardinti';
$labels['addphoto'] = 'PridÄ—ti';
$labels['replacephoto'] = 'Pakeisti';
$labels['uploadphoto'] = 'Įkelti nuotrauką';
+
$labels['newcontact'] = 'Sukurti naujÄ… adresatÄ…';
$labels['deletecontact'] = 'Ištrinti pažymėtus adresatus';
$labels['composeto'] = 'Rašyti laišką';
@@ -303,32 +346,41 @@ $labels['newcontactgroup'] = 'Kurti adresatų grupę';
$labels['grouprename'] = 'Pervardinti grupÄ™';
$labels['groupdelete'] = 'Pašalinti grupę';
$labels['groupremoveselected'] = 'Pašalinti pažymėtus adresatus iš grupės';
+
$labels['previouspage'] = 'Rodyti ankstesnį puslapį';
$labels['firstpage'] = 'Rodyti pirmąjį puslapį';
$labels['nextpage'] = 'Rodyti tolesnį puslapį';
$labels['lastpage'] = 'Rodyti paskutinį puslapį';
+
$labels['group'] = 'GrupÄ—';
$labels['groups'] = 'GrupÄ—s';
-$labels['listgroup'] = 'IÅ¡vardinti grupÄ—s narius';
$labels['personaladrbook'] = 'Asmeniniai adresai';
+
$labels['searchsave'] = 'Įrašyti kaip radinių aplanką';
$labels['searchdelete'] = 'Pašalinti radinių aplanką';
+
$labels['import'] = 'Importuoti';
$labels['importcontacts'] = 'Importuoti adresatus';
$labels['importfromfile'] = 'Importuoti iš failo:';
+$labels['importtarget'] = 'Pridėti naujus adresatus į adresų knygą:';
$labels['importreplace'] = 'Perrašyti visą adresų knygą';
$labels['importdesc'] = 'Galite įkelti kontaktus iš jau turimos adresų knygos. <br/>Šiuo metu galima importuoti kontaktus iš <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> arba CSV (comma-separated) duomenų formatų.';
$labels['done'] = 'Baigta';
+
+// settings
$labels['settingsfor'] = 'Nuostatos';
$labels['about'] = 'Apie';
$labels['preferences'] = 'Nuostatos';
$labels['userpreferences'] = 'Naudotojo nuostatos';
$labels['editpreferences'] = 'Keisti naudotojo nuostatas';
+
$labels['identities'] = 'TapatybÄ—s';
$labels['manageidentities'] = 'Tvarkyti Å¡ios paskyros tapatybes';
$labels['newidentity'] = 'Nauja tapatybÄ—';
+
$labels['newitem'] = 'Naujas elementas';
$labels['edititem'] = 'Redaguoti elementÄ…';
+
$labels['preferhtml'] = 'Rodyti HTML';
$labels['defaultcharset'] = 'Numatytoji koduotÄ—';
$labels['htmlmessage'] = 'HTML laiškas';
@@ -350,7 +402,7 @@ $labels['htmleditor'] = 'Laiškus kurti HTML formatu';
$labels['htmlonreply'] = 'tik atsakymus į HTML formato laiškus';
$labels['htmlonreplyandforward'] = 'atsakant į HTML laiÅ¡kÄ… arba jį persiunÄiant';
$labels['htmlsignature'] = 'HTML parašas';
-$labels['showemail'] = 'Rodyti el. pašto adresą ir asmenvardį';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Rodyti laiško peržiūros polangį';
$labels['skin'] = 'Grafinis apvalkalas';
$labels['logoutclear'] = 'Išvalyti Šiukšlinę atsijungiant';
@@ -420,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Nepaisyti žodžių su skaitmenimis';
$labels['spellcheckignorecaps'] = 'Nepaisyti žodžių vien iš didžiųjų raidžių';
$labels['addtodict'] = 'Įtraukti į žodyną';
$labels['mailtoprotohandler'] = 'Užregistruoti svetainÄ™ kaip dirbanÄiÄ… su „mailto:“ saitais';
-$labels['standardwindows'] = 'IÅ¡kylanÄiuosius langus traktuoti kaip įprastus';
$labels['forwardmode'] = 'Laiškų persiuntimo būdas';
$labels['inline'] = 'kaip citatÄ…';
$labels['asattachment'] = 'kaip priedas';
+
$labels['folder'] = 'Aplankas';
$labels['folders'] = 'Aplankai';
$labels['foldername'] = 'Aplanko vardas';
@@ -444,20 +496,26 @@ $labels['foldertype'] = 'Aplanko tipas';
$labels['personalfolder'] = 'Asmeninis aplankas';
$labels['otherfolder'] = 'Kito naudotojo aplankas';
$labels['sharedfolder'] = 'Viešas aplankas';
+
$labels['sortby'] = 'Rikiuoti pagal';
$labels['sortasc'] = 'Rikiuoti didÄ—janÄiai';
$labels['sortdesc'] = 'Rikiuoti mažėjanÄiai';
$labels['undo'] = 'Atšaukti';
+
$labels['installedplugins'] = 'Įdiegti įskiepiai';
$labels['plugin'] = 'Papildinys';
$labels['version'] = 'Versija';
$labels['source'] = 'Å altinis';
$labels['license'] = 'Licencija';
$labels['support'] = 'Gauti pagalbos';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unikodas';
$labels['english'] = 'Anglų';
$labels['westerneuropean'] = 'Vakarų Europos';
@@ -476,4 +534,5 @@ $labels['vietnamese'] = 'VietnamieÄių';
$labels['japanese'] = 'Japonų';
$labels['korean'] = 'KorÄ—jieÄių';
$labels['chinese'] = 'Kinų';
+
?>
diff --git a/program/localization/lt_LT/messages.inc b/program/localization/lt_LT/messages.inc
index f3feedd47..df19c291b 100644
--- a/program/localization/lt_LT/messages.inc
+++ b/program/localization/lt_LT/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Įvyko klaida!';
$messages['loginfailed'] = 'Prisijungti nepavyko.';
$messages['cookiesdisabled'] = 'Jūsų naršyklė nepriima slapukų.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Ieškotas adresatas nerastas.';
$messages['contactsearchonly'] = 'Įveskite reikšminius žodžius adresatų paieškai';
$messages['sendingfailed'] = 'Laiško išsiųsti nepavyko.';
$messages['senttooquickly'] = 'Turite luktelėti $sec sek., kad galėtumėte išsiųsti laišką.';
+$messages['errorsavingsent'] = 'Įrašant išsiųstą laišką įvyko klaida.';
+$messages['errorsaving'] = 'Įrašant įvyko klaida.';
$messages['errormoving'] = 'Laiško(-ų) perkelti nepavyko.';
$messages['errorcopying'] = 'Laiško(-ų) nukopijuoti nepavyko.';
$messages['errordeleting'] = 'Laiško(-ų) pašalinti nepavyko.';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Šalinamas laiško formatavimas…';
$messages['messageopenerror'] = 'Nepavyko įkelti laiško iš serverio.';
$messages['fileuploaderror'] = 'Nepavyko įkelti failo.';
$messages['filesizeerror'] = 'Įkeltas failas viršija maksimalų leistiną dydį – $size.';
-$messages['copysuccess'] = 'Nukopijuota adresatų: $nr.';
-$messages['movesuccess'] = 'Perkelta adresatų: $nr.';
-$messages['copyerror'] = 'Adresatų nukopijuoti nepavyko.';
-$messages['moveerror'] = 'Adresatų perkelti nepavyko.';
+$messages['copysuccess'] = 'Nukopijuota adresų: $nr.';
+$messages['copyerror'] = 'Adresų nukopijuoti nepavyko.';
$messages['sourceisreadonly'] = 'Šis adresų šaltinis prieinamas tik skaitymui.';
$messages['errorsavingcontact'] = 'Asmens adreso įrašyti nepavyko.';
$messages['movingmessage'] = 'Laiškas(-ai) perkeliamas(-i)…';
$messages['copyingmessage'] = 'Laiškas(-ai) kopijuojamas(-i)…';
$messages['copyingcontact'] = 'Adresatas(-ai) kopijuojamas(-i)…';
-$messages['movingcontact'] = 'Adresatas(-ai) perkeliamas(-i)…';
$messages['deletingmessage'] = 'Laiškas(-ai) šalinamas(-i)…';
$messages['markingmessage'] = 'Laiškas(-ai) žymimas(-i)…';
$messages['addingmember'] = 'Adresatas(-ai) įtraukiamas(-i) į grupę…';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Importuojama, prašome palaukti…';
$messages['importformaterror'] = 'Importas nepavyko! Įkeltasis failas nėra tinkamas importavimui duomenų failas.';
$messages['importconfirm'] = '<b>Sėkmingai importuoti $inserted adresatai(-ų)</b>';
$messages['importconfirmskipped'] = '<b>Praleisti $skipped jau egzistuojantys adresatai(-ų)</b>';
-$messages['importmessagesuccess'] = 'Importuota laiškų: $nr';
-$messages['importmessageerror'] = 'Importas nepavyko! Įkeltasis failas nėra tinkamas importavimui laiško arba pašto dėžutės failas';
$messages['opnotpermitted'] = 'Veiksmas neleistinas!';
$messages['nofromaddress'] = 'Nenurodytas pasirinktosios tapatybės el. pašto adresas.';
$messages['editorwarning'] = 'Pereinant į grynojo teksto redagavimą, visas laiško formatavimas bus prarastas. Ar tęsti?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP klaida: $msg';
$messages['emailformaterror'] = 'Netinkamas el. pašto adresas: $email';
$messages['toomanyrecipients'] = 'Per daug gavėjų. Sumažinkite jų bent iki $max.';
$messages['maxgroupmembersreached'] = 'GrupÄ—s narių skaiÄius virÅ¡ijo maksimalų leistinÄ… ($max).';
+$messages['internalerror'] = 'Įvyko klaida. Prašom bandyti iš naujo.';
$messages['contactdelerror'] = 'Nepavyko pašalinti adresato(-ų).';
$messages['contactdeleted'] = 'Adresatas(-ai) sėkmingai pašalintas(-i).';
$messages['contactrestoreerror'] = 'Nepavyko atkurti pašalinto(-ų) adresato(-ų).';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Nepavyko sukurti arba perkelti aplanko į pari
$messages['messagetoobig'] = 'Laiško dalis yra per didelė, kad galėtų būti apdorota.';
$messages['attachmentvalidationerror'] = 'Dėmesio! Šis priedas yra įtartinas, nes jo tipas nesutampa su deklaruotu laiške. Jeigu nepasitikite šiuo siuntėju, šio priedo atverti naršyklėje nepatartina, nes jis gali būti kenksmingas.<br/><br/><em>Tikėtasi: $expected; aptikta: $detected</em>';
$messages['noscriptwarning'] = 'Dėmesio: šiai saityno el. pašto sistemai veikti būtini „JavaScript“ scenarijai! Norėdami ja naudotis, įjunkite „JavaScript“ savo naršyklės nuostatose.';
+
?>
diff --git a/program/localization/lv_LV/labels.inc b/program/localization/lv_LV/labels.inc
index 0f80350bb..7d4de2564 100644
--- a/program/localization/lv_LV/labels.inc
+++ b/program/localization/lv_LV/labels.inc
@@ -15,50 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Esiet laipni lūgti $product';
$labels['username'] = 'LietotÄjvÄrds';
$labels['password'] = 'Parole';
$labels['server'] = 'Serveris';
-$labels['login'] = 'Autorizēties';
-$labels['logout'] = 'Iziet';
+$labels['login'] = 'Pieslēgties';
+
+// taskbar
+$labels['logout'] = 'Atslēgties';
$labels['mail'] = 'E-pasts';
-$labels['settings'] = 'Iestatījumi';
+$labels['settings'] = 'Personīgie iestatījumi';
$labels['addressbook'] = 'AdreÅ¡u grÄmata';
+
+// mailbox names
$labels['inbox'] = 'IenÄkoÅ¡Äs';
$labels['drafts'] = 'Uzmetumi';
$labels['sent'] = 'NosÅ«tÄ«tÄs';
-$labels['trash'] = 'Papīrgrozs';
+$labels['trash'] = 'Miskaste';
$labels['junk'] = 'MÄ“stules';
-$labels['show_real_foldernames'] = 'SistÄ“mas mapÄ“m rÄdÄ«t Ä«stos nosaukumus';
+
+// message listing
$labels['subject'] = 'Temats';
$labels['from'] = 'No';
-$labels['sender'] = 'SÅ«tÄ«tÄjs';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Kam';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
-$labels['replyto'] = 'Atbildēt-Uz';
-$labels['followupto'] = 'Sekot-Uz';
+$labels['replyto'] = 'Reply-To';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Datums';
$labels['size'] = 'Izmērs';
$labels['priority'] = 'PrioritÄte';
$labels['organization'] = 'Uzņēmums';
$labels['readstatus'] = 'Izlasīšanas statuss';
-$labels['listoptions'] = 'Vēstuļu saraksta attēlošanas iestatījumi...';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Mapes';
$labels['messagesfromto'] = 'Vēstules $from līdz $to no $count';
$labels['threadsfromto'] = 'Vijumi $from līdz $to no $count';
-$labels['messagenrof'] = '$nr. vēstule no $count';
-$labels['fromtoshort'] = '$from – $to no $count';
+$labels['messagenrof'] = '$nr. vēstule no $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Kopēt';
$labels['move'] = 'PÄrvietot';
-$labels['moveto'] = 'PÄrvietot uz...';
+$labels['moveto'] = 'pÄrvietot uz...';
$labels['download'] = 'lejupielÄdÄ“t';
-$labels['open'] = 'Atvērt';
-$labels['showattachment'] = 'RÄdÄ«t';
-$labels['showanyway'] = 'Vienalga rÄdÄ«t';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Faila nosaukums';
$labels['filesize'] = 'Faila izmērs';
+
$labels['addtoaddressbook'] = 'Pievienot adreÅ¡u grÄmatai';
+
+// weekdays short
$labels['sun'] = 'Sv';
$labels['mon'] = 'P';
$labels['tue'] = 'O';
@@ -66,6 +81,8 @@ $labels['wed'] = 'T';
$labels['thu'] = 'C';
$labels['fri'] = 'P';
$labels['sat'] = 'Se';
+
+// weekdays long
$labels['sunday'] = 'Svētdiena';
$labels['monday'] = 'Pirmdiena';
$labels['tuesday'] = 'Otrdiena';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Trešdiena';
$labels['thursday'] = 'Ceturtdiena';
$labels['friday'] = 'Piektdiena';
$labels['saturday'] = 'Sestdiena';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'JanvÄris';
$labels['longfeb'] = 'FebruÄris';
$labels['longmar'] = 'Marts';
@@ -97,199 +118,212 @@ $labels['longsep'] = 'Septembris';
$labels['longoct'] = 'Oktobris';
$labels['longnov'] = 'Novembris';
$labels['longdec'] = 'Decembris';
+
$labels['today'] = 'Å odien';
-$labels['refresh'] = 'Atjaunot';
-$labels['checkmail'] = 'PÄrbaudÄ«t e-pastu';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
+$labels['checkmail'] = 'PÄrbaudÄ«t pastu';
$labels['compose'] = 'Rakstīt vēstuli';
$labels['writenewmessage'] = 'Rakstīt jaunu vēstuli';
-$labels['reply'] = 'Atbildēt';
-$labels['replytomessage'] = 'AtbildÄ“t sÅ«tÄ«tÄjam';
-$labels['replytoallmessage'] = 'AtbildÄ“t sÅ«tÄ«tÄjam vai listei un visiem adresÄtiem';
+$labels['reply'] = 'Reply';
+$labels['replytomessage'] = 'Atbildēt';
+$labels['replytoallmessage'] = 'AtbildÄ“t sÅ«tÄ«tÄjam un visiem saņēmÄ“jiem';
$labels['replyall'] = 'Atbildēt visiem';
$labels['replylist'] = 'Atbildēt listei';
-$labels['forward'] = 'PÄrsÅ«tÄ«t';
+$labels['forward'] = 'Forward';
$labels['forwardinline'] = 'PÄrsÅ«tÄ«t iekļaujot vÄ“stulÄ“';
$labels['forwardattachment'] = 'PÄrsÅ«tÄ«t kÄ pielikumu';
$labels['forwardmessage'] = 'PÄrsÅ«tÄ«t vÄ“stuli';
$labels['deletemessage'] = 'Dzēst vēstuli';
-$labels['movemessagetotrash'] = 'PÄrvietot vÄ“stuli uz papÄ«rgrozu';
-$labels['printmessage'] = 'IzdrukÄt Å¡o vÄ“stuli';
+$labels['movemessagetotrash'] = 'PÄrvietot vÄ“stuli uz miskasti';
+$labels['printmessage'] = 'izdrukÄt';
$labels['previousmessage'] = 'ParÄdÄ«t iepriekÅ¡Ä“jo vÄ“stuli';
$labels['firstmessage'] = 'ParÄdÄ«t pirmo vÄ“stuli';
$labels['nextmessage'] = 'ParÄdÄ«t nÄkamo vÄ“stuli';
$labels['lastmessage'] = 'ParÄdÄ«t pÄ“dÄ“jo vÄ“stuli';
$labels['backtolist'] = 'Atpakaļ uz vēstuļu sarakstu';
-$labels['viewsource'] = 'ParÄdÄ«t pirmtekstu';
-$labels['mark'] = 'Atzīmēt';
-$labels['markmessages'] = 'AtzÄ«mÄ“t vÄ“stules kÄ:';
-$labels['markread'] = 'KÄ lasÄ«tas';
-$labels['markunread'] = 'KÄ nelasÄ«tas';
-$labels['markflagged'] = 'KÄ atÄ«mÄ“tas';
-$labels['markunflagged'] = 'KÄ neatzÄ«mÄ“tas';
-$labels['moreactions'] = 'Papildus darbības...';
-$labels['more'] = 'VairÄk';
-$labels['back'] = 'Atpakaļ';
-$labels['options'] = 'Opcijas';
-$labels['select'] = 'Atzīmēt';
-$labels['all'] = 'Visas';
-$labels['none'] = 'Nevienu';
+$labels['viewsource'] = 'parÄdÄ«t pirmtekstu';
+$labels['mark'] = 'Mark';
+$labels['markmessages'] = 'MarÄ·Ä“t vÄ“stules kÄ:';
+$labels['markread'] = 'lasītas';
+$labels['markunread'] = 'nelasītas';
+$labels['markflagged'] = 'iezīmētas';
+$labels['markunflagged'] = 'neiezīmētas';
+$labels['moreactions'] = 'Citas darbības...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
+$labels['select'] = 'Iezīmēt';
+$labels['all'] = 'visas';
+$labels['none'] = 'Neviens';
$labels['currpage'] = 'PaÅ¡reizÄ“jÄ lapa';
-$labels['unread'] = 'NelasÄ«tÄs';
-$labels['flagged'] = 'AtzÄ«mÄ“tÄs';
-$labels['unanswered'] = 'NeatbildÄ“tÄs';
-$labels['withattachment'] = 'Ar pielikumu';
-$labels['deleted'] = 'DzÄ“stÄs';
-$labels['undeleted'] = 'Nav izdzēstas';
-$labels['invert'] = 'Pretēji';
+$labels['unread'] = 'nelasÄ«tÄs';
+$labels['flagged'] = 'iezÄ«mÄ“tÄs';
+$labels['unanswered'] = 'neatbildÄ“tÄs';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'dzÄ“stÄs';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'invertēt';
$labels['filter'] = 'Filtrēt';
-$labels['list'] = 'RÄdÄ«t kÄ sarakstu';
-$labels['threads'] = 'RÄdÄ«t kÄ vijumus';
+$labels['list'] = 'Saraksts';
+$labels['threads'] = 'Vijumi';
$labels['expand-all'] = 'Izvērst visus';
-$labels['expand-unread'] = 'IzvÄ“rst neizlasÄ«tÄs';
-$labels['collapse-all'] = 'Sakļaut visas';
-$labels['threaded'] = 'RÄdÄ«t vijumus';
+$labels['expand-unread'] = 'Izvērst neizlasītos';
+$labels['collapse-all'] = 'Savērst visu';
+$labels['threaded'] = 'Savīts';
+
$labels['autoexpand_threads'] = 'Izvērst vēstuļu vijumus';
-$labels['do_expand'] = 'visus vijumus';
-$labels['expand_only_unread'] = 'tikai ar neizlasÄ«tÄm vÄ“stulÄ“m';
-$labels['fromto'] = 'No/Kam';
-$labels['flag'] = 'Atzīmēt';
+$labels['do_expand'] = 'visiem vijumiem';
+$labels['expand_only_unread'] = 'tikai tad, ja ir neizlasītas vēstules';
+$labels['fromto'] = 'SÅ«tÄ«tÄjs/SaņēmÄ“js';
+$labels['flag'] = 'Iezīmēts';
$labels['attachment'] = 'Pielikums';
-$labels['nonesort'] = 'Neviena';
+$labels['nonesort'] = 'Neviens';
$labels['sentdate'] = 'Nosūtīšanas datums';
$labels['arrival'] = 'PienÄkÅ¡anas datums';
$labels['asc'] = 'augoša';
$labels['desc'] = 'dilstoša';
$labels['listcolumns'] = 'Saraksta kolonnas';
-$labels['listsorting'] = 'KÄrtoÅ¡anas kolonnas';
+$labels['listsorting'] = 'KÄrtot pÄ“c kolonnas';
$labels['listorder'] = 'KÄrtoÅ¡anas secÄ«ba';
-$labels['listmode'] = 'Attēlošanas veids';
+$labels['listmode'] = 'Saraksta režīms';
+
$labels['folderactions'] = 'Darbības ar mapēm...';
-$labels['compact'] = 'Saspiest';
-$labels['empty'] = 'Iztukšot';
-$labels['importmessages'] = 'Importēt vēstules';
+$labels['compact'] = 'saspiest';
+$labels['empty'] = 'iztukšot';
+
$labels['quota'] = 'Kvota';
$labels['unknown'] = 'nezinÄms';
$labels['unlimited'] = 'neierobežots';
+
$labels['quicksearch'] = 'Ä€rtÄ meklÄ“Å¡ana';
$labels['resetsearch'] = 'Atstatīt meklēšanu';
-$labels['searchmod'] = 'Meklēšanas modifikatori:';
-$labels['msgtext'] = 'VisÄ vÄ“stulÄ“';
-$labels['body'] = 'Pamatteksts';
-$labels['type'] = 'Tips';
-$labels['namex'] = 'VÄrds';
-$labels['openinextwin'] = 'AtvÄ“rt jaunÄ logÄ';
+$labels['searchmod'] = 'Meklēt laukos:';
+$labels['msgtext'] = 'VÄ“stules tekstÄ';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'atvÄ“rt jaunÄ logÄ';
$labels['emlsave'] = 'lejupielÄdÄ“t (.eml)';
-$labels['changeformattext'] = 'RÄdÄ«t kÄ neformatÄ“tu tekstu';
-$labels['changeformathtml'] = 'RÄdÄ«t kÄ HTML formatÄ“tu';
-$labels['editasnew'] = 'Rediģēt kÄ jaunu';
-$labels['send'] = 'Sūtīt';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'rediģēt kÄ jaunu';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Sūtīt vēstuli';
-$labels['savemessage'] = 'SaglabÄt kÄ uzmetumu';
+$labels['savemessage'] = 'SaglabÄt uzmetumu';
$labels['addattachment'] = 'Pievienot failu';
$labels['charset'] = 'Rakstzīmju kopa';
$labels['editortype'] = 'Redaktora tips';
$labels['returnreceipt'] = 'SaņemÅ¡anas apstiprinÄjums';
-$labels['dsn'] = 'PiegÄdes atskaite';
+$labels['dsn'] = 'Atskaite par piegÄdi';
$labels['mailreplyintro'] = '$sender @ $date rakstīja:';
$labels['originalmessage'] = 'SÄkotnÄ“jÄ vÄ“stule';
+
$labels['editidents'] = 'Rediģēt identitÄtes';
-$labels['spellcheck'] = 'IzrunÄt';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'PÄrbaudÄ«t pareizrakstÄ«bu';
$labels['resumeediting'] = 'TurpinÄt rediģēšanu';
$labels['revertto'] = 'Atgriezt uz';
-$labels['responses'] = 'Atbildes';
-$labels['insertresponse'] = 'Ievietot atbildi';
-$labels['manageresponses'] = 'PÄrvaldÄ«t atbildes';
-$labels['savenewresponse'] = 'SaglabÄt jauno atbildi';
-$labels['editresponses'] = 'Rediģēt atbildes';
-$labels['editresponse'] = 'Rediģēt atbildi';
-$labels['responsename'] = 'VÄrds';
-$labels['responsetext'] = 'Atbildes teksts';
-$labels['attach'] = 'Pievienot';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Pielikumi';
$labels['upload'] = 'AugÅ¡upielÄdÄ“t';
$labels['uploadprogress'] = '$percent ($current no $total)';
$labels['close'] = 'Aizvērt';
$labels['messageoptions'] = 'Vēstuļu iestatījumi...';
+
$labels['low'] = 'Zema';
$labels['lowest'] = 'ZemÄkÄ';
$labels['normal'] = 'NormÄla';
$labels['high'] = 'Augsta';
$labels['highest'] = 'AugstÄkÄ';
-$labels['nosubject'] = '(bez tēmas)';
+
+$labels['nosubject'] = '(no subject)';
$labels['showimages'] = 'RÄdÄ«t attÄ“lus';
-$labels['alwaysshow'] = 'VienmÄ“r rÄdÄ«t attÄ“lus vÄ“stulÄ“s, kuras sÅ«tÄ«jis $sender';
+$labels['alwaysshow'] = 'VienmÄ“r rÄdÄ«t attÄ“lus no $sender';
$labels['isdraft'] = 'Å is ir melnraksts.';
-$labels['andnmore'] = '$nr vairÄk...';
-$labels['togglemoreheaders'] = 'RÄdÄ«t galvenes papildus informÄciju';
-$labels['togglefullheaders'] = 'SlÄ“pt galvenes papildus informÄciju';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'VienkÄrÅ¡s teksts';
$labels['savesentmessagein'] = 'SaglabÄt nosÅ«tÄ«to vÄ“stuli mapÄ“';
$labels['dontsave'] = 'nesaglabÄt';
$labels['maxuploadsize'] = 'MaksimÄlais atļautais faila izmÄ“rs ir $size';
+
$labels['addcc'] = 'Pievienot Cc';
$labels['addbcc'] = 'Pievienot Bcc';
-$labels['addreplyto'] = 'Pievienot Atbildēt-Uz';
+$labels['addreplyto'] = 'Pievienot Reply-To';
$labels['addfollowupto'] = 'Pievienot Followup-To';
-$labels['mdnrequest'] = 'Å Ä«s vÄ“stules sÅ«tÄ«tÄjs vÄ“las redzÄ“t vÄ“stules saņemÅ¡anas apstiprinÄjumu. Vai JÅ«s vÄ“laties nosÅ«tÄ«t Å¡o apstiprinÄjumu?';
+
+// mdn
+$labels['mdnrequest'] = 'Å Ä«s vÄ“stules sÅ«tÄ«tÄjs vÄ“las redzÄ“t vÄ“stules saņemÅ¡anas apstiprinÄjumu. Vai jÅ«s vÄ“laties nosÅ«tÄ«t apstiprinÄjumu?';
$labels['receiptread'] = 'SaņemÅ¡anas apstiprinÄjums';
-$labels['yourmessage'] = 'Å is ir JÅ«su nosÅ«tÄ«tÄs vÄ“stules saņemÅ¡anas apstiprinÄjums';
-$labels['receiptnote'] = 'PiezÄ«me: Å is apsiprinÄjums nozÄ«mÄ“ tikai to, ka vÄ“stule tika parÄdÄ«ta uz saņēmÄja datora. Tas nenozÄ«mÄ“, ka saņēmÄ“js ir izlasÄ«jis vai sapratis vÄ“stules saturu.';
+$labels['yourmessage'] = 'Å Ä«s ir jÅ«su vÄ“stules saņemÅ¡anas apstiprinÄjums';
+$labels['receiptnote'] = 'PiezÄ«me: Å Ä«s apsiprinÄjums nozÄ«mÄ“ tikai to, ka vÄ“stule tika parÄdÄ«ta uz saņēmÄja datora. Tas nenozÄ«mÄ“, ka saņēmÄ“js ir izlasÄ«jis vai izpratis vÄ“stules saturu.';
+
+// address boook
$labels['name'] = 'UzrÄdÄ«tais vÄrds';
$labels['firstname'] = 'VÄrds';
$labels['surname'] = 'UzvÄrds';
$labels['middlename'] = 'Otrais vÄrds';
$labels['nameprefix'] = 'Prefikss';
$labels['namesuffix'] = 'Sufikss';
-$labels['nickname'] = 'SegvÄrds';
+$labels['nickname'] = 'Iesauka (nick)';
$labels['jobtitle'] = 'Amats';
$labels['department'] = 'Nodaļa';
$labels['gender'] = 'Dzimums';
-$labels['maidenname'] = 'PirmslaulÄ«bas uzvÄrds';
+$labels['maidenname'] = 'PirmslaulÄ«bu uzvÄrds';
$labels['email'] = 'E-pasts';
$labels['phone'] = 'TÄlrunis';
$labels['address'] = 'Adrese';
$labels['street'] = 'Iela';
$labels['locality'] = 'Pilsēta';
-$labels['zipcode'] = 'Pasta indekss';
+$labels['zipcode'] = 'Pasta kods';
$labels['region'] = 'Novads';
$labels['country'] = 'Pilsēta';
$labels['birthday'] = 'Dzimšanas diena';
$labels['anniversary'] = 'Gadadiena';
-$labels['website'] = 'MÄjaslapa';
+$labels['website'] = 'Web lapa';
$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'Piezīmes';
$labels['male'] = 'vīrietis';
$labels['female'] = 'sieviete';
$labels['manager'] = 'Menedžeris';
$labels['assistant'] = 'Asistents';
-$labels['spouse'] = 'LaulÄtais';
+$labels['spouse'] = 'LaulÄtais draugs';
$labels['allfields'] = 'Visi lauki';
$labels['search'] = 'Meklēt';
$labels['advsearch'] = 'PaplaÅ¡inÄtÄ meklÄ“Å¡ana';
-$labels['advanced'] = 'PaplaÅ¡inÄtie iestatÄ«jumi';
+$labels['advanced'] = 'Advanced';
$labels['other'] = 'Cits';
+
$labels['typehome'] = 'MÄjas';
$labels['typework'] = 'Darbs';
$labels['typeother'] = 'Cits';
$labels['typemobile'] = 'Mobilais tÄlrunis';
$labels['typemain'] = 'Galvenais';
-$labels['typehomefax'] = 'Fakss mÄjÄs';
-$labels['typeworkfax'] = 'Fakss darbÄ';
+$labels['typehomefax'] = 'MÄjas Fax';
+$labels['typeworkfax'] = 'Darba Fax';
$labels['typecar'] = 'Auto';
$labels['typepager'] = 'Peidžeris';
$labels['typevideo'] = 'Video';
$labels['typeassistant'] = 'Asistents';
-$labels['typehomepage'] = 'MÄjaslapa';
+$labels['typehomepage'] = 'Web lapa';
$labels['typeblog'] = 'Blogs';
$labels['typeprofile'] = 'Profils';
+
$labels['addfield'] = 'Pievienot lauku...';
-$labels['addcontact'] = 'Pievienot jaunu kontaktu';
-$labels['editcontact'] = 'Rediģēt kontaktu';
+$labels['addcontact'] = 'Pievienot iezÄ«mÄ“to ierakstu adreÅ¡u grÄmatai';
+$labels['editcontact'] = 'Rediģēt adreÅ¡u grÄmatas ierakstu';
$labels['contacts'] = 'Kontakti';
$labels['contactproperties'] = 'Kontakta īpašības';
-$labels['personalinfo'] = 'PersonÄ«gÄ informÄcija';
+$labels['personalinfo'] = 'PersoniskÄ informÄcija';
+
$labels['edit'] = 'Rediģēt';
$labels['cancel'] = 'Atcelt';
$labels['save'] = 'SaglabÄt';
@@ -297,97 +331,103 @@ $labels['delete'] = 'Dzēst';
$labels['rename'] = 'PÄrdÄ“vÄ“t';
$labels['addphoto'] = 'Pievienot';
$labels['replacephoto'] = 'Aizvietot';
-$labels['uploadphoto'] = 'AugÅ¡upielÄdÄ“t fotogrÄfiju';
-$labels['newcontact'] = 'Izveidot jaunu kontaktu';
-$labels['deletecontact'] = 'Dzēst atzīmētos kontaktus';
+$labels['uploadphoto'] = 'Upload photo';
+
+$labels['newcontact'] = 'Izveidot jaunu ierakstu';
+$labels['deletecontact'] = 'Dzēst iezīmētos ierakstus';
$labels['composeto'] = 'Rakstīt vēstuli';
-$labels['contactsfromto'] = 'Ieraksti no $from lÄ«dz $to - kopÄ $count';
+$labels['contactsfromto'] = 'Ieraksti $from līdz $to no $count';
$labels['print'] = 'DrukÄt';
$labels['export'] = 'Eksportēt';
-$labels['exportall'] = 'Eksportēt visu';
-$labels['exportsel'] = 'Eksportēt atzīmēto';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'EksportÄ“t kontaktus vCard formÄtÄ';
$labels['newcontactgroup'] = 'Izveidot jaunu kontaktu grupu';
$labels['grouprename'] = 'PÄrdÄ“vÄ“t grupu';
$labels['groupdelete'] = 'Izdzēst grupu';
-$labels['groupremoveselected'] = 'Dzēst atzīmētos kontaktus no grupas';
-$labels['previouspage'] = 'ParÄdÄ«t iepriekÅ¡Ä“jo lapu';
-$labels['firstpage'] = 'ParÄdÄ«t pirmo lapu';
-$labels['nextpage'] = 'ParÄdÄ«t nÄkamo lapu';
-$labels['lastpage'] = 'ParÄdÄ«t pÄ“dÄ“jo lapu';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
+$labels['previouspage'] = 'ParÄdÄ«t iepriekÅ¡Ä“jo kopu';
+$labels['firstpage'] = 'ParÄdÄ«t pirmo kopu';
+$labels['nextpage'] = 'ParÄdÄ«t nÄkamo kopu';
+$labels['lastpage'] = 'ParÄdÄ«t pÄ“dÄ“jo kopu';
+
$labels['group'] = 'Grupa';
$labels['groups'] = 'Grupas';
-$labels['listgroup'] = 'RÄdÄ«t grupas kontaktus';
$labels['personaladrbook'] = 'PersonÄ«gÄs adreses';
+
$labels['searchsave'] = 'SaglabÄt meklÄ“Å¡anas pieprasÄ«jumu';
$labels['searchdelete'] = 'DzÄ“st saglabÄto meklÄ“Å¡anas pieprasÄ«jumu';
+
$labels['import'] = 'Importēt';
$labels['importcontacts'] = 'Importēt kontaktus';
$labels['importfromfile'] = 'Importēt no faila:';
-$labels['importtarget'] = 'Kontaktus pievienot';
+$labels['importtarget'] = 'Pievienot jaunus kontaktus adreÅ¡u grÄmatai';
$labels['importreplace'] = 'Aizvietot visu adreÅ¡u grÄmatu';
-$labels['importgroups'] = 'Importēt grupu piesaistes';
-$labels['importgroupsall'] = 'Visus (ja nepieciešams, izveidojiet grupas)';
-$labels['importgroupsexisting'] = 'Tikai esoÅ¡Äm grupÄm';
-$labels['importdesc'] = 'JÅ«s varat ieimportÄ“t kontaktus no jau esoÅ¡as adreÅ¡u grÄmatas.<br/>Uz doto brÄ«di tiek atbalstÄ«ti <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> vai CSV (ar komatu atdalÄ«tie) datu formÄti.';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Pabeigts';
+
+// settings
$labels['settingsfor'] = 'Iestatījumi';
$labels['about'] = 'Par';
$labels['preferences'] = 'Iestatījumi';
-$labels['userpreferences'] = 'LietotÄja iestatÄ«jumi';
-$labels['editpreferences'] = 'Rediģēt iestatījumus';
+$labels['userpreferences'] = 'LietotÄja preferences';
+$labels['editpreferences'] = 'Rediģēt lietotÄja preferences';
+
$labels['identities'] = 'IdentitÄtes';
-$labels['manageidentities'] = 'Rediģēt identitÄtes';
+$labels['manageidentities'] = 'Rediģēt Å¡Ä« konta identitÄtes';
$labels['newidentity'] = 'Jauna identitÄte';
+
$labels['newitem'] = 'Jauns';
$labels['edititem'] = 'Rediģēt';
-$labels['preferhtml'] = 'RÄdÄ«t HTML formatÄ“tÄs vÄ“stules';
+
+$labels['preferhtml'] = 'Dot priekÅ¡roku HTML formatÄ“tÄm vÄ“stulÄ“m';
$labels['defaultcharset'] = 'NoklusÄ“tÄ rakstzÄ«mju kopa';
-$labels['htmlmessage'] = 'HTML formatēta vēstule';
-$labels['messagepart'] = 'Daļa';
-$labels['digitalsig'] = 'DigitÄlais paraksts';
+$labels['htmlmessage'] = 'HTML vēstule';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Datuma formÄts';
$labels['timeformat'] = 'Laika formÄts';
-$labels['prettydate'] = 'RÄdÄ«t Ä«sos datumus';
+$labels['prettydate'] = 'Formatēt datumus';
$labels['setdefault'] = 'Uzlikt kÄ noklusÄ“to';
-$labels['autodetect'] = 'AutomÄtiska';
+$labels['autodetect'] = 'AutomÄtiski';
$labels['language'] = 'Valoda';
$labels['timezone'] = 'Laika zona';
$labels['pagesize'] = 'Rindas lapÄ';
$labels['signature'] = 'Paraksts';
$labels['dstactive'] = 'Vasaras/ziemas laiks';
-$labels['showinextwin'] = 'VÄ“stules atvÄ“rt jaunÄ logÄ';
-$labels['composeextwin'] = 'VÄ“stuli rakstÄ«t jaunÄ logÄ';
-$labels['htmleditor'] = 'Rakstīt HTML formatētas vēstules';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'Rakstīt HTML vēstules';
$labels['htmlonreply'] = 'tikai atbildot uz HTML formatÄ“tÄm vÄ“stulÄ“m';
-$labels['htmlonreplyandforward'] = 'tikai pÄrsÅ«tot vai atbildot uz HTML formatÄ“tu vÄ“stuli';
-$labels['htmlsignature'] = 'HTML formatēts paraksts';
-$labels['showemail'] = 'Pie vÄrda rÄdÄ«t arÄ« e-pasta adresi';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
+$labels['htmlsignature'] = 'HTML paraksts';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'RÄdÄ«t priekÅ¡skatÄ«juma paneli';
-$labels['skin'] = 'Saskarnes izskats';
-$labels['logoutclear'] = 'Izejot no e-pasta, iztīrīt papīrgrozu';
-$labels['logoutcompact'] = 'Izejot no e-pasta, saspiest iesūtni';
+$labels['skin'] = 'Interfeisa izskats';
+$labels['logoutclear'] = 'Izejot no sistēmas, iztīrīt miskasti';
+$labels['logoutcompact'] = 'Izejot no sistēmas, saspiest iesūtni';
$labels['uisettings'] = 'LietotÄja saskarne';
$labels['serversettings'] = 'Servera iestatījumi';
$labels['mailboxview'] = 'Pastkastes skats';
$labels['mdnrequests'] = 'Vēstules izlasīšanas atskaites sūtīšana';
-$labels['askuser'] = 'jautÄt man vai sÅ«tÄ«t';
+$labels['askuser'] = 'jautÄt lietotÄjam';
$labels['autosend'] = 'sÅ«tÄ«t automÄtiski';
-$labels['autosendknown'] = 'automÄtiski sÅ«tÄ«t ja pieprasÄ«tÄjs ir manos kontaktos, par citiem jautÄt';
-$labels['autosendknownignore'] = 'automÄtiski sÅ«tÄ«t ja pieprasÄ«tÄjs ir manos kontaktos, citiem ignorÄ“t un nesÅ«tÄ«t';
-$labels['ignore'] = 'ignorēt un nesūtīt';
-$labels['readwhendeleted'] = 'DzÄ“Å¡ot vÄ“stules tÄs atzÄ«mÄ“t kÄ izlasÄ«tas';
-$labels['flagfordeletion'] = 'DzÄ“Å¡ot vÄ“stules tÄs nedzÄ“st, bet marÄ·Ä“t kÄ dzÄ“Å¡amas';
+$labels['autosendknown'] = 'automÄtiski sÅ«tÄ«t maniem kontaktiem, par citiem jautÄt';
+$labels['autosendknownignore'] = 'automÄtiski sÅ«tÄ«t maniem kontaktiem, citiem nesÅ«tÄ«t';
+$labels['ignore'] = 'ignorēt';
+$labels['readwhendeleted'] = 'AtzÄ«mÄ“t dzÄ“stÄs vÄ“stules kÄ izlasÄ«tas';
+$labels['flagfordeletion'] = 'DzÄ“Å¡ot marÄ·Ä“t vÄ“stules kÄ dzÄ“stas, bet nedzÄ“st';
$labels['skipdeleted'] = 'NerÄdÄ«t dzÄ“stÄs vÄ“stules';
-$labels['deletealways'] = 'IzdzÄ“st vÄ“stules, ja tÄs neizdodas pÄrvietot uz papÄ«rgrozu';
-$labels['deletejunk'] = 'AutomÄtiski dzÄ“st vÄ“stules no mÄ“stuļu mapÄ«tes';
-$labels['showremoteimages'] = 'RÄdÄ«t vÄ“stulÄ“s attÄ“lus, kuri atrodas uz cita servera';
-$labels['fromknownsenders'] = 'tikai no zinÄmiem sÅ«tÄ«tÄjiem';
+$labels['deletealways'] = 'IzdzÄ“st vÄ“stules, ja tÄs neizdodas pÄrvietot uz miskasti';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'RÄdÄ«t attÄ“lus, kas atrodas uz cita servera';
+$labels['fromknownsenders'] = 'no zinÄmiem sÅ«tÄ«tÄjiem';
$labels['always'] = 'vienmēr';
$labels['showinlineimages'] = 'RÄdÄ«t pielikuma attÄ“lus zem vÄ“stules';
-$labels['autosavedraft'] = 'AutomÄtiski saglabÄt vÄ“stules uzmetumu';
-$labels['everynminutes'] = 'ik pēc $n minūtes(ēm)';
-$labels['refreshinterval'] = 'PÄrbaudÄ«t jaunÄs vÄ“stules';
+$labels['autosavedraft'] = 'AutomÄtiski saglabÄt uzmetumu';
+$labels['everynminutes'] = 'ik pa $n minūti(ēm)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nekad';
$labels['immediately'] = 'nekavējoties';
$labels['messagesdisplaying'] = 'Vēstuļu attēlošana';
@@ -397,45 +437,45 @@ $labels['2231folding'] = 'Pilns RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Pilns RFC 2047 (citi)';
$labels['force7bit'] = 'Izmantot MIME kodējumu 8-bitu simboliem';
-$labels['advancedoptions'] = 'PaplaÅ¡inÄtie iestatÄ«jumi';
-$labels['focusonnewmessage'] = 'UzstÄdÄ«t pÄrlÅ«ka fokusu uz jaunu vÄ“stuli';
-$labels['checkallfolders'] = 'MeklÄ“t visÄs mapÄ“s jaunÄs vÄ“stules';
-$labels['displaynext'] = 'PÄ“c vÄ“stules dzÄ“Å¡anas/pÄrvietoÅ¡anas rÄdÄ«t nÄkamo vÄ“stuli';
-$labels['defaultfont'] = 'NoklusÄ“tais fonts vÄ“stulÄ“m HTML formÄtÄ';
+$labels['advancedoptions'] = 'PaplaÅ¡inÄti iestatÄ«jumi';
+$labels['focusonnewmessage'] = 'UztÄdÄ«t pÄrlÅ«ka fokusu uz jaunu vÄ“stuli';
+$labels['checkallfolders'] = 'PÄrbaudÄ«t visas mapes pÄ“c jaunÄm vÄ“stulÄ“m';
+$labels['displaynext'] = 'RÄdÄ«t nÄkamo vÄ“stuli pÄ“c dzÄ“Å¡anas/pÄrvietoÅ¡anas';
+$labels['defaultfont'] = 'NoklusÄ“tais fonts vÄ“stulei HTML formÄtÄ';
$labels['mainoptions'] = 'Galvenie iestatījumi';
-$labels['browseroptions'] = 'PÄrlÅ«ka iestatÄ«jumi';
-$labels['section'] = 'Sadaļa';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Kategorija';
$labels['maintenance'] = 'Uzturēšana';
$labels['newmessage'] = 'VÄ“stuļu pienÄkÅ¡ana';
$labels['signatureoptions'] = 'Paraksta iestatījumi';
$labels['whenreplying'] = 'Atbildot';
-$labels['replyempty'] = 'neiekļaut vÄ“stules sÄkotnÄ“jo tekstu';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'sÄkt jaunu vÄ“stuli virs oriÄ£inÄla';
$labels['replybottomposting'] = 'sÄkt jaunu vÄ“stuli zem oriÄ£inÄla';
$labels['replyremovesignature'] = 'Atbildot izņemt oriÄ£inÄlo parakstu no vÄ“stules';
$labels['autoaddsignature'] = 'AutomÄtiski pievienot parakstu';
-$labels['newmessageonly'] = 'tikai jaunÄm vÄ“stulÄ“m';
-$labels['replyandforwardonly'] = 'tikai atbildÄ“m un pÄrsÅ«tÄ«jumiem';
+$labels['newmessageonly'] = 'tikai jaunas vēstules';
+$labels['replyandforwardonly'] = 'tikai atbildes un pÄrsÅ«tÄ«jumi';
$labels['insertsignature'] = 'Ievietot parakstu';
$labels['previewpanemarkread'] = 'AtzÄ«mÄ“t priekÅ¡skatÄ«tÄs vÄ“stules kÄ lasÄ«tas';
$labels['afternseconds'] = 'pēc $n sekundēm';
-$labels['reqmdn'] = 'VienmÄ“r pieprasÄ«t saņemÅ¡anas apstiprinÄjumu';
-$labels['reqdsn'] = 'VienmÄ“r pieprasÄ«t atskati par piegÄdi';
+$labels['reqmdn'] = 'Vienmēr pieprasīt atskati par vēstules izlasīšanu';
+$labels['reqdsn'] = 'VienmÄ“r pieprasÄ«t atskati par vÄ“stules piegÄdÄÅ¡anu saņēmÄ“ja serverim';
$labels['replysamefolder'] = 'GlabÄt atbildes tajÄ paÅ¡Ä mapÄ“, kurÄ ir vÄ“stule, uz kuru tika atbildÄ“ts';
-$labels['defaultabook'] = 'NoklusÄ“tÄ adreÅ¡u grÄmata';
-$labels['autocompletesingle'] = 'AutomÄtiski aizpildot, nerÄdÄ«t alternatÄ«vÄs e-pasta adreses';
-$labels['listnamedisplay'] = 'RÄdÄ«t kontaktus kÄ';
-$labels['spellcheckbeforesend'] = 'Pirms vÄ“stules nosÅ«tÄ«Å¡anas pÄrbaudÄ«t pareizrakstÄ«bu';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'AutomÄtiski aizpildot, izlaist alternatÄ«vÄs e-pasta adreses';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'PÄrbaudÄ«t pareizrakstÄ«bu pirms vÄ“stules nosÅ«tÄ«Å¡anas';
$labels['spellcheckoptions'] = 'Pareizrakstības iestatījumi';
$labels['spellcheckignoresyms'] = 'IgnorÄ“t vÄrdus, kuri satur simbolus';
$labels['spellcheckignorenums'] = 'IgnorÄ“t vÄrdus, kuri satur skaitļus';
$labels['spellcheckignorecaps'] = 'IgnorÄ“t vÄrdus, kuri rakstÄ«ti ar lielajiem burtiem';
$labels['addtodict'] = 'Pievienot vÄrdnÄ«cai';
-$labels['mailtoprotohandler'] = 'Atverot mailto: saites, lietot Å¡o e-pasta programmu';
-$labels['standardwindows'] = 'IzlÄ“coÅ¡ie logi kÄ parasti logi';
-$labels['forwardmode'] = 'VÄ“stuļu pÄrsÅ«tÄ«Å¡ana';
-$labels['inline'] = 'iekļaujot';
-$labels['asattachment'] = 'kÄ pielikumu';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Mapi';
$labels['folders'] = 'Mapes';
$labels['foldername'] = 'Mapes nosaukums';
@@ -451,26 +491,32 @@ $labels['parentfolder'] = 'Virsmape';
$labels['location'] = 'AtraÅ¡anÄs vieta';
$labels['info'] = 'InformÄcija';
$labels['getfoldersize'] = 'UzklikÅ¡Ä·iniet, lai uzzinÄtu mapes izmÄ“ru';
-$labels['changesubscription'] = 'Uzklikšķiniet, lai mainītu abonēšanas iestatījumus';
-$labels['foldertype'] = 'Mapes tips';
+$labels['changesubscription'] = 'Uzklikšķiniet, lai mainītu abonēšanu';
+$labels['foldertype'] = 'Mapes veids';
$labels['personalfolder'] = 'PrivÄta mape';
$labels['otherfolder'] = 'Cita lietotÄja mape';
$labels['sharedfolder'] = 'Publiska mape';
+
$labels['sortby'] = 'KÄrtot pÄ“c';
$labels['sortasc'] = 'KÄrtot augoÅ¡Ä secÄ«bÄ';
$labels['sortdesc'] = 'KÄrtot dilstoÅ¡Ä secÄ«bÄ';
$labels['undo'] = 'Atsaukt';
-$labels['installedplugins'] = 'UzstÄdÄ«tie spraudņi';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Spraudnis';
$labels['version'] = 'Versija';
$labels['source'] = 'OriÄ£inÄls';
$labels['license'] = 'Licence';
$labels['support'] = 'Atbalsts';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'kB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
-$labels['unicode'] = 'Unikods';
+
+// character sets
+$labels['unicode'] = 'Unikoda';
$labels['english'] = 'Angļu';
$labels['westerneuropean'] = 'Rietumeiropas';
$labels['easterneuropean'] = 'Austrumeiropas';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vjetnamiešu';
$labels['japanese'] = 'JapÄņu';
$labels['korean'] = 'Korejiešu';
$labels['chinese'] = 'Ķīniešu';
+
?>
diff --git a/program/localization/lv_LV/messages.inc b/program/localization/lv_LV/messages.inc
index 55cff4134..b69a73e2b 100644
--- a/program/localization/lv_LV/messages.inc
+++ b/program/localization/lv_LV/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'RadÄs kļūda!';
$messages['loginfailed'] = 'PieslÄ“gties neizdevÄs';
$messages['cookiesdisabled'] = 'JÅ«su pÄrlÅ«kprogramma neatbalsta sÄ«kdatnes (cookies)';
@@ -26,7 +28,7 @@ $messages['dberror'] = 'DatubÄzes kļūda!';
$messages['requesttimedout'] = 'PieprasÄ«jumam iestÄjÄs noilgums';
$messages['errorreadonly'] = 'NeizdevÄs veikt darbÄ«bu: mape ir tikai lasÄma (read only)';
$messages['errornoperm'] = 'NeizdevÄs veikt darbÄ«bu: piekļuve liegta';
-$messages['erroroverquota'] = 'OperÄciju veikt nav iespÄ“jams. Uz diska nav brÄ«vas veitas.';
+$messages['erroroverquota'] = 'OperÄciju nav iespÄ“jams veikt. Uz diska nav brÄ«vas veitas.';
$messages['erroroverquotadelete'] = 'Uz diska nav brīvas vietas. Lai dzēstu vēstuli, lietojiet SHIFT+DEL.';
$messages['invalidrequest'] = 'NederÄ«gs pieprasÄ«jums! Dati netika saglabÄti ...';
$messages['invalidhost'] = 'Nederīgs servera nosaukums';
@@ -43,9 +45,7 @@ $messages['sendingmessage'] = 'Tiek sūtīta vēstule ...';
$messages['messagesent'] = 'Vēstule nosūtīta veiksmīgi';
$messages['savingmessage'] = 'VÄ“stule tiek saglabÄta ...';
$messages['messagesaved'] = 'VÄ“stule saglabÄta Uzmetumos';
-$messages['successfullysaved'] = 'VeiksmÄ«gi saglabÄts.';
-$messages['savingresponse'] = 'Tiek saglabÄts atbildes teksts ...';
-$messages['deleteresponseconfirm'] = 'Vai JÅ«s tieÅ¡Äm gribat dzÄ“st Å¡o atbildes tekstu?';
+$messages['successfullysaved'] = 'VÄ“stule veiksmÄ«gi saglabÄta';
$messages['addedsuccessfully'] = 'Kontakts veiksmÄ«gi pievienots adreÅ¡u grÄmatai';
$messages['contactexists'] = 'Kontakts ar Å¡Ädu e-pasta adresi jau eksistÄ“';
$messages['contactnameexists'] = 'Kontakts ar Å¡Ädu vÄrdu jau eksistÄ“.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'Pieprasītais kontakts nav atrasts';
$messages['contactsearchonly'] = 'Lai atrastu kontaktus, ievadiet meklēšanas kritērijus';
$messages['sendingfailed'] = 'Vēstule netika nosūtīta';
$messages['senttooquickly'] = 'Lūdzu uzgaidiet $sec sekundi(-es) pirms sūtiet šo vēstuli';
-$messages['errorsavingsent'] = 'SaglabÄjot nosÅ«tÄ«to vÄ“stuli notika kļūda - vÄ“stule netika saglabÄta';
-$messages['errorsaving'] = 'SaglabÄjot vÄ“stuli notika kļūda - vÄ“stule netika saglabÄta';
+$messages['errorsavingsent'] = 'SaglabÄjot vÄ“stuli notika kļūda - vÄ“stule netika saglabÄta';
+$messages['errorsaving'] = 'SaglabÄjot notika kļūda';
$messages['errormoving'] = 'VÄ“stule(s) netika pÄrvietota(s)';
$messages['errorcopying'] = 'VÄ“stules pÄrkopÄ“t neizdevÄs';
$messages['errordeleting'] = 'VÄ“stules izdzÄ“st neizdevÄs';
@@ -100,76 +100,72 @@ $messages['deletedsuccessfully'] = 'Veiksmīgi izdzēsts';
$messages['converting'] = 'Tiek noņemts vēstules formatējums...';
$messages['messageopenerror'] = 'NevarÄ“ja ielÄdÄ“t vÄ“stuli no servera';
$messages['fileuploaderror'] = 'Faila augÅ¡upielÄde neveiksmÄ«ga';
-$messages['filesizeerror'] = 'AugÅ¡upielÄdÄ“tais fails pÄrsniedz pieļaujamo $size izmÄ“ru.';
-$messages['copysuccess'] = '$nr kontakti tika veiksmÄ«gi pÄrkopÄ“ti.';
-$messages['movesuccess'] = '$nr kontakti tika veiksmÄ«gi pÄrvietoti.';
-$messages['copyerror'] = 'Kontaktus pÄrkopÄ“t neizdevÄs.';
-$messages['moveerror'] = 'Kontaktus pÄrvietot neizdevÄs.';
+$messages['filesizeerror'] = 'IelÄdÄ“tais fails pÄrsniedz pieļaujamo $size apjomu';
+$messages['copysuccess'] = 'Veiksmīgi nokopētas $nr vēstules';
+$messages['copyerror'] = 'Nevarēja nokopēt nevienu adresi';
$messages['sourceisreadonly'] = 'Adreses avots ir lasÄ«Å¡anas režīmÄ tikai';
-$messages['errorsavingcontact'] = 'Kontakta adresi nevarÄ“ja saglabÄt.';
-$messages['movingmessage'] = 'PÄrvieto vÄ“stules...';
+$messages['errorsavingcontact'] = 'NevarÄ“ja saglabÄt kontakta adreses';
+$messages['movingmessage'] = 'PÄrvietoju vÄ“stules...';
$messages['copyingmessage'] = 'Kopē vēstules...';
$messages['copyingcontact'] = 'Kopē kontaktus...';
-$messages['movingcontact'] = 'PÄrvieto kontaktu(s)...';
$messages['deletingmessage'] = 'Dzēš vēstules...';
$messages['markingmessage'] = 'Atzīmē vēstules...';
-$messages['addingmember'] = 'Kontaktus pievieno grupai...';
-$messages['removingmember'] = 'Kontaktus atvieno no grupas...';
-$messages['receiptsent'] = 'SaņemÅ¡anas apstiprinÄjums nosÅ«tÄ«ts veiksmÄ«gi.';
-$messages['errorsendingreceipt'] = 'NeizdevÄs nosÅ«tÄ«t saņemÅ¡anas apstiprinÄjumu.';
-$messages['deleteidentityconfirm'] = 'Vai JÅ«s tieÅ¡Äm vÄ“laties dzÄ“st Å¡o identitÄti?';
-$messages['nodeletelastidentity'] = 'Å o identitÄti nav iespÄ“jams izdzÄ“st, jo tÄ ir pati pÄ“dÄ“jÄ.';
-$messages['forbiddencharacter'] = 'Mapes nosaukums satur aizliegtus simbolus.';
-$messages['selectimportfile'] = 'LÅ«dzu norÄdiet failu, kuru vÄ“laties augÅ¡upielÄdÄ“t.';
-$messages['addresswriterror'] = 'IzvÄ“lÄ“tÄs adreÅ¡u grÄmatas datus nav iespÄ“jams rediģēt.';
+$messages['addingmember'] = 'Pievieno kontaktu(s) grupai...';
+$messages['removingmember'] = 'Atvieno kontaktu(s) no grupas...';
+$messages['receiptsent'] = 'SaņemÅ¡anas apstiprinÄjums nosÅ«tÄ«ts';
+$messages['errorsendingreceipt'] = 'NeizdevÄs nosÅ«tÄ«t apstiprinÄjumu';
+$messages['deleteidentityconfirm'] = 'Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡o identitÄti?';
+$messages['nodeletelastidentity'] = 'Å o identitÄti nevar izdzÄ“st, tÄ ir pati pÄ“dÄ“jÄ.';
+$messages['forbiddencharacter'] = 'Mapes nosaukums satur aizliegtus simbolus';
+$messages['selectimportfile'] = 'LÅ«dzu izvÄ“lieties failu, ko vÄ“laties augÅ¡upielÄdÄ“t';
+$messages['addresswriterror'] = 'IzvÄ“lÄ“tÄs adreÅ¡u grÄmatas datus nevar labot';
$messages['contactaddedtogroup'] = 'Kontakti tika veiksmīgi pievienoti šai grupai.';
$messages['contactremovedfromgroup'] = 'Kontakti tika veiksmīgi atvienoti no šīs grupas.';
$messages['nogroupassignmentschanged'] = 'GrupÄ nekas netika mainÄ«ts.';
$messages['importwait'] = 'Importēju, lūdzu uzgaidiet...';
$messages['importformaterror'] = 'Imports neizdevÄs! AugÅ¡upielÄdÄ“tais fails nav derÄ«gs importam.';
-$messages['importconfirm'] = '<b>Veiksmīgi ieimportēti $inserted kontakti</b>';
+$messages['importconfirm'] = '<b>Veiksmīgi ieimportēti $inserted kontakti, netika importēti $skipped esoši ieraksti</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Izlaida $skipped jau eksistējošus ierakstus</b>';
-$messages['importmessagesuccess'] = 'Veiksmīgi ieimportētas $nr vēstules';
-$messages['importmessageerror'] = 'ImportÄ“Å¡anas kļūda! AugÅ¡upielÄdÄ“tÄ datne satur nekorektus datus';
$messages['opnotpermitted'] = 'Darbība nav atļauta!';
-$messages['nofromaddress'] = 'IzvÄ“lÄ“tajai identitÄtei nav norÄdÄ«ta e-pasta adrese.';
-$messages['editorwarning'] = 'PÄrslÄ“dzoties uz vienkÄrÅ¡otu teksta redaktoru, tiks pazaudÄ“ts esoÅ¡ais teksta formatÄ“jums. Vai tieÅ¡Äm vÄ“laties turpinÄt?';
-$messages['httpreceivedencrypterror'] = 'Notika kritiska kļūme. Lūdzu nekavējoties sazinieties ar Jūsu administratoru. <b>Jūsu vēstuli nosūtīt nav iespējams.</b>';
+$messages['nofromaddress'] = 'IzvÄ“lÄ“tajai identitÄtei nav norÄdÄ«ta e-pasta adrese';
+$messages['editorwarning'] = 'PÄrslÄ“dzoties uz vienkÄrÅ¡otu teksta redaktoru, tiks pazaudÄ“ts esoÅ¡ais teksta formatÄ“jums. Vai vÄ“laties turpinÄt?';
+$messages['httpreceivedencrypterror'] = 'Kļūme. Lūdzu sazinieties ar administratoru. <b>Nav iespējams nosūtīt vēstuli.</b>';
$messages['smtpconnerror'] = 'SMTP kļūme ($code): NeizdevÄs pieslÄ“gties serverim';
-$messages['smtpautherror'] = 'SMTP kļūda ($code): NeizdevÄs autorizÄ“ties.';
-$messages['smtpfromerror'] = 'SMTP kļūda ($code): NeizdevÄs iestatÄ«t sÅ«tÄ«tÄju "$from" ($msg).';
-$messages['smtptoerror'] = 'SMTP kļūda ($code): NeizdevÄs pievienot saņēmÄ“ju "$to" ($msg).';
-$messages['smtprecipientserror'] = 'SMTP kļūda: Nav iespÄ“jams aptrÄdÄt saņēmÄ“ju sarakstu.';
-$messages['smtperror'] = 'SMTP kļūda: $msg';
+$messages['smtpautherror'] = 'SMTP kļūme ($code): NeizdevÄs autentificÄ“ties';
+$messages['smtpfromerror'] = 'SMTP kļūme ($code): NeizdevÄs iestatÄ«t sÅ«tÄ«tÄju "$from" ($msg)';
+$messages['smtptoerror'] = 'SMTP kļūme ($code): NeizdevÄs pievienot saņēmÄ“ju "$to" ($msg)';
+$messages['smtprecipientserror'] = 'SMTP kļūme: Nav iespējams parsēt saņēmēju sarakstu';
+$messages['smtperror'] = 'SMTP kļūme: $msg';
$messages['emailformaterror'] = 'Nepareiza e-pasta adrese: $email';
$messages['toomanyrecipients'] = 'PÄrÄk daudz saņēmÄ“ju. Samaziniet skaitu lÄ«dz $max.';
$messages['maxgroupmembersreached'] = 'Grupas dalÄ«bnieku skaits pÄrsniedz limitu $max.';
-$messages['internalerror'] = 'AtgadÄ«jÄs servera iekÅ¡Ä“jÄ kļūda. LÅ«dzu mÄ“Ä£iniet vÄ“lreiz.';
-$messages['contactdelerror'] = 'Kontaktus izdzÄ“st neizdevÄs.';
-$messages['contactdeleted'] = 'Kontakti izdzēsti veiksmīgi.';
-$messages['contactrestoreerror'] = 'IzdzÄ“stos kontaktus atjaunot neizdevÄs.';
-$messages['contactrestored'] = 'Kontakti atjaunoti veiksmīgi.';
-$messages['groupdeleted'] = 'Grupa izdzēsta veiksmīgi.';
-$messages['grouprenamed'] = 'Grupa pÄrdÄ“vÄ“ta veiksmÄ«gi.';
-$messages['groupcreated'] = 'Grupa izveidota veiksmīgi.';
-$messages['savedsearchdeleted'] = 'SaglabÄtais meklÄ“Å¡anas pieprasÄ«jums izdzÄ“sts veiksmÄ«gi.';
-$messages['savedsearchdeleteerror'] = 'SaglabÄto meklÄ“Å¡anas pieprasÄ«jumu izdzÄ“st neizdevÄs.';
-$messages['savedsearchcreated'] = 'SaglabÄtais meklÄ“Å¡anas pieprasÄ«jums saglabÄts veiksmÄ«gi.';
-$messages['savedsearchcreateerror'] = 'MeklÄ“Å¡anas pieprasÄ«jumu izveidot neizdevÄs.';
+$messages['internalerror'] = 'Servera iekÅ¡Ä“jÄ kļūda. LÅ«dzu mÄ“Ä£iniet vÄ“lreiz.';
+$messages['contactdelerror'] = 'NeizdevÄs izdzÄ“st kontaktu(s).';
+$messages['contactdeleted'] = 'Kontakti veiksmīgi izdzēsti.';
+$messages['contactrestoreerror'] = 'NeizdevÄs atjaunot izdzÄ“stos kontaktus.';
+$messages['contactrestored'] = 'Kontakti veiksmīgi atjaunoti.';
+$messages['groupdeleted'] = 'Grupa veiksmīgi izdzēsta.';
+$messages['grouprenamed'] = 'Grupa veiksmÄ«gi pÄrdÄ“vÄ“ta.';
+$messages['groupcreated'] = 'Grupa veiksmīgi izveidota.';
+$messages['savedsearchdeleted'] = 'SaglabÄtais meklÄ“Å¡anas pieprasÄ«jums veiksmÄ«gi dzÄ“sts.';
+$messages['savedsearchdeleteerror'] = 'NeizdevÄs nodzÄ“st saglabÄto meklÄ“Å¡anas pieprasÄ«jumu.';
+$messages['savedsearchcreated'] = 'SaglabÄtais meklÄ“Å¡anas pieprasÄ«jums veiksmÄ«gi saglabÄts.';
+$messages['savedsearchcreateerror'] = 'NeizdevÄs saglabÄt meklÄ“Å¡anas pieprasÄ«jumu.';
$messages['messagedeleted'] = 'Vēstule(s) veiksmīgi izdzēsta(s).';
$messages['messagemoved'] = 'VÄ“stule(s) veiksmÄ«gi pÄrvietota(s).';
$messages['messagecopied'] = 'VÄ“stule(s) veiksmÄ«gi pÄrkopÄ“ta(s).';
-$messages['messagemarked'] = 'Vēstule(s) veiksmīgi atzīmēta(s).';
-$messages['autocompletechars'] = 'Lai automÄtiski meklÄ“tu, ievadiet vismaz $min burtus.';
-$messages['autocompletemore'] = 'Atrasti vairÄki ieraksti. Papildiniet meklÄ“Å¡anas kritÄ“riju ar vairÄk burtiem.';
+$messages['messagemarked'] = 'Vēstule(s) veiksmīgi iezīmēta(s).';
+$messages['autocompletechars'] = 'Ievadiet vismaz $min burtus, lai meklÄ“tu automÄtiski.';
+$messages['autocompletemore'] = 'Atrasti vairÄki ieraksti. Papildiniet meklÄ“Å¡anas kritÄ“riju.';
$messages['namecannotbeempty'] = 'LÅ«dzu ievadiet vÄrdu.';
-$messages['nametoolong'] = 'VÄrds ir pÄrÄk garÅ¡.';
+$messages['nametoolong'] = 'VÄrds ir par garu.';
$messages['folderupdated'] = 'Mape vieksmīgi atjaunota.';
$messages['foldercreated'] = 'Mape veiksmīgi izveidota.';
$messages['invalidimageformat'] = 'NederÄ«gs attÄ“la formÄts.';
$messages['mispellingsfound'] = 'Vēstulē atrastas pareizrakstības kļūdas.';
-$messages['parentnotwritable'] = 'NeizdevÄs izveidot/pÄrvietot mapi atzÄ«mÄ“tajÄ virsmapÄ“. Nav piekļuves tiesÄ«bu.';
-$messages['messagetoobig'] = 'VÄ“stule daļa ir pÄrÄk liela, lai to varÄ“tu apstrÄdÄt.';
+$messages['parentnotwritable'] = 'NeizdevÄs izveidot/pÄrvietot mapi uz atzÄ«mÄ“to virsmapi. Nav piekļuves tiesÄ«bu.';
+$messages['messagetoobig'] = 'VÄ“stule ir pÄrÄk liela, lai to varÄ“tu apstrÄdÄt.';
$messages['attachmentvalidationerror'] = 'BRĪDINÄ€JUMS! Å is pielikums ir aizdomÄ«gs, jo tÄ tips neatbilst tipam, kurÅ¡ ir uzrÄdÄ«ts e-pasta ziņojumÄ. Ja jÅ«s neuzticaties sÅ«tÄ«tÄjam, Å¡o failu Jums vaÄ¼Ä vÄ“rt nevajadzÄ“tu, jo tas var saturÄ“t ļaunprÄtÄ«gu saturu. <br/><br/><em>BÅ«tu jÄbÅ«t: $expected; Bet ir: $detected</em>';
-$messages['noscriptwarning'] = 'UzmanÄ«bu: lai lasÄ«tu e-pastus, JÅ«su pÄrlÅ«kprogrammÄ jÄbÅ«t ieslÄ“gtiem JavaScript.';
+$messages['noscriptwarning'] = 'UzmanÄ«bu: lai lasÄ«tu e-pastus, JÅ«su tÄ«mekļa pÄrlÅ«kÄ jÄbÅ«t iespÄ“jotiem JavaScript.';
+
?>
diff --git a/program/localization/mk_MK/labels.inc b/program/localization/mk_MK/labels.inc
index 2c6c422b3..bb9606e6a 100644
--- a/program/localization/mk_MK/labels.inc
+++ b/program/localization/mk_MK/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Добредојдовте во $product';
$labels['username'] = 'КориÑничко име';
$labels['password'] = 'Лозинка';
$labels['server'] = 'Сервер';
$labels['login'] = 'Ðајава';
+
+// taskbar
$labels['logout'] = 'Одјава';
$labels['mail'] = 'Е-пошта';
$labels['settings'] = 'Ðагодувања';
$labels['addressbook'] = 'Именик';
+
+// mailbox names
$labels['inbox'] = 'Примени';
$labels['drafts'] = 'Ðепратени';
$labels['sent'] = 'Пратени';
$labels['trash'] = 'Корпа';
$labels['junk'] = 'Ѓубре';
+
+// message listing
$labels['subject'] = 'ÐаÑлов';
$labels['from'] = 'Праќач';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Примач';
$labels['cc'] = 'Копирај';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Препрати на';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Датум';
$labels['size'] = 'Големина';
$labels['priority'] = 'Приоритет';
$labels['organization'] = 'Организација';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Папки';
$labels['messagesfromto'] = 'ПиÑма од $from до $to од $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'ПиÑмо $nr од $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Копирај';
+$labels['move'] = 'Move';
$labels['moveto'] = 'ПремеÑти во...';
$labels['download'] = 'Преземи';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Име на податотеката';
$labels['filesize'] = 'Големина на податотеката';
+
$labels['addtoaddressbook'] = 'Додај во именик';
+
+// weekdays short
$labels['sun'] = 'Ðед';
$labels['mon'] = 'Пон';
$labels['tue'] = 'Вто';
@@ -55,6 +81,8 @@ $labels['wed'] = 'Сре';
$labels['thu'] = 'Чет';
$labels['fri'] = 'Пет';
$labels['sat'] = 'Саб';
+
+// weekdays long
$labels['sunday'] = 'Ðедела';
$labels['monday'] = 'Понеделник';
$labels['tuesday'] = 'Вторник';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'Среда';
$labels['thursday'] = 'Четврток';
$labels['friday'] = 'Петок';
$labels['saturday'] = 'Сабота';
+
+// months short
$labels['jan'] = 'Јан';
$labels['feb'] = 'Фев';
$labels['mar'] = 'Мар';
@@ -74,6 +104,8 @@ $labels['sep'] = 'Сеп';
$labels['oct'] = 'Окт';
$labels['nov'] = 'Ðое';
$labels['dec'] = 'Дек';
+
+// months long
$labels['longjan'] = 'Јануари';
$labels['longfeb'] = 'Февруари';
$labels['longmar'] = 'Март';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'Септември';
$labels['longoct'] = 'Октомври';
$labels['longnov'] = 'Ðоември';
$labels['longdec'] = 'Декември';
+
$labels['today'] = 'ДенеÑ';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Провери пошта';
$labels['compose'] = 'Пиши ново пиÑмо';
$labels['writenewmessage'] = 'Ðово пиÑмо';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Одговори на иÑпраќачот';
$labels['replytoallmessage'] = 'Одговори на иÑпраќачот и Ñите примачи';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Препрати пиÑмо';
$labels['deletemessage'] = 'Избриши пиÑмо';
$labels['movemessagetotrash'] = 'ПремеÑти ги пиÑмата во Корпа';
@@ -102,104 +144,250 @@ $labels['nextmessage'] = 'Прикажи го Ñледното пиÑмо';
$labels['lastmessage'] = 'Прикажи го поÑледното пиÑмо';
$labels['backtolist'] = 'Ðазад кон лиÑта на пиÑма';
$labels['viewsource'] = 'Покажи го изворот на пиÑмото';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'Обележи ги пиÑмата';
$labels['markread'] = 'Како прочитани';
$labels['markunread'] = 'Како непрочитани';
$labels['markflagged'] = 'Како обележано';
$labels['markunflagged'] = 'Како необележано';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'Одбери';
$labels['all'] = 'Сите';
$labels['none'] = 'Ðиедно';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Ðепрочитани';
$labels['flagged'] = 'Обележано';
$labels['unanswered'] = 'Ðеодговорено';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Избришано';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Обратно';
$labels['filter'] = 'Филтер';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'Ðиедно';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Компактно';
$labels['empty'] = 'ИÑпразни';
+
$labels['quota'] = 'ИÑкориÑтен проÑтор';
$labels['unknown'] = 'непознато';
$labels['unlimited'] = 'неограничено';
+
$labels['quicksearch'] = 'Брзо пребарување';
$labels['resetsearch'] = 'Ðово пребарување';
$labels['searchmod'] = 'Модификатори на пребарувањето';
$labels['msgtext'] = 'Цело пиÑмо';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Отвори во нов прозорец';
$labels['emlsave'] = 'Преземи (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Уреди како ново';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'ИÑпрати Ñега';
$labels['savemessage'] = 'Зачувај го пиÑмото во Ðепратени';
$labels['addattachment'] = 'Приложи податотека';
$labels['charset'] = 'Збир од знаци';
$labels['editortype'] = 'Тип на уредник';
$labels['returnreceipt'] = 'Врати';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Провери правопиÑ';
$labels['resumeediting'] = 'Продолжи Ñо уредување';
$labels['revertto'] = 'Врати на';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Приложено';
$labels['upload'] = 'Подигни';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Затвори';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Ðизок';
$labels['lowest'] = 'Ðајнизок';
$labels['normal'] = 'Ðормален';
$labels['high'] = 'ВиÑок';
$labels['highest'] = 'ÐајвиÑок';
+
$labels['nosubject'] = '(без наÑлов)';
$labels['showimages'] = 'Прикажи Ñлики';
$labels['alwaysshow'] = 'Секогаш прикажувај ги Ñликите од $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Обичен текÑÑ‚';
$labels['savesentmessagein'] = 'Сними го пратеното пиÑмо во';
$labels['dontsave'] = 'не зачувувај';
$labels['maxuploadsize'] = 'МакÑималната дозволена големина за податотеката е $size';
+
$labels['addcc'] = 'Додај Cc';
$labels['addbcc'] = 'Додај Bcc';
$labels['addreplyto'] = 'Додај Одговори-на';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Праќачот на оваа порака Ñака да биде извеÑтен кога ќе го прочитате пиÑмото. Дали Ñакате да го извеÑтите?';
$labels['receiptread'] = 'ИзвеÑти (прочитано)';
$labels['yourmessage'] = 'Ова е извеÑтување за вашата порака';
$labels['receiptnote'] = 'Ðапомена: Ова извеÑтување Ñамо потврдува дека пиÑмото кое Ñте го пратиле е отворено. Ðе е гаранција дека примачот го прочитал или разбрал иÑтото.';
+
+// address boook
$labels['name'] = 'Име за приказ';
$labels['firstname'] = 'Име';
$labels['surname'] = 'Презиме';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'Е-пошта';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Додај нов контакт';
$labels['editcontact'] = 'Уреди контакт';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Уреди';
$labels['cancel'] = 'Откажи';
$labels['save'] = 'Зачувај';
$labels['delete'] = 'Избриши';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Додај ново име';
$labels['deletecontact'] = 'Избриши ги Ñледните имиња';
$labels['composeto'] = 'Ðапиши порака за';
$labels['contactsfromto'] = 'Имиња од $from до $to од $count';
$labels['print'] = 'ИÑпечати';
$labels['export'] = 'Извези како';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Извези ги контактите во vCard формат';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Прикажи претходна Ñтрана';
$labels['firstpage'] = 'Прикажи ја првата Ñтрана';
$labels['nextpage'] = 'Прикажи ја Ñледната Ñтрана';
$labels['lastpage'] = 'Прикажи ја поÑледната Ñтрана';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Групи';
$labels['personaladrbook'] = 'Лични адреÑи';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'Увези';
$labels['importcontacts'] = 'Увези контакти';
$labels['importfromfile'] = 'Увези од податотека:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'Замени го целиот именик';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Завршено';
+
+// settings
$labels['settingsfor'] = 'Ðагодувања за';
+$labels['about'] = 'About';
$labels['preferences'] = 'Ðагодувања';
$labels['userpreferences'] = 'КориÑнички нагодувања';
$labels['editpreferences'] = 'Промени кориÑнички нагодувања';
+
$labels['identities'] = 'Идентитети';
$labels['manageidentities'] = 'Организирај ги идентитетите за овој кориÑник';
$labels['newidentity'] = 'Ðов идентитет';
+
$labels['newitem'] = 'Ðов објект';
$labels['edititem'] = 'Промени објект';
+
$labels['preferhtml'] = 'Прикажи во HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML пиÑмо';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Убави датуми';
$labels['setdefault'] = 'ПоÑтави за оÑновно';
$labels['autodetect'] = 'ÐвтоматÑки';
@@ -208,8 +396,13 @@ $labels['timezone'] = 'ЧаÑовна зона';
$labels['pagesize'] = 'Редови по Ñтрана';
$labels['signature'] = 'ПотпиÑ';
$labels['dstactive'] = 'Промени на времето';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Пиши HTML порака';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML потпиÑ';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Прикажи прозорец за преглед';
$labels['skin'] = 'Модел на изгледот';
$labels['logoutclear'] = 'ИÑчиÑти ја Кантата при излез';
@@ -220,33 +413,43 @@ $labels['mailboxview'] = 'Приказ на поштенÑкото ÑандачÐ
$labels['mdnrequests'] = 'ИзвеÑтувања за праќачот';
$labels['askuser'] = 'прашај го кориÑникот';
$labels['autosend'] = 'иÑпрати автоматÑки';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'игнорирај';
$labels['readwhendeleted'] = 'Обележи го пиÑмото како прочитано при бришење';
$labels['flagfordeletion'] = 'Обележи го пиÑмото за бришење намеÑто да го избришеш';
$labels['skipdeleted'] = 'Ðе ги прикажувај избришаните пиÑма';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Прикажи вметнати Ñлики';
$labels['fromknownsenders'] = 'од познати праќачи';
$labels['always'] = 'Ñекогаш';
$labels['showinlineimages'] = 'Прикажи приложени Ñлики под пиÑмото';
$labels['autosavedraft'] = 'ÐвоматÑки зачувувај во Ðепратени';
$labels['everynminutes'] = 'Ñекои $n минути';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'никогаш';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'Прикажување на пиÑма';
$labels['messagescomposition'] = 'Пишување на пиÑма';
$labels['mimeparamfolding'] = 'Име на прикачените податотеки';
$labels['2231folding'] = 'Полн RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Полн RFC 2047 (друго)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'Ðапредни можноÑти';
$labels['focusonnewmessage'] = 'ФокуÑирај го прозорецот на прелиÑтувачот на новото пиÑмо';
$labels['checkallfolders'] = 'Провери ги Ñите папки за нови пиÑма';
$labels['displaynext'] = 'По бришење/премеÑтување на пиÑмото прикажи го Ñледното пиÑмо';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Главни можноÑти';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Заглавие';
$labels['maintenance'] = 'Одржување';
$labels['newmessage'] = 'Ðово пиÑмо';
$labels['signatureoptions'] = 'МожноÑти за потпиÑот';
$labels['whenreplying'] = 'При одговарање';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'новото пиÑмо започни го над оригиналот';
$labels['replybottomposting'] = 'новото пиÑмо започни го под оригиналот';
$labels['replyremovesignature'] = 'При одговарање отÑтрани го изворниот Ð¿Ð¾Ñ‚Ð¿Ð¸Ñ Ð¾Ð´ пиÑмото';
@@ -254,6 +457,25 @@ $labels['autoaddsignature'] = 'ÐвтоматÑки додавај потпиÑ'
$labels['newmessageonly'] = 'Ñамо нови пиÑма';
$labels['replyandforwardonly'] = 'Ñамо одгорови и препраќања';
$labels['insertsignature'] = 'Вметни потпиÑ';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Име на папката';
@@ -263,11 +485,54 @@ $labels['create'] = 'Создај';
$labels['createfolder'] = 'Создај нова папка';
$labels['managefolders'] = 'Организирање на папки';
$labels['specialfolders'] = 'Специјални папки';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Сортирај по';
$labels['sortasc'] = 'Сортирај нагорно';
$labels['sortdesc'] = 'Сортирај надолно';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'Б';
$labels['KB'] = 'КБ';
$labels['MB'] = 'МБ';
$labels['GB'] = 'ГБ';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/mk_MK/messages.inc b/program/localization/mk_MK/messages.inc
index d123bada9..f7a8d9a12 100644
--- a/program/localization/mk_MK/messages.inc
+++ b/program/localization/mk_MK/messages.inc
@@ -15,17 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Ðајавата не уÑпеа';
$messages['cookiesdisabled'] = 'Вашиот прелиÑтувач не прифаќа колачиња';
$messages['sessionerror'] = 'СеÑијата е неважечка или е иÑтечена';
$messages['storageerror'] = 'Поврзувањето Ñо IMAP не уÑпеа';
$messages['servererror'] = 'Грешка во Ñерверот!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Ðеважечко барање! Податоците не Ñе зачувани.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Ðемате пиÑма во ова Ñандаче';
$messages['loggedout'] = 'УÑпешно Ñе одјавивте. Ви благодариме и довидување!';
$messages['mailboxempty'] = 'ПоштенÑкото Ñандаче е празно.';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Вчитувам...';
$messages['uploading'] = 'Ја подигам податотеката...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Ги вчитувам податоците...';
$messages['checkingmail'] = 'Проверувам нова пошта...';
$messages['sendingmessage'] = 'Ја иÑпраќам пораката...';
@@ -35,21 +48,31 @@ $messages['messagesaved'] = 'Пораката е зачувана во ÐепрÐ
$messages['successfullysaved'] = 'УÑпешно зачувано';
$messages['addedsuccessfully'] = 'Името е уÑпешно додадено во Именикот';
$messages['contactexists'] = 'Веќе поÑтои име Ñо зададената Е-поштенÑка адреÑа';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'За да Ñе заштити вашата приватноÑÑ‚, Ñликите во оваа порака не Ñе прикажани.';
$messages['encryptedmessage'] = 'Оваа порака е кодирана и не може да Ñе прикаже. Жалиме!';
$messages['nocontactsfound'] = 'Ðема пронајдено имиња.';
$messages['contactnotfound'] = 'Бараното име не е пронајдено';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Ðе упеав да го иÑпратам пиÑмото';
$messages['senttooquickly'] = 'Почекајте $sec Ñекунда/и пред да го иÑпратите пиÑмото';
+$messages['errorsavingsent'] = 'Грешка при зачувувањето на пратеното пиÑмо';
+$messages['errorsaving'] = 'Грешка при зачувувањето';
$messages['errormoving'] = 'Ðе можев да го премеÑтам пиÑмото';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Ðе можев да го избришам пиÑмото';
$messages['errormarking'] = 'Ðе можев да го обележам пиÑмото';
$messages['deletecontactconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да го избришете одбраното(те) име(ња)?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да го(и) избришете обележаниот(те) пиÑмо(а)?';
$messages['deletefolderconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да ја избришете оваа папка?';
$messages['purgefolderconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да ги избршете Ñите пиÑма во оваа папка?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'Ја бришам папката...';
$messages['foldermoving'] = 'Ја премеÑтувам папката...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Имате изоÑтавено непополнети информации';
$messages['noemailwarning'] = 'ВнеÑете валидна е-поштенÑка адреÑа';
$messages['nonamewarning'] = 'ВнеÑете име';
@@ -63,27 +86,46 @@ $messages['noldapserver'] = 'Изберете LDAP Ñервер за пребаÑ
$messages['nosearchname'] = 'ВнеÑете име или е-поштенÑка адреÑа';
$messages['notuploadedwarning'] = 'Сè уште нема подигнати прилози. Почекајте или откажете го подигањето';
$messages['searchsuccessful'] = 'Пронајадени Ñе $nr пораки';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Пребарувањето не даде резлутати';
$messages['searching'] = 'Пребарувам....';
$messages['checking'] = 'Проверувам...';
$messages['nospellerrors'] = 'Ðема грешки во Ñпелувањето';
$messages['folderdeleted'] = 'Папката е уÑпешно избришана';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'УÑпешно избришано';
$messages['converting'] = 'Форматирањето на пиÑмото е отÑтрането...';
$messages['messageopenerror'] = 'Ðе можев да го вчитам пиÑното од Ñерверот';
$messages['fileuploaderror'] = 'Прикачувањето е неуÑпешно';
$messages['filesizeerror'] = 'Подигнатата податотека го надминува ограничувањето од $size';
+$messages['copysuccess'] = 'УÑпешно Ñе копирани $nr имиња';
+$messages['copyerror'] = 'Ðе можам да ги копирам адреÑите';
$messages['sourceisreadonly'] = 'Изворот на оваа адреÑа неможе да Ñе промени';
$messages['errorsavingcontact'] = 'Името неможе да Ñе Ñними';
$messages['movingmessage'] = 'Пораката Ñе премеÑтува...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'ИзвеÑтувањето е уÑпешно пратено';
$messages['errorsendingreceipt'] = 'ИзвеÑтувањето не е пратено';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Овој идентитет неможе да Ñе избрише, тој е поÑледниот.';
$messages['forbiddencharacter'] = 'Името на папката Ñодржи неÑоодветен формат';
$messages['selectimportfile'] = 'Изберете ја податотеката која Ñакате да ја прикачите';
$messages['addresswriterror'] = 'Одбраниот именик не може да Ñе менува';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'Убезувам,, почекајте...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>УÑпешно Ñе увезени $inserted имиња, $skipped веќе поÑтојат и Ñе преÑкокнати</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'Операцијата не е дозволена';
$messages['nofromaddress'] = 'Ðе е внеÑена е-пошта во одберениот идентитет';
$messages['editorwarning'] = 'Префрлањето на уредникот на обичен текÑÑ‚ ќе резултира Ñо губење на целото форматирање на текÑтот. Дали Ñакате да продолжите?';
@@ -95,4 +137,35 @@ $messages['smtptoerror'] = 'SMTP грешка ($code): Ðе уÑпеав да г
$messages['smtprecipientserror'] = 'SMTP грешка: Ðе уÑпеав да ја иÑпарÑирам лиÑтата на примачи';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Ðеправилна поштенÑка адреÑа: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/ml_IN/labels.inc b/program/localization/ml_IN/labels.inc
index 395893afb..ed0e7402a 100644
--- a/program/localization/ml_IN/labels.inc
+++ b/program/localization/ml_IN/labels.inc
@@ -15,34 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product ലേയàµà´•àµà´•àµ à´¸àµà´µà´¾à´—തം';
$labels['username'] = 'ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚';
$labels['password'] = 'രഹസàµà´¯à´µà´¾à´•àµà´•àµ';
$labels['server'] = 'സേവകനàµâ€';
$labels['login'] = 'à´ªàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´•';
+
+// taskbar
$labels['logout'] = 'à´ªàµà´±à´¤àµà´¤àµ à´•à´Ÿà´•àµà´•àµà´•';
$labels['mail'] = 'തപാലàµâ€';
$labels['settings'] = 'à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™à´³àµâ€';
$labels['addressbook'] = 'വിലാസ à´ªàµà´¸àµà´¤à´•à´‚';
+
+// mailbox names
$labels['inbox'] = 'ഇനàµâ€à´¬àµ‹à´•àµà´¸àµ';
$labels['drafts'] = 'പൂരàµâ€à´¤àµà´¤à´¿à´¯à´¾à´•à´¾à´¤àµà´¤à´µ';
$labels['sent'] = 'അയചàµà´šà´µ';
$labels['trash'] = 'ചവറàµà´±àµà´•àµà´Ÿàµà´Ÿ';
$labels['junk'] = 'ആവശàµà´¯à´®à´¿à´²àµà´²à´¾à´¤àµà´¤à´µ';
+
+// message listing
$labels['subject'] = 'വിഷയം';
$labels['from'] = 'à´ªàµà´°àµ‡à´·à´¿à´¤à´¨àµâ€';
+$labels['sender'] = 'Sender';
$labels['to'] = 'à´¸àµà´µàµ€à´•à´°àµâ€à´¤àµà´¤à´¾à´µàµ';
+$labels['cc'] = 'Cc';
+$labels['bcc'] = 'Bcc';
+$labels['replyto'] = 'Reply-To';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'തീയതി';
$labels['size'] = 'വലിപàµà´ªà´‚';
$labels['priority'] = 'à´®àµà´¨àµâ€à´—ണന';
+$labels['organization'] = 'Organization';
$labels['readstatus'] = 'അവസàµà´¥ വായികàµà´•àµà´•';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'ഫോളàµâ€à´¡à´±àµà´•à´³àµâ€';
+$labels['messagesfromto'] = 'Messages $from to $to of $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
+$labels['messagenrof'] = 'Message $nr of $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'പകരàµâ€à´¤àµà´¤àµà´•';
$labels['move'] = 'നീകàµà´•àµà´•';
+$labels['moveto'] = 'Move to...';
$labels['download'] = 'ഡൗണàµâ€à´²àµ‹à´¡àµ';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ഫയലàµâ€ നാമം';
$labels['filesize'] = 'ഫയലിനàµà´±àµ† വലിപàµà´ªà´‚';
+
$labels['addtoaddressbook'] = 'മേലàµâ€à´µà´¿à´²à´¾à´¸à´™àµà´™à´³à´¿à´²àµâ€ ചേരàµâ€à´•àµà´•àµà´•.';
+
+// weekdays short
$labels['sun'] = 'à´žà´¾';
$labels['mon'] = 'തി';
$labels['tue'] = 'ചൊ';
@@ -50,6 +81,8 @@ $labels['wed'] = 'à´¬àµ';
$labels['thu'] = 'à´µàµà´¯à´¾';
$labels['fri'] = 'വെ';
$labels['sat'] = 'à´¶';
+
+// weekdays long
$labels['sunday'] = 'ഞായരàµâ€';
$labels['monday'] = 'തിങàµà´•à´³àµâ€';
$labels['tuesday'] = 'ചൊവàµà´µ';
@@ -57,6 +90,8 @@ $labels['wednesday'] = 'à´¬àµà´§à´¨àµâ€';
$labels['thursday'] = 'à´µàµà´¯à´¾à´´à´‚';
$labels['friday'] = 'വെളàµà´³à´¿';
$labels['saturday'] = 'ശനി';
+
+// months short
$labels['jan'] = 'ജനàµ';
$labels['feb'] = 'ഫെബàµ';
$labels['mar'] = 'മാരàµâ€';
@@ -69,6 +104,8 @@ $labels['sep'] = 'സെപàµà´±àµà´±à´‚ബരàµâ€';
$labels['oct'] = 'à´’à´•àµà´Ÿàµ‹à´¬à´°àµâ€';
$labels['nov'] = 'നവംബരàµâ€';
$labels['dec'] = 'ഡിസംബരàµâ€';
+
+// months long
$labels['longjan'] = 'ജനàµà´µà´°à´¿';
$labels['longfeb'] = 'ഫെബàµà´°àµà´µà´°à´¿';
$labels['longmar'] = 'മാരàµâ€à´šàµà´šàµ';
@@ -81,12 +118,22 @@ $labels['longsep'] = 'സെപàµà´¤à´‚ബ‌രàµâ€';
$labels['longoct'] = 'à´’à´•àµà´Ÿàµ‹à´¬à´°àµâ€';
$labels['longnov'] = 'നവംബ‌രàµâ€';
$labels['longdec'] = 'ഡിസംബ‌രàµâ€';
+
$labels['today'] = 'ഇനàµà´¨àµ';
+
+// toolbar buttons
$labels['refresh'] = 'à´ªàµà´¤àµà´•àµà´•àµà´•';
$labels['checkmail'] = 'à´ªàµà´¤à´¿à´¯ സനàµà´¦àµ‡à´¶à´¤àµà´¤à´¿à´¨à´¾à´¯à´¿ തിരയàµà´•';
$labels['compose'] = 'à´°à´šà´¨';
+$labels['writenewmessage'] = 'Create a new message';
$labels['reply'] = 'മറàµà´ªà´Ÿà´¿';
+$labels['replytomessage'] = 'Reply to sender';
+$labels['replytoallmessage'] = 'Reply to list or to sender and all recipients';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
$labels['forward'] = 'കൈമാറàµà´•';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'സനàµà´¦àµ‡à´¶à´‚ കൈമാറàµà´•';
$labels['deletemessage'] = 'സനàµà´¦àµ‡à´¶à´‚ മായàµà´•àµà´•àµà´•';
$labels['movemessagetotrash'] = 'സനàµà´¦àµ‡à´¶à´‚ ചവറàµà´±àµà´•àµà´Ÿàµà´Ÿà´¯à´¿à´²àµ‡à´•àµà´•àµ നീകàµà´•àµà´•';
@@ -95,15 +142,19 @@ $labels['previousmessage'] = 'à´®àµà´¨àµâ€à´ªàµà´³à´³ സനàµà´¦àµ‡à´¶à´‚
$labels['firstmessage'] = 'ആദàµà´¯à´¤àµà´¤àµ† സനàµà´¦àµ‡à´¶à´‚ കാണികàµà´•àµà´•.';
$labels['nextmessage'] = 'à´…à´Ÿàµà´¤àµà´¤ സനàµà´¦àµ‡à´¶à´‚ കാണികàµà´•àµà´•.';
$labels['lastmessage'] = 'അവസാനതàµà´¤àµ† സനàµà´¦àµ‡à´¶à´‚ കാണികàµà´•àµà´•.';
+$labels['backtolist'] = 'Back to message list';
$labels['viewsource'] = 'ഉറവിടം കാണികàµà´•àµà´•.';
$labels['mark'] = 'അടയാളപàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµ';
$labels['markmessages'] = 'സനàµà´¤àµ‡à´¶à´™àµà´™à´³àµâ€ അടയാളപàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµ';
$labels['markread'] = 'വായിചàµà´šà´¤à´¾à´¯à´¿';
$labels['markunread'] = 'വായികàµà´•à´¾à´¤àµà´¤à´¤à´¾à´¯à´¿';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
$labels['moreactions'] = 'കൂടàµà´¤à´²àµâ€ ചെയàµà´¤à´¿à´•à´³àµâ€...';
$labels['more'] = 'കൂടàµà´¤à´²àµâ€';
$labels['back'] = 'പിനàµà´¨àµ‹à´Ÿàµà´Ÿàµ';
$labels['options'] = 'à´à´šàµà´›à´¿à´•à´™àµà´™à´³àµâ€â€Œ';
+
$labels['select'] = 'തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•';
$labels['all'] = 'à´Žà´²àµà´²à´¾à´‚';
$labels['none'] = 'à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²';
@@ -111,54 +162,117 @@ $labels['currpage'] = 'നിലവിലàµà´³à´³ പേജàµ';
$labels['unread'] = 'വായികàµà´•à´¾à´¤àµà´¤à´¤àµ';
$labels['flagged'] = 'അടയാളപàµà´ªàµ†à´Ÿàµà´¤àµà´¤à´¿à´¯à´µ';
$labels['unanswered'] = 'മറàµà´ªà´Ÿà´¿ കൊടàµà´•àµà´•à´¾à´¤àµà´¤';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'മായàµà´šàµà´šà´µ';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'തലതിരികàµà´•àµà´•';
$labels['filter'] = 'à´…à´°à´¿à´ªàµà´ª';
$labels['list'] = 'പടàµà´Ÿà´¿à´•';
+$labels['threads'] = 'Threads';
$labels['expand-all'] = 'à´Žà´²àµà´²à´¾à´‚ വികസിപàµà´ªà´¿à´•àµà´•àµà´•';
$labels['expand-unread'] = 'വായികàµà´•à´¾à´¤àµà´¤à´µ വികസിപàµà´ªà´¿à´•àµà´•àµà´•';
$labels['collapse-all'] = 'à´Žà´²àµà´²à´¾à´‚ à´…à´Ÿà´¯àµà´•àµà´•àµà´•';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
$labels['fromto'] = 'എവിടàµà´¨àµà´¨àµ /à´Žà´™àµà´™àµŠà´Ÿàµà´Ÿàµ';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²';
$labels['sentdate'] = 'അയചàµà´š തീയതി';
$labels['arrival'] = 'വനàµà´¨ തീയതി';
$labels['asc'] = 'ആരോഹണം';
$labels['desc'] = 'അവരോഹണം';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
$labels['listorder'] = 'തരംതിരികàµà´•à´£àµà´Ÿ രീതി';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'à´šàµà´°àµà´•àµà´•àµ';
$labels['empty'] = 'ശൂനàµà´¯à´‚';
+
$labels['quota'] = 'à´¡à´¿à´¸àµà´•àµà´•àµ ഉപയോഗം';
$labels['unknown'] = 'അറിയാതàµà´¤';
$labels['unlimited'] = 'പരിമിതികളിലàµà´²à´¾à´¤àµà´¤';
+
$labels['quicksearch'] = 'പെടàµà´Ÿàµ†à´¨àµà´¨àµ തെരയàµ';
+$labels['resetsearch'] = 'Reset search';
+$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'à´®àµà´´àµà´µà´¨àµâ€ സനàµà´¦àµ‡à´¶à´µàµà´‚';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'à´ªàµà´¤à´¿à´¯ വിനàµâ€à´¡àµ‹à´¯à´¿à´²àµâ€ à´¤àµà´±à´•àµà´•àµà´•';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'à´ªàµà´¤à´¿à´¯à´¤à´¾à´¯à´¿ തിരàµà´¤àµà´¤àµà´•';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'സനàµà´¦àµ‡à´¶à´‚ അയയàµà´•àµà´•àµà´•';
$labels['savemessage'] = 'പൂരàµâ€à´¤àµà´¤à´¿à´¯à´¾à´•à´¾à´¤àµà´¤à´µ ആയി സൂകàµà´·à´¿à´•àµà´•àµà´•';
$labels['addattachment'] = 'ഒരൠഫയലàµâ€ മെയിലിനൊപàµà´ªà´‚ ചേരàµâ€à´•àµà´•àµà´•';
+$labels['charset'] = 'Charset';
$labels['editortype'] = 'തിരàµà´¤àµà´¤à´²àµâ€ രീതി';
+$labels['returnreceipt'] = 'Return receipt';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
$labels['originalmessage'] = 'യഥാരàµâ€à´¥ സനàµà´¦àµ‡à´¶à´‚';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'à´…à´•àµà´·à´°à´¤àµà´¤àµ†à´±àµà´±àµàµ പരിശോധികàµà´•àµà´•';
$labels['resumeediting'] = 'തിരàµà´¤àµà´¤à´²àµâ€ à´¤àµà´Ÿà´°àµà´•';
+$labels['revertto'] = 'Revert to';
+
$labels['attach'] = 'സംയോജിപàµà´ªà´¿à´•àµà´•àµ';
$labels['attachments'] = 'à´…à´±àµà´±à´¾à´šàµà´šàµà´®àµ†à´¨àµà´±àµà´•à´³àµâ€';
$labels['upload'] = 'à´…à´ªàµâ€Œà´²àµ‹à´¡àµ ചെയàµà´¯àµà´•';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'à´…à´Ÿà´¯àµà´•àµà´•àµà´•';
$labels['messageoptions'] = 'സനàµà´¦àµ‡à´¶ ​à´à´šàµà´›à´¿à´•à´™àµà´™à´³àµâ€...';
+
$labels['low'] = 'à´•àµà´±à´žàµà´ž';
$labels['lowest'] = 'à´à´±àµà´±à´µàµà´‚ à´•àµà´±à´žàµà´ž';
$labels['normal'] = 'സാധാരണ';
$labels['high'] = 'കൂടിയ';
$labels['highest'] = 'à´à´±àµà´±à´µàµà´‚ കൂടിയതàµ';
+
$labels['nosubject'] = '(വിഷയം ഇലàµà´²)';
$labels['showimages'] = 'à´šà´¿à´¤àµà´°à´™àµà´™à´³àµâ€ കാണികàµà´•àµà´•';
+$labels['alwaysshow'] = 'Always show images from $sender';
$labels['isdraft'] = 'ഇതൊരൠകരടàµà´°àµ‚പമാണàµ.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Plain text';
+$labels['savesentmessagein'] = 'Save sent message in';
$labels['dontsave'] = 'à´¸àµà´•àµà´·à´¿à´•àµà´•à´°àµà´¤àµ';
$labels['maxuploadsize'] = '$size ആണൠപരമാവധി ഫയലàµâ€ വലിപàµà´ªà´‚';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
+$labels['name'] = 'Display Name';
$labels['firstname'] = 'ആദàµà´¯ നാമം';
$labels['surname'] = 'അവസാന നാമം';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'ചെലàµà´²à´ªàµ‡à´°àµ';
$labels['jobtitle'] = 'ജോലിയàµà´Ÿàµ† പേരàµ';
$labels['department'] = 'വകàµà´ªàµà´ªàµ';
@@ -175,16 +289,19 @@ $labels['country'] = 'രാജàµà´¯à´‚';
$labels['birthday'] = 'പിറനàµà´¨à´¾à´³àµâ€';
$labels['anniversary'] = 'വാരàµâ€à´·à´¿à´•à´‚';
$labels['website'] = 'വെബàµà´¸àµˆà´±àµà´±àµ';
+$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'à´•àµà´±à´¿à´ªàµà´ªàµà´•à´³àµâ€';
$labels['male'] = 'à´ªàµà´°àµà´·à´¨àµâ€';
$labels['female'] = 'à´¸àµâ€Œà´¤àµà´°àµ€';
$labels['manager'] = 'പരിപാലകനàµâ€';
$labels['assistant'] = 'സഹായി';
$labels['spouse'] = 'ഭാരàµà´¯/à´­à´°àµâ€à´¤àµà´¤à´¾à´µàµ';
+$labels['allfields'] = 'All fields';
$labels['search'] = 'തെരയàµà´•';
$labels['advsearch'] = 'വിപàµà´²à´®à´¾à´¯ തിരചàµà´šà´¿à´²àµâ€';
$labels['advanced'] = 'സങàµà´•àµ€à´°àµâ€à´£àµà´£à´‚';
$labels['other'] = 'മറàµà´±àµà´³àµà´³à´¤àµ';
+
$labels['typehome'] = 'ആസàµà´¥à´¾à´¨à´‚';
$labels['typework'] = 'ജോലി';
$labels['typeother'] = 'മറàµà´±àµà´³àµà´³à´¤àµ';
@@ -199,7 +316,14 @@ $labels['typeassistant'] = 'സഹായി';
$labels['typehomepage'] = 'ഹോം പേജàµ';
$labels['typeblog'] = 'à´¬àµà´²àµ‹à´—àµ';
$labels['typeprofile'] = 'à´ªàµà´°àµŠà´«àµˆà´²àµâ€';
+
+$labels['addfield'] = 'Add field...';
+$labels['addcontact'] = 'Add new contact';
+$labels['editcontact'] = 'Edit contact';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'à´¸àµà´µà´•à´¾à´°àµà´¯ വിവരങàµà´™à´³àµâ€';
+
$labels['edit'] = 'തിരàµà´¤àµà´¤àµà´•';
$labels['cancel'] = 'റദàµà´¦à´¾à´•àµà´•àµà´•';
$labels['save'] = 'സൂകàµà´·à´¿à´•àµà´•àµà´•';
@@ -207,58 +331,196 @@ $labels['delete'] = 'നീകàµà´•à´‚ ചെയàµà´¯àµà´•';
$labels['rename'] = 'പേരàµà´®à´¾à´±àµà´±àµà´•';
$labels['addphoto'] = 'ചേരàµâ€à´•àµà´•àµà´•';
$labels['replacephoto'] = 'പകരം വയàµà´•àµà´•àµà´•';
+$labels['uploadphoto'] = 'Upload photo';
+
+$labels['newcontact'] = 'Create new contact card';
+$labels['deletecontact'] = 'Delete selected contacts';
+$labels['composeto'] = 'Compose mail to';
+$labels['contactsfromto'] = 'Contacts $from to $to of $count';
$labels['print'] = 'à´…à´šàµà´šà´Ÿà´¿';
$labels['export'] = 'à´ªàµà´±à´¤àµà´¤àµ†à´Ÿàµà´•àµà´•àµà´•';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
$labels['grouprename'] = 'à´•àµà´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പേരൠമാറàµà´±àµà´•';
$labels['groupdelete'] = 'കൂടàµà´Ÿà´‚ മായàµà´•àµà´•àµà´•';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'à´®àµà´®àµà´ªàµà´³à´³ താളàµâ€ കാണിയàµà´•àµà´•àµà´•';
+$labels['firstpage'] = 'Show first page';
+$labels['nextpage'] = 'Show next page';
+$labels['lastpage'] = 'Show last page';
+
$labels['group'] = 'കൂടàµà´Ÿà´‚';
$labels['groups'] = 'കൂടàµà´Ÿà´™àµà´™à´³àµâ€';
$labels['personaladrbook'] = 'à´¸àµà´µà´•à´¾à´°àµà´¯ വിലാസങàµà´™à´³àµâ€';
+
$labels['searchsave'] = 'തിരയലàµâ€ സൂകàµà´·à´¿à´•àµà´•àµà´•';
$labels['searchdelete'] = 'തിരയലàµâ€ നീകàµà´•à´‚ചെയàµà´¯àµà´•';
+
$labels['import'] = 'à´ªàµà´°àµ‹à´—àµà´°à´®àµà´®à´¿à´²àµ‡à´•àµà´•àµ à´Žà´Ÿàµà´•àµà´•àµà´•';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'പൂരàµâ€à´¤àµà´¤àµ€à´•à´°à´¿à´šàµà´šàµ';
+
+// settings
+$labels['settingsfor'] = 'Settings for';
$labels['about'] = 'വിവരം';
+$labels['preferences'] = 'Preferences';
$labels['userpreferences'] = 'ഉപയൊകàµà´¤ à´®àµà´¨àµâ€à´—ണനകളàµâ€';
+$labels['editpreferences'] = 'Edit user preferences';
+
+$labels['identities'] = 'Identities';
+$labels['manageidentities'] = 'Manage identities for this account';
+$labels['newidentity'] = 'New identity';
+
+$labels['newitem'] = 'New item';
+$labels['edititem'] = 'Edit item';
+
$labels['preferhtml'] = 'HTML കാണികàµà´•àµà´•';
+$labels['defaultcharset'] = 'Default Character Set';
+$labels['htmlmessage'] = 'HTML Message';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
+$labels['prettydate'] = 'Pretty dates';
+$labels['setdefault'] = 'Set default';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'ഭാഷ';
$labels['timezone'] = 'സമയ മേഖല';
$labels['pagesize'] = 'ഒരൠതാളിലെ വരികളàµâ€';
$labels['signature'] = 'à´’à´ªàµà´ªàµ';
+$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML സനàµà´¦àµ‡à´¶à´™àµà´™à´³àµâ€ à´°à´šà´¿à´•àµà´•àµà´•';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
+$labels['htmlsignature'] = 'HTML signature';
+$labels['showemail'] = 'Show email address with display name';
+$labels['previewpane'] = 'Show preview pane';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
$labels['serversettings'] = 'സേവകനàµà´±àµ† à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™à´³àµâ€';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
$labels['askuser'] = 'à´Žà´¨àµà´¨àµŠà´Ÿàµ ചോദികàµà´•àµà´•';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'അവഗണികàµà´•àµà´•';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
$labels['always'] = 'à´Žà´ªàµà´ªàµ‹à´´àµà´‚';
+$labels['showinlineimages'] = 'Display attached images below the message';
+$labels['autosavedraft'] = 'Automatically save draft';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'à´’à´°à´¿à´•àµà´•à´²àµà´®à´¿à´²àµà´²';
$labels['immediately'] = 'ഉടനടി';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
$labels['2231folding'] = 'Full RFC 2231 (തണàµà´Ÿà´°àµâ€à´¬àµ‡à´Ÿàµ )';
$labels['miscfolding'] = 'Full RFC 2231 ( മൈകàµà´°àµŠà´¸àµŠà´«àµà´±àµà´±àµ ഔടàµà´Ÿàµà´²àµ‚à´•àµà´•àµàµ )';
$labels['2047folding'] = 'Full RFC 2047 (മറàµà´±àµà´³àµà´³à´µ)';
$labels['force7bit'] = '8-bit à´…à´•àµà´·à´°à´™àµà´™à´³àµâ€à´•àµà´•àµ "MIME encoding" ഉപയോഗികàµà´•àµà´•';
$labels['advancedoptions'] = 'വിപàµà´²àµ€à´•àµà´°à´¿à´¤à´®à´¾à´¯ à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™à´³àµâ€';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
$labels['defaultfont'] = 'HTML സനàµà´¦àµ‡à´¶à´¤àµà´¤à´¿à´¨àµà´±àµ† തനതായ ലിപി';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'വിഭാഗം';
+$labels['maintenance'] = 'Maintenance';
$labels['newmessage'] = 'à´ªàµà´¤à´¿à´¯ സനàµà´¦àµ‡à´¶à´‚';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
$labels['newmessageonly'] = 'à´ªàµà´¤à´¿à´¯ സനàµà´¦àµ‡à´¶à´‚ മാതàµà´°à´‚';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
$labels['afternseconds'] = '$n നിമിഷങàµà´™à´³àµâ€ à´•à´´à´¿à´žàµà´žàµàµ';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
$labels['spellcheckignorenums'] = 'à´…à´•àµà´•à´™àµà´™à´³àµâ€ ഉളàµà´³ വാകàµà´•àµà´•à´³àµ† അവഗണികàµà´•àµà´•';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'നിഘണàµà´Ÿàµà´µà´¿à´²àµâ€ ചേരàµâ€à´•àµà´•àµà´•';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
+$labels['folder'] = 'Folder';
$labels['folders'] = 'ഫോളàµâ€à´¡à´±àµà´•à´³àµâ€';
+$labels['foldername'] = 'Folder name';
+$labels['subscribed'] = 'Subscribed';
+$labels['messagecount'] = 'Messages';
+$labels['create'] = 'Create';
+$labels['createfolder'] = 'Create new folder';
+$labels['managefolders'] = 'Manage folders';
+$labels['specialfolders'] = 'Special Folders';
$labels['properties'] = 'സവിശേഷതകളàµâ€';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
$labels['info'] = 'വിവരം';
$labels['getfoldersize'] = 'അറയàµà´Ÿàµ† വലàµà´ªàµà´ªà´‚ അരിയാനàµâ€ à´•àµà´²à´¿à´•àµà´•àµ ചെയàµà´¯àµà´•';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
$labels['personalfolder'] = 'à´¸àµà´µà´•à´¾à´°àµà´¯ à´…à´±';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'പൊതൠ- അറ';
+
+$labels['sortby'] = 'Sort by';
+$labels['sortasc'] = 'Sort ascending';
+$labels['sortdesc'] = 'Sort descending';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
$labels['support'] = 'സഹായം തേടàµà´•';
+
+// units
+$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'യൂണികàµà´•àµ‹à´¡àµ';
$labels['english'] = 'ഇംഗàµà´²àµ€à´·àµ';
$labels['westerneuropean'] = 'പടിഞàµà´žà´¾à´±à´¨àµâ€ യൂറോപàµà´¯à´¨àµâ€';
$labels['easterneuropean'] = 'à´•à´¿à´´à´•àµà´•à´¨àµâ€ യൂറോപàµà´¯à´¨àµâ€';
+$labels['southeasterneuropean'] = 'South-Eastern European';
$labels['baltic'] = 'ബാളàµâ€à´Ÿàµà´Ÿà´¿à´•àµà´•àµ';
$labels['cyrillic'] = 'സിറിലàµà´²à´¿à´•àµà´•àµ';
$labels['arabic'] = 'അറബികàµà´•àµ';
@@ -272,4 +534,5 @@ $labels['vietnamese'] = 'വിയറàµà´±àµà´¨à´¾à´®àµ€à´¸àµ';
$labels['japanese'] = 'ജാപàµà´ªà´¨àµ€à´¸àµ';
$labels['korean'] = 'കൊറിയനàµâ€';
$labels['chinese'] = 'ചൈനീസàµâ€Œ';
+
?>
diff --git a/program/localization/ml_IN/messages.inc b/program/localization/ml_IN/messages.inc
index 9abaeda99..28eb22be2 100644
--- a/program/localization/ml_IN/messages.inc
+++ b/program/localization/ml_IN/messages.inc
@@ -15,13 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'Login failed.';
$messages['cookiesdisabled'] = 'തങàµà´•à´³àµà´Ÿàµ† à´¬àµà´°à´µàµàµà´¸à´°àµâ€ à´•àµà´•àµà´•àµ€à´¸àµ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´²àµà´²';
+$messages['sessionerror'] = 'Your session is invalid or expired.';
+$messages['storageerror'] = 'Connection to storage server failed.';
$messages['servererror'] = 'സരàµâ€à´µà´°àµâ€ പിഴവൠ!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
$messages['errornoperm'] = 'à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚ തടസപàµà´ªàµ†à´Ÿàµà´Ÿàµ . à´…à´¨àµà´®à´¤à´¿ നിഷേധികàµà´•à´ªàµ†à´Ÿàµà´Ÿà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'അസാധàµà´µà´¾à´¯ അപേകàµà´· ! ഒരൠരേഖയàµà´‚ സൂകàµà´·à´¿à´šàµà´šà´¿à´Ÿàµà´Ÿà´¿à´²àµà´²';
+$messages['invalidhost'] = 'Invalid server name.';
+$messages['nomessagesfound'] = 'No messages found in this mailbox.';
+$messages['loggedout'] = 'You have successfully terminated the session. Good bye!';
+$messages['mailboxempty'] = 'Mailbox is empty.';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'à´¤àµà´±à´•àµà´•àµà´¨àµà´¨àµ...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
+$messages['loadingdata'] = 'Loading data...';
$messages['checkingmail'] = 'à´ªàµà´¤à´¿à´¯ സനàµà´¦àµ‡à´¸à´™àµà´™à´³àµâ€à´•àµà´µàµ‡à´£àµà´Ÿà´¿ തിരയàµà´¨àµà´¨àµ...';
$messages['sendingmessage'] = 'സനàµà´¦àµ‡à´¶à´‚ അയകàµà´•àµà´¨àµà´¨àµ...';
+$messages['messagesent'] = 'Message sent successfully.';
+$messages['savingmessage'] = 'Saving message...';
+$messages['messagesaved'] = 'Message saved to Drafts.';
+$messages['successfullysaved'] = 'Successfully saved.';
+$messages['addedsuccessfully'] = 'Contact added successfully to address book.';
+$messages['contactexists'] = 'A contact with the same e-mail address already exists.';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
+$messages['blockedimages'] = 'To protect your privacy, remote images are blocked in this message.';
+$messages['encryptedmessage'] = 'This is an encrypted message and can not be displayed. Sorry!';
+$messages['nocontactsfound'] = 'No contacts found.';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'സനàµà´¦àµ‡à´¶à´‚ അയകàµà´•à´¾à´¨àµâ€ സാധിചàµà´šà´¿à´²àµà´².';
$messages['senttooquickly'] = 'സനàµà´¦àµ‡à´¶à´‚ അയകàµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ à´®àµà´¨àµà´ªàµ ദയവായൠ$sec കാതàµà´¤à´¿à´°à´¿à´•àµà´•àµ‚';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'An error occured while saving.';
+$messages['errormoving'] = 'Could not move the message(s).';
+$messages['errorcopying'] = 'Could not copy the message(s).';
+$messages['errordeleting'] = 'Could not delete the message(s).';
+$messages['errormarking'] = 'Could not mark the message(s).';
+$messages['deletecontactconfirm'] = 'Do you really want to delete selected contact(s)?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
+$messages['deletemessagesconfirm'] = 'Do you really want to delete selected message(s)?';
+$messages['deletefolderconfirm'] = 'Do you really want to delete this folder?';
+$messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
+$messages['formincomplete'] = 'The form was not completely filled out.';
+$messages['noemailwarning'] = 'Please enter a valid email address.';
+$messages['nonamewarning'] = 'Please enter a name.';
+$messages['nopagesizewarning'] = 'Please enter a page size.';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
+$messages['norecipientwarning'] = 'Please enter at least one recipient.';
+$messages['nosubjectwarning'] = 'The "Subject" field is empty. Would you like to enter one now?';
+$messages['nobodywarning'] = 'Send this message without text?';
+$messages['notsentwarning'] = 'Message has not been sent. Do you want to discard your message?';
+$messages['noldapserver'] = 'Please select an ldap server to search.';
+$messages['nosearchname'] = 'Please enter a contact name or email address.';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
+$messages['searchsuccessful'] = '$nr messages found.';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
+$messages['searchnomatch'] = 'Search returned no matches.';
+$messages['searching'] = 'Searching...';
+$messages['checking'] = 'Checking...';
+$messages['nospellerrors'] = 'No spelling errors found.';
+$messages['folderdeleted'] = 'Folder successfully deleted.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
+$messages['deletedsuccessfully'] = 'Successfully deleted.';
+$messages['converting'] = 'Removing formatting...';
+$messages['messageopenerror'] = 'Could not load message from server.';
+$messages['fileuploaderror'] = 'File upload failed.';
+$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/mr_IN/labels.inc b/program/localization/mr_IN/labels.inc
index 9eb878782..02b129e0b 100644
--- a/program/localization/mr_IN/labels.inc
+++ b/program/localization/mr_IN/labels.inc
@@ -15,43 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product वरती सà¥à¤µà¤¾à¤—त आहे';
$labels['username'] = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ नाव(तà¥à¤®à¤šà¥‡ इमेल)';
$labels['password'] = 'परवलीचा शबà¥à¤¦';
$labels['server'] = 'सरà¥à¤µà¥à¤¹à¤°';
$labels['login'] = 'पà¥à¤°à¤µà¥‡à¤¶';
+
+// taskbar
$labels['logout'] = 'बाहेर जा';
$labels['mail'] = 'इ-मेल';
$labels['settings'] = 'तà¥à¤®à¤šà¥€ पसंती';
$labels['addressbook'] = 'पतà¥à¤¤à¤¾ नोंदवही';
+
+// mailbox names
$labels['inbox'] = 'आलेले संदेश';
$labels['drafts'] = 'मसà¥à¤¦à¤¾';
$labels['sent'] = 'पाठवलेले';
$labels['trash'] = 'कचरा पेटी';
$labels['junk'] = 'नको असलेले कचरा संदेश';
+
+// message listing
$labels['subject'] = 'विषय';
$labels['from'] = 'पà¥à¤°à¥‡à¤·à¤•';
+$labels['sender'] = 'Sender';
$labels['to'] = 'पà¥à¤°à¤¤à¥€';
$labels['cc'] = 'पà¥à¤°à¤¤';
$labels['bcc'] = 'गà¥à¤ªà¥à¤¤ पà¥à¤°à¤¤';
$labels['replyto'] = 'यास उतà¥à¤¤à¤° दà¥à¤¯à¤¾';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'दिनांक';
$labels['size'] = 'आकार';
$labels['priority'] = 'पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯';
$labels['organization'] = 'संसà¥à¤¥à¤¾';
$labels['readstatus'] = 'वाचन सà¥à¤¥à¤¿à¤¤à¥€';
$labels['listoptions'] = 'विकलà¥à¤ª सूची';
+
$labels['mailboxlist'] = 'फोलà¥à¤¡à¤°à¥à¤¸';
$labels['messagesfromto'] = 'संदेश $from कडून $to साठी $count वा';
$labels['threadsfromto'] = 'धागे $from कडून $to साठी $count वा';
$labels['messagenrof'] = 'Message $nr of $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'नकà¥â€à¤•à¤²';
$labels['move'] = 'हलवा';
$labels['moveto'] = 'या फोलà¥à¤¡à¤°à¤®à¤§à¥‡ ठेवा';
$labels['download'] = 'उतरवून घà¥à¤¯à¤¾';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'फाईलचे नाव';
$labels['filesize'] = 'फाईलचा आकार';
+
$labels['addtoaddressbook'] = 'पतà¥à¤¤à¤¾ नोंदवहीत नोंदवा';
+
+// weekdays short
$labels['sun'] = 'रवी';
$labels['mon'] = 'सोम';
$labels['tue'] = 'मंगळ';
@@ -59,6 +81,8 @@ $labels['wed'] = 'बà¥à¤§';
$labels['thu'] = 'गà¥à¤°à¥';
$labels['fri'] = 'शà¥à¤•à¥à¤°';
$labels['sat'] = 'शनी';
+
+// weekdays long
$labels['sunday'] = 'रविवार';
$labels['monday'] = 'सोमवार';
$labels['tuesday'] = 'मंगळवार';
@@ -66,6 +90,8 @@ $labels['wednesday'] = 'बà¥à¤§à¤µà¤¾à¤°';
$labels['thursday'] = 'गà¥à¤°à¥à¤µà¤¾à¤°';
$labels['friday'] = 'शà¥à¤•à¥à¤°à¤µà¤¾à¤°';
$labels['saturday'] = 'शनीवार';
+
+// months short
$labels['jan'] = 'जाने';
$labels['feb'] = 'फेबà¥';
$labels['mar'] = 'मारà¥à¤š';
@@ -78,6 +104,8 @@ $labels['sep'] = 'सपà¥à¤Ÿà¥‡à¤‚';
$labels['oct'] = 'ऑकà¥à¤Ÿà¥‹';
$labels['nov'] = 'नोवà¥à¤¹à¥‡à¤‚';
$labels['dec'] = 'डिसें';
+
+// months long
$labels['longjan'] = 'जानेवारी';
$labels['longfeb'] = 'फेबà¥à¤°à¥‚वारी';
$labels['longmar'] = 'मारà¥à¤š';
@@ -90,7 +118,10 @@ $labels['longsep'] = 'सपà¥à¤Ÿà¥‡à¤‚बर';
$labels['longoct'] = 'ऑकà¥à¤Ÿà¥‹à¤¬à¤°';
$labels['longnov'] = 'नोवà¥à¤¹à¥‡à¤‚बर';
$labels['longdec'] = 'डिसेंबर';
+
$labels['today'] = 'आज';
+
+// toolbar buttons
$labels['refresh'] = 'अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करा';
$labels['checkmail'] = 'नवीन संदेश आले आहेत का पहा';
$labels['compose'] = 'नवीन संदेश तयार करा';
@@ -99,6 +130,10 @@ $labels['reply'] = 'उतà¥à¤¤à¤° दया';
$labels['replytomessage'] = 'पाठवणारà¥â€à¤¯à¤¾à¤²à¤¾ उतà¥à¤¤à¤° दà¥à¤¯à¤¾';
$labels['replytoallmessage'] = 'पाठवणारà¥â€à¤¯à¤¾à¤²à¤¾ आणि पà¥à¤°à¤¤ केलेलà¥à¤¯à¤¾ सरà¥à¤µà¤¾à¤‚ना संदेश पाठवा';
$labels['replyall'] = 'सरà¥à¤µà¤¾à¤‚ना उतà¥à¤¤à¤° दया';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'हा संदेश पà¥à¤¢à¥‡ पाठवा';
$labels['deletemessage'] = 'संदेश काढून टाका';
$labels['movemessagetotrash'] = 'संदेश कचरापेटीत टाका';
@@ -119,6 +154,7 @@ $labels['moreactions'] = 'अधिक कृती..';
$labels['more'] = 'अधिक';
$labels['back'] = 'मागे';
$labels['options'] = 'परà¥à¤¯à¤¾à¤¯';
+
$labels['select'] = 'निवडा';
$labels['all'] = 'सरà¥à¤µ';
$labels['none'] = 'कोणताही नाही';
@@ -126,7 +162,9 @@ $labels['currpage'] = 'सधà¥â€à¤¯à¤¾à¤šà¥‡ पान';
$labels['unread'] = 'न वाचलेले';
$labels['flagged'] = 'खूण लावलेले';
$labels['unanswered'] = 'उतà¥à¤¤à¤° न दिलेले';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'काढून टाकलेला(ले)';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'उलट करा';
$labels['filter'] = 'गाळणी';
$labels['list'] = 'यादी';
@@ -135,6 +173,7 @@ $labels['expand-all'] = 'सरà¥à¤µ विसà¥â€à¤¤à¤¾à¤°à¥€à¤¤ करा';
$labels['expand-unread'] = 'न वाचलेला विसà¥â€à¤¤à¤¾à¤°à¤¾';
$labels['collapse-all'] = 'सरà¥à¤µ मिटवा';
$labels['threaded'] = 'धागा लावलेला';
+
$labels['autoexpand_threads'] = 'संदेश धागे विसà¥â€à¤¤à¤¾à¤°à¤¾';
$labels['do_expand'] = 'सरà¥à¤µ धागे';
$labels['expand_only_unread'] = 'फकà¥â€à¤¤ न वाचलेलà¥â€à¤¯à¤¾ संदेशांबददल';
@@ -150,19 +189,29 @@ $labels['listcolumns'] = 'सà¥à¤šà¥€ सà¥â€à¤¤à¤‚भ';
$labels['listsorting'] = 'सà¥â€à¤¤à¤‚भ वरà¥à¤—ीकरण';
$labels['listorder'] = 'वरà¥à¤—ीकरण कà¥à¤°à¤®';
$labels['listmode'] = 'यादी दरà¥à¤¶à¤• पधà¥â€à¤¦à¤¤';
+
$labels['folderactions'] = 'फोलà¥à¤¡à¤° कृती..';
$labels['compact'] = 'छोटा';
$labels['empty'] = 'रिकामा';
+
$labels['quota'] = 'डिसà¥à¤•à¤šà¤¾ वापर';
$labels['unknown'] = 'माहित नसलेला';
$labels['unlimited'] = 'अमरà¥à¤¯à¤¾à¤¦';
+
$labels['quicksearch'] = 'चटकन शोध';
$labels['resetsearch'] = 'परत शोध';
$labels['searchmod'] = 'बदलकरà¥à¤¤à¥â€à¤¯à¤¾à¤‚ना शोधा';
$labels['msgtext'] = 'संपूरà¥à¤£ संदेश';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'नवीन खिडकी उघडा';
$labels['emlsave'] = 'इà¤à¤®à¤à¤² सà¥â€à¤µà¤°à¥‚पात उतरवून घà¥à¤¯à¤¾';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'नवीन आहे असा संपादित करा';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'आतà¥à¤¤à¤¾ पाठवा';
$labels['savemessage'] = 'हा मसूदा साठवून ठेवा';
$labels['addattachment'] = 'फाईल सोबत जोडा';
@@ -172,75 +221,109 @@ $labels['returnreceipt'] = 'पोच पावती';
$labels['dsn'] = 'पोच सà¥à¤¥à¤¿à¤¤à¥€ निरà¥à¤¦à¥‡à¤¶à¤•';
$labels['mailreplyintro'] = '$date या दिवशी $sender ने लिहीले :';
$labels['originalmessage'] = 'खरा संदेश';
+
$labels['editidents'] = 'ओळख संपादित करा';
$labels['spellcheck'] = 'लिखाण';
$labels['checkspelling'] = 'शà¥à¤§à¥à¤¦ लेखन';
$labels['resumeediting'] = 'परत संदेश संपादित करा';
$labels['revertto'] = 'परत जा';
+
$labels['attach'] = 'जोडा';
$labels['attachments'] = 'जोडलेलà¥à¤¯à¤¾';
$labels['upload'] = 'चढवा';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'बंद';
$labels['messageoptions'] = 'संदेश परà¥à¤¯à¤¾à¤¯..';
+
$labels['low'] = 'कमी';
$labels['lowest'] = 'कमित कमी';
$labels['normal'] = 'नेहमी पà¥à¤°à¤®à¤¾à¤£à¥‡';
$labels['high'] = 'तातडीचे';
$labels['highest'] = 'अतिशय तातडीचे';
+
$labels['nosubject'] = '(विषय नाही)';
$labels['showimages'] = 'चितà¥à¤° दाखवा';
$labels['alwaysshow'] = '$sender कडून आलेलà¥à¤¯à¤¾ संदेशातील चितà¥à¤°à¥‡ नेहमी दाखवा';
$labels['isdraft'] = 'हा मसà¥à¤¦à¤¾ संदेश आहे';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'à¤à¤š टी à¤à¤® à¤à¤²';
$labels['plaintoggle'] = 'साधे लिखाण';
$labels['savesentmessagein'] = 'पाठवलेला संदेश या फोलà¥à¤¡à¤°à¤®à¤§à¥‡ ठेवा';
$labels['dontsave'] = 'संदेश साठवू नका';
$labels['maxuploadsize'] = 'जासà¥â€à¤¤à¥€à¤¤ जासà¥â€à¤¤ फाइलचा आकार $size असू शकतो';
+
$labels['addcc'] = 'पà¥à¤°à¤¤ करा';
$labels['addbcc'] = 'गà¥à¤ªà¥à¤¤ पà¥à¤°à¤¤ करा';
$labels['addreplyto'] = 'आणखी लोकांना संदेश पाठवा';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'हा संदेश पाठवणारà¥â€à¤¯à¤¾à¤¨à¥‡ हा संदेश तà¥à¤®à¥à¤¹à¥€ वाचलà¥à¤¯à¤¾à¤µà¤° कळवावयाला सांगितले आहे. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ असे कळवणे चालेल ना?';
$labels['receiptread'] = 'पोच पावती (संदेश वाचला)';
$labels['yourmessage'] = 'ही तà¥à¤®à¤šà¥à¤¯à¤¾ संदेशाची पोच पावती आहे.';
$labels['receiptnote'] = 'सूचना: ही पोच पावती तà¥à¤®à¥à¤¹à¥€ जà¥à¤¯à¤¾à¤‚ना संदेश पाठवला तà¥à¤¯à¤¾à¤‚चà¥à¤¯à¤¾ संगणकावर दिसला à¤à¤µà¤¢à¥‡à¤š सांगते. तà¥à¤®à¥à¤¹à¥€ जà¥à¤¯à¤¾à¤‚ना हा संदेश पाठवला, तà¥à¤¯à¤¾à¤‚नी तो वाचला, आणि तà¥à¤¯à¤¾à¤‚ना तो नकà¥à¤•à¥€ समजला हे मातà¥à¤° सांगत नाही.';
+
+// address boook
$labels['name'] = 'टोपणनाव';
$labels['firstname'] = 'नाव';
$labels['surname'] = 'आडनाव';
$labels['middlename'] = 'मधले नाव';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'टोपणनाव';
$labels['jobtitle'] = 'कामाचे शिरà¥à¤·à¤•';
$labels['department'] = 'विभाग';
$labels['gender'] = 'लिंग';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'इ-मेलà¥';
$labels['phone'] = 'दूरधà¥à¤µà¤¨à¥€';
$labels['address'] = 'पतà¥à¤¤à¤¾';
$labels['street'] = 'रसà¥à¤¤à¤¾';
$labels['locality'] = 'शहर';
+$labels['zipcode'] = 'ZIP Code';
$labels['region'] = 'राजà¥à¤¯ / संसà¥à¤¥à¤¾à¤¨';
$labels['country'] = 'देश';
$labels['birthday'] = 'वाढदिवस';
+$labels['anniversary'] = 'Anniversary';
$labels['website'] = 'संकेतसà¥à¤¥à¤³';
+$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'टिपा';
$labels['male'] = 'पà¥à¤°à¥‚ष';
$labels['female'] = 'सà¥à¤¤à¥à¤°à¥€';
$labels['manager'] = 'वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
$labels['assistant'] = 'सहायà¥à¤¯à¤•';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
$labels['search'] = 'शोध';
$labels['advsearch'] = 'पà¥à¤°à¤—त शोध';
$labels['advanced'] = 'आधà¥à¤¨à¤¿à¤•';
$labels['other'] = 'इतर';
+
$labels['typehome'] = 'मà¥à¤–à¥à¤¯à¤ªà¥ƒà¤·à¥à¤ ';
$labels['typework'] = 'काम';
$labels['typeother'] = 'इतर';
$labels['typemobile'] = 'भà¥à¤°à¤®à¤£à¤§à¥à¤µà¤¨à¥€';
$labels['typemain'] = 'मà¥à¤–à¥à¤¯';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
$labels['typevideo'] = 'चलचितà¥à¤°';
$labels['typeassistant'] = 'सहायà¥à¤¯à¤•';
$labels['typehomepage'] = 'मà¥à¤–à¥à¤¯ पृषà¥à¤ ';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'नवीन पतà¥à¤¤à¤¾ नोंदवहीत ठेवा';
$labels['editcontact'] = 'नोंदवहीतील पतà¥à¤¤à¤¾ सà¥à¤§à¤¾à¤°à¤¾';
$labels['contacts'] = 'संपरà¥à¤•';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'वैयकà¥à¤¤à¤¿à¤• माहिती';
+
$labels['edit'] = 'संदेश तयार करा';
$labels['cancel'] = 'रदà¥à¤¦ करा';
$labels['save'] = 'ठेवून दà¥à¤¯à¤¾';
@@ -248,42 +331,63 @@ $labels['delete'] = 'काढून टाका';
$labels['rename'] = 'दूसरे नाव दà¥à¤¯à¤¾';
$labels['addphoto'] = 'समावेश करा';
$labels['replacephoto'] = 'बदला';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'नोंदवहीत नवीन संपरà¥à¤• लिहिणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€';
$labels['deletecontact'] = 'खूण केलेले सरà¥à¤µ संपरà¥à¤•à¤¾à¤šà¥‡ पतà¥à¤¤à¥‡ काढून टाका';
$labels['composeto'] = 'साठी नवीन संदेश तयार करा';
$labels['contactsfromto'] = '$from पासून ते $to परà¥à¤¯à¤‚त $count पैकी';
$labels['print'] = 'छापा';
$labels['export'] = 'निरà¥à¤¯à¤¾à¤¤ करा';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'वà¥à¤¹à¥€ कारà¥à¤¡ सà¥à¤µà¤°à¥à¤ªà¤¾à¤¤ पतà¥à¤¤à¥‡ निरà¥à¤¯à¤¾à¤¤ करा';
$labels['newcontactgroup'] = 'नवीन पतà¥â€à¤¤à¥â€à¤¯à¤¾à¤‚चा गट बनवा';
+$labels['grouprename'] = 'Rename group';
$labels['groupdelete'] = 'गट नषà¥à¤Ÿ करा';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'आधिचा संच दाखवा';
$labels['firstpage'] = 'पहिला संच दाखवा';
$labels['nextpage'] = 'नंतरचा संच दाखवा';
$labels['lastpage'] = 'शेवटचा संच दाखवा';
+
$labels['group'] = 'गट';
$labels['groups'] = 'अनेक गट';
$labels['personaladrbook'] = 'वैयकà¥à¤¤à¤¿à¤• पतà¥à¤¤à¥‡';
+
$labels['searchsave'] = 'शोध जतन करा';
$labels['searchdelete'] = 'शोध नषà¥à¤Ÿ करा';
+
$labels['import'] = 'आयात करा';
$labels['importcontacts'] = 'पतà¥à¤¤à¥‡ आयात करा';
$labels['importfromfile'] = 'या फाईल मधून आयात करा';
+$labels['importtarget'] = 'नवीन पतà¥à¤¤à¤¾ नोंदवहीत नोंदवा';
$labels['importreplace'] = 'संपूरà¥à¤£ पतà¥à¤¤à¤¾ नोंदवही बदला';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'à¤à¤¾à¤²à¥‡';
+
+// settings
$labels['settingsfor'] = 'साठी सेटिंगà¥à¤œ';
$labels['about'] = 'चà¥à¤¯à¤¾ विषयी';
$labels['preferences'] = 'तà¥à¤®à¤šà¥€ पसंती';
$labels['userpreferences'] = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ पसंती';
$labels['editpreferences'] = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ पसंती सà¥à¤§à¤¾à¤°à¤¾';
+
$labels['identities'] = 'ओळख';
$labels['manageidentities'] = 'या खातà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ ओळखींचे नियोजन करा';
$labels['newidentity'] = 'नवीन ओळख';
+
$labels['newitem'] = 'नवीन पà¥à¤°à¤•à¤¾à¤°';
$labels['edititem'] = 'पà¥à¤°à¤•à¤¾à¤° सà¥à¤§à¤¾à¤°à¤¾';
+
$labels['preferhtml'] = 'à¤à¤š टी à¤à¤® à¤à¤² दाखवा';
$labels['defaultcharset'] = 'नेहमीचा अकà¥à¤·à¤° संच';
$labels['htmlmessage'] = 'à¤à¤š टी à¤à¤® à¤à¤² संदेश';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'विशेष दिवस';
$labels['setdefault'] = 'हा नेहमीसाठी वापरा';
$labels['autodetect'] = 'सà¥à¤µà¤¯à¤‚चलित';
@@ -292,8 +396,13 @@ $labels['timezone'] = 'वेळ कà¥à¤·à¥‡à¤¤à¥à¤°';
$labels['pagesize'] = 'पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• पानावरील ओळी';
$labels['signature'] = 'सही';
$labels['dstactive'] = 'दिवसाची वेळ';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'à¤à¤š टी à¤à¤® à¤à¤² संदेश तयारा करा';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'à¤à¤š टी à¤à¤® à¤à¤² सही';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾à¤ªà¥‚रà¥à¤µ तावदान दाखवा';
$labels['skin'] = 'दृषà¥à¤¯ गोषà¥à¤Ÿà¥€';
$labels['logoutclear'] = 'खातà¥à¤¯à¤¾à¤¤à¥‚न बाहेर पडतांना कचरा पेटी साफ करा';
@@ -304,17 +413,21 @@ $labels['mailboxview'] = 'टपालपेटी पहाणे';
$labels['mdnrequests'] = 'पाठवणारà¥â€à¤¯à¤¾à¤šà¥à¤¯à¤¾ सूचना';
$labels['askuser'] = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤²à¤¾ विचारा';
$labels['autosend'] = 'सà¥à¤µà¤¯à¤‚चलित (आपोआप पाठवणे)';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'दà¥à¤°à¥à¤²à¤•à¥à¤· करा';
$labels['readwhendeleted'] = 'काढून टाकलà¥à¤¯à¤¾à¤µà¤° संदेश वाचला असे दाखवा';
$labels['flagfordeletion'] = 'संदेश काढून टाकणà¥à¤¯à¤¾ ऎवजी संदेश काढून टाकणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आहे अशी खूण करा';
$labels['skipdeleted'] = 'काढून टाकलेले संदेश दाखवू नका';
$labels['deletealways'] = 'जर संदेश कचरापेटीत गेले नाहीत तर काढून टाका';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'संदेशातील चितà¥à¤°à¥‡ दाखवा';
$labels['fromknownsenders'] = 'माहितीतील पाठवणारà¥â€à¤¯à¤¾à¤•à¤¡à¥‚न संदेश';
$labels['always'] = 'नेहमी';
$labels['showinlineimages'] = 'सोबत जोडलेली चितà¥à¤°à¥‡ संदेशाचà¥à¤¯à¤¾ खाली दाखवा';
$labels['autosavedraft'] = 'मसूदा आपोआप जतन करा';
$labels['everynminutes'] = 'पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• $n मिनिटांनी';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'कधीच नाही';
$labels['immediately'] = 'ताबडतोब';
$labels['messagesdisplaying'] = 'संदेश दाखवा';
@@ -328,12 +441,15 @@ $labels['advancedoptions'] = 'अधिक परà¥à¤¯à¤¾à¤¯';
$labels['focusonnewmessage'] = 'बà¥à¤°à¤¾à¤Šà¤à¤° खिडकी नवीन संदेशावर केंदà¥à¤°à¤¿à¤¤ करा';
$labels['checkallfolders'] = 'सरà¥à¤µ फोलà¥à¤¡à¤°à¤®à¤§à¥‡ नवीन संदेश शोधा';
$labels['displaynext'] = 'संदेश काढलà¥â€à¤¯à¤¾à¤¨à¤‚तर किंवा हलवलà¥â€à¤¯à¤¾à¤¨à¤‚तर पà¥à¤¢à¤šà¤¾ संदेश दाखवा';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'मà¥à¤–à¥â€à¤¯ परà¥à¤¯à¤¾à¤¯';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'भाग';
$labels['maintenance'] = 'देखभाल';
$labels['newmessage'] = 'नवीन संदेश';
$labels['signatureoptions'] = 'सही परà¥à¤¯à¤¾à¤¯';
$labels['whenreplying'] = 'उतà¥â€à¤¤à¤° देताना';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'नवीन संदेश मà¥à¤³ संदेशाचà¥â€à¤¯à¤¾ वर चालू करा';
$labels['replybottomposting'] = 'नवीन संदेश मà¥à¤³ संदेशाचà¥â€à¤¯à¤¾ खाली चालू करा';
$labels['replyremovesignature'] = 'उतà¥â€à¤¤à¤° देताना मà¥à¤³ सही संदेशातून काढून टाका';
@@ -345,6 +461,21 @@ $labels['previewpanemarkread'] = 'पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ संदेश à
$labels['afternseconds'] = '$n कà¥à¤·à¤£à¤¾à¤¨à¤‚तर';
$labels['reqmdn'] = 'नेहमी पोचपावतीची विनंती करा';
$labels['reqdsn'] = 'नेहमी पोचपावती सà¥à¤¥à¤¿à¤¤à¥€ निरà¥à¤¦à¥‡à¤¶à¤¾à¤šà¥€ विनंती करा';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'फोलà¥à¤¡à¤°';
$labels['folders'] = 'फोलà¥à¤¡à¤°à¥à¤¸';
$labels['foldername'] = 'फोलà¥à¤¡à¤°à¤šà¥‡ नाव';
@@ -354,13 +485,37 @@ $labels['create'] = 'तयार करा';
$labels['createfolder'] = 'नवीन फोलà¥à¤¡à¤° तयार करा';
$labels['managefolders'] = 'फोलà¥à¤¡à¤°à¥à¤¸à¤šà¥‡ नियोजन करा';
$labels['specialfolders'] = 'विषेश फोलà¥à¤¡à¤°';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'ने वरà¥à¤—वारी करा';
$labels['sortasc'] = 'चढतà¥à¤¯à¤¾ कà¥à¤°à¤®à¤¾à¤¨à¥‡';
$labels['sortdesc'] = 'उतरतà¥à¤¯à¤¾ कà¥à¤°à¤®à¤¾à¤¨à¥‡';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'बाइट';
$labels['KB'] = 'केबी';
$labels['MB'] = 'à¤à¤®à¤¬à¥€';
$labels['GB'] = 'जीबी';
+
+// character sets
$labels['unicode'] = 'यà¥à¤¨à¤¿à¤•à¥‹à¤¡';
$labels['english'] = 'इंगà¥à¤°à¤œà¥€';
$labels['westerneuropean'] = 'पशà¥à¤šà¤¿à¤® यà¥à¤°à¥‹à¤ªà¤¿à¤¯à¤¨';
@@ -379,4 +534,5 @@ $labels['vietnamese'] = 'वà¥à¤¹à¤¿à¤à¤¤à¤¨à¤¾à¤®à¥€';
$labels['japanese'] = 'जपानी';
$labels['korean'] = 'कोरियन';
$labels['chinese'] = 'चिनी';
+
?>
diff --git a/program/localization/mr_IN/messages.inc b/program/localization/mr_IN/messages.inc
index 36eb8dc04..bc4097fb5 100644
--- a/program/localization/mr_IN/messages.inc
+++ b/program/localization/mr_IN/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'काहीतरी चूक à¤à¤¾à¤²à¥€';
$messages['loginfailed'] = 'पà¥à¤°à¤µà¥‡à¤¶ करता आला नाही';
$messages['cookiesdisabled'] = 'तà¥à¤®à¤šà¤¾ बà¥à¤°à¤¾à¤Šà¤à¤° कà¥à¤•à¥€à¤œ घेऊ शकत नाही';
@@ -23,14 +25,20 @@ $messages['storageerror'] = 'आयमॅप सरà¥à¤µà¥à¤¹à¤°à¤¶à¥€ संà
$messages['servererror'] = 'सरà¥à¤µà¥â€à¤¹à¤° चूक !';
$messages['servererrormsg'] = 'सरà¥à¤µà¥à¤¹à¤° चूक : $msg';
$messages['dberror'] = 'माहितीसाठा चूक !';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'कृती करणà¥à¤¯à¤¾à¤¸ असमरà¥à¤¥, फोलà¥à¤¡à¤° फकà¥à¤¤ बघणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€';
$messages['errornoperm'] = 'कृती करणà¥à¤¯à¤¾à¤¸ असमरà¥à¤¥, परवानगी अमानà¥à¤¯';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'अवैध विनंती! माहिती साठवलेली नाही.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'या खातà¥à¤¯à¤¾à¤®à¤§à¥‡ कोणताही संदेश आलेला नाही';
$messages['loggedout'] = 'तà¥à¤®à¥à¤¹à¥€ यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ खाते बंद केले आहे . राम राम !';
$messages['mailboxempty'] = 'खातà¥à¤¯à¤¾à¤¤ कोणताही संदेश नाही';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'संदेश आणत आहे';
$messages['uploading'] = 'फाईल चढवली जात आहे...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'माहिती आणत आहे';
$messages['checkingmail'] = 'नवीन संदेश आले आहेत का हे पहात आहे';
$messages['sendingmessage'] = 'संदेश पाठवत आहे';
@@ -45,8 +53,11 @@ $messages['blockedimages'] = 'तà¥à¤®à¤šà¥€ गोपनीयता पाळ
$messages['encryptedmessage'] = 'हा गà¥à¤ªà¥à¤¤ व सांकेतिक संदेश आहे. तो तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ असा दाखवता येणार नाही.';
$messages['nocontactsfound'] = 'कोणताच पतà¥à¤¤à¤¾ नोंदवहीत नाही.';
$messages['contactnotfound'] = 'या नावाचा कोणताच पतà¥à¤¤à¤¾ नोंदवहीत नाही.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'संदेश पाठवता आला नाही.';
$messages['senttooquickly'] = 'कृपया हा संदेश पाठवणà¥à¤¯à¤¾à¤ªà¥‚रà¥à¤µà¥€ $sec थांबा';
+$messages['errorsavingsent'] = 'पाठवलेला संदेश ठेवून देतांना काहीतरी चूक à¤à¤¾à¤²à¥€.';
+$messages['errorsaving'] = 'संदेश ठेवून देतांना काहीतरी चूक à¤à¤¾à¤²à¥€.';
$messages['errormoving'] = 'संदेश तेथे ठेवता आला नाही.';
$messages['errorcopying'] = 'संदेशांची नकà¥â€à¤•à¤² करता आली नाही';
$messages['errordeleting'] = 'संदेश काढून टाकता आला नाही.';
@@ -56,8 +67,12 @@ $messages['deletegroupconfirm'] = 'निवडलेला गट तà¥à¤®à¥
$messages['deletemessagesconfirm'] = 'खूण केलेले सरà¥à¤µ संदेश खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचे आहेत का?';
$messages['deletefolderconfirm'] = 'हा फोलà¥à¤¡à¤° खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचा आहेत का?';
$messages['purgefolderconfirm'] = 'या फोलà¥à¤¡à¤°à¤®à¤§à¤¿à¤² सरà¥à¤µ संदेश खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचे आहेत का?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'फोलà¥à¤¡à¤° काढून टाकत आहे';
$messages['foldermoving'] = 'फोलà¥à¤¡à¤° हलवत आहे.';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'फॉरà¥à¤® पूरà¥à¤£à¤ªà¤£à¥‡ भरलेला नाही.';
$messages['noemailwarning'] = 'योगà¥à¤¯, बरोबर, आणि वैध इमेल पतà¥à¤¤à¤¾ दà¥à¤¯à¤¾.';
$messages['nonamewarning'] = 'नाव दà¥à¤¯à¤¾';
@@ -71,11 +86,14 @@ $messages['noldapserver'] = 'शोधणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ ldap सरà¥à¤µ
$messages['nosearchname'] = 'कृपया जà¥à¤¯à¤¾à¤‚ना तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ संदेश पाठवावयाचा आहे तà¥à¤¯à¤¾à¤‚चे नाव किंवा इमेल पतà¥à¤¤à¤¾ दà¥à¤¯à¤¾.';
$messages['notuploadedwarning'] = 'सरà¥à¤µ फाईल अजून चढवलà¥â€à¤¯à¤¾ गेलेलà¥â€à¤¯à¤¾ नाहीत. कृपया वाट पहा किंवा मागे फिरा';
$messages['searchsuccessful'] = '$nr संदेष मिळाले.';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'शोध घेतलà¥à¤¯à¤¾à¤¨à¤‚तर à¤à¤•à¤¹à¥€ संदेश मिळाला नाही';
$messages['searching'] = 'शोधत आहे......';
$messages['checking'] = 'तपासत आहे.....';
$messages['nospellerrors'] = 'शà¥à¤§à¥à¤¦à¤²à¥‡à¤–नाची चूक सापडली नाही';
$messages['folderdeleted'] = 'फोलà¥à¤¡à¤° यशसà¥à¤µà¥€ रितà¥à¤¯à¤¾ काढून टाकणà¥à¤¯à¤¾à¤¤ आला आहे.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
$messages['folderpurged'] = 'फोलà¥à¤¡à¤° यशसà¥à¤µà¥€à¤°à¥€à¤¤à¥à¤¯à¤¾ रिकामा केला';
$messages['folderexpunged'] = 'फोलà¥à¤¡à¤° यशसà¥à¤µà¥€à¤°à¥€à¤¤à¥à¤¯à¤¾ संकà¥à¤·à¤¿à¤ªà¥à¤¤ केला';
$messages['deletedsuccessfully'] = 'यशसà¥à¤µà¥€ रितà¥à¤¯à¤¾ काढून टाकणà¥à¤¯à¤¾à¤¤ आला आहे.';
@@ -83,10 +101,17 @@ $messages['converting'] = 'दृषà¥à¤¯ सà¥à¤µà¤°à¥à¤ª काढून à¤
$messages['messageopenerror'] = 'सरà¥à¤µà¥à¤¹à¤°à¤µà¤°à¥à¤¨ संदेश आणता आला नाही.';
$messages['fileuploaderror'] = 'फाईल चढवता आली नाही';
$messages['filesizeerror'] = 'तà¥à¤®à¥à¤¹à¥€ चढवलेली फाईल कà¥à¤·à¤®à¤¤à¥‡à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ मोठी आहे.';
+$messages['copysuccess'] = '$nr पतà¥à¤¤à¥à¤¯à¤¾à¤‚ची यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ पà¥à¤°à¤¤ केली.';
+$messages['copyerror'] = 'कोणतà¥à¤¯à¤¾à¤¹à¥€ पतà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ पà¥à¤°à¤¤ बनवता आली नाही.';
$messages['sourceisreadonly'] = 'पतà¥à¤¤à¤¾ फकà¥à¤¤ वाचणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आहे.';
$messages['errorsavingcontact'] = 'पतà¥à¤¤à¤¾ नोंदवहीत ठेवता आला नाही.';
$messages['movingmessage'] = 'संदेश हलवत आहे..';
$messages['copyingmessage'] = 'संदेशाची नकà¥â€à¤•à¤² करत आहे...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'पोचपावती यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ पाठवणà¥à¤¯à¤¾à¤¤ आली आहे.';
$messages['errorsendingreceipt'] = 'पोचपावती पाठवता आली नाही.';
$messages['deleteidentityconfirm'] = 'तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ ही ओळख नकà¥à¤•à¥€ नषà¥à¤Ÿ करायची आहे का?';
@@ -96,8 +121,11 @@ $messages['selectimportfile'] = 'चढवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ फाईल
$messages['addresswriterror'] = 'निवडलेलà¥à¤¯à¤¾ पतà¥à¤¤à¤¾ नोंदवहीत नोंद करता येत नाही.';
$messages['contactaddedtogroup'] = 'पतà¥â€à¤¤à¥‡ यशसà¥â€à¤µà¥€à¤°à¤¿à¤¤à¥â€à¤¯à¤¾ हया गटात वाढवणà¥â€à¤¯à¤¾à¤¤ आले.';
$messages['contactremovedfromgroup'] = 'पतà¥â€à¤¤à¥‡ यशसà¥â€à¤µà¥€à¤°à¤¿à¤¤à¥â€à¤¯à¤¾ हया गटातून काढून टाकले.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'आयात करत आहे, कृपया वाट पहा.....';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>$inserted पतà¥à¤¤à¥‡ यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ आयात केल, $skipped आधिच असलेलà¥à¤¯à¤¾ नोंदी केलà¥à¤¯à¤¾ नाहीत</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'ही कà¥à¤°à¤¿à¤¯à¤¾ करणà¥à¤¯à¤¾à¤¸ परवानगी नाही.';
$messages['nofromaddress'] = 'निवडलेलà¥à¤¯à¤¾ खातà¥à¤¯à¤¾à¤¤ इमेल पतà¥à¤¤à¤¾ दिलेला नाही.';
$messages['editorwarning'] = 'टेकà¥à¤¸à¥à¤Ÿ संपादन निवडलà¥à¤¯à¤¾à¤¸ संदेशाचे दृषà¥à¤¯ सà¥à¤µà¤°à¥à¤ª बदलून जाईल. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ असेच करायचे आहे ना?';
@@ -111,4 +139,33 @@ $messages['smtperror'] = 'SMTP चूक : $msg';
$messages['emailformaterror'] = 'अवैध ईमेल पतà¥â€à¤¤à¤¾ : $email';
$messages['toomanyrecipients'] = 'खूप जासà¥â€à¤¤ पà¥à¤°à¤¾à¤ªà¥â€à¤¤à¤•à¤°à¥à¤¤à¥‡. पà¥à¤°à¤¾à¤ªà¥â€à¤¤à¤•à¤°à¥à¤¤à¥â€à¤¯à¤¾à¤‚ची संखà¥â€à¤¯à¤¾ $max परà¥à¤¯à¤‚त कमी करा';
$messages['maxgroupmembersreached'] = 'गट सभासद संखà¥â€à¤¯à¤¾ $max पेकà¥à¤·à¤¾ जासà¥â€à¤¤ à¤à¤¾à¤²à¥€ आहे';
+$messages['internalerror'] = 'अंतरà¥à¤—त चूक à¤à¤¾à¤²à¥€. कृपया परत पà¥à¤°à¤¯à¤¤à¥â€à¤¨ करा.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/ms_MY/labels.inc b/program/localization/ms_MY/labels.inc
index 13d9d89fc..318af05ad 100644
--- a/program/localization/ms_MY/labels.inc
+++ b/program/localization/ms_MY/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Selamat datang ke $product';
$labels['username'] = 'Nama Pengguna';
$labels['password'] = 'Katalaluan';
$labels['server'] = 'Pelayan';
$labels['login'] = 'Log Masuk';
+
+// taskbar
$labels['logout'] = 'Log Keluar';
$labels['mail'] = 'Mel';
$labels['settings'] = 'Tetapan';
$labels['addressbook'] = 'Buku Alamat';
+
+// mailbox names
$labels['inbox'] = 'Peti Masuk';
$labels['drafts'] = 'Draf';
$labels['sent'] = 'Hantar';
$labels['trash'] = 'Tong Sampah';
$labels['junk'] = 'Junk';
+
+// message listing
$labels['subject'] = 'Subjek';
$labels['from'] = 'Daripada';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Kepada';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
@@ -42,18 +53,27 @@ $labels['priority'] = 'Prioriti';
$labels['organization'] = 'Organisasi';
$labels['readstatus'] = 'Status baca';
$labels['listoptions'] = 'Senarai pilihan';
+
$labels['mailboxlist'] = 'Folder';
$labels['messagesfromto'] = 'Mesej $from ke $to dari $count';
$labels['threadsfromto'] = 'Urutan $from ke $to dari $count';
$labels['messagenrof'] = 'Mesej $nr dari $count';
$labels['fromtoshort'] = '$from - $to dari $count';
+
$labels['copy'] = 'Salin';
$labels['move'] = 'Alih';
$labels['moveto'] = 'Alih ke...';
$labels['download'] = 'Muat Turun';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Nama Fail';
$labels['filesize'] = 'Saiz Fail';
+
$labels['addtoaddressbook'] = 'Tambah ke buku alamat';
+
+// weekdays short
$labels['sun'] = 'Aha';
$labels['mon'] = 'Isn';
$labels['tue'] = 'Sel';
@@ -61,6 +81,8 @@ $labels['wed'] = 'Rab';
$labels['thu'] = 'Kha';
$labels['fri'] = 'Jum';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Ahad';
$labels['monday'] = 'Isnin';
$labels['tuesday'] = 'Selasa';
@@ -68,6 +90,8 @@ $labels['wednesday'] = 'Rabu';
$labels['thursday'] = 'Khamis';
$labels['friday'] = 'Jumaat';
$labels['saturday'] = 'Sabtu';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mac';
@@ -80,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dis';
+
+// months long
$labels['longjan'] = 'Januari';
$labels['longfeb'] = 'Februari';
$labels['longmar'] = 'March';
@@ -92,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Disember';
+
$labels['today'] = 'Hari Ini';
+
+// toolbar buttons
$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Semak mesej baru';
$labels['compose'] = 'Karang mesej';
@@ -125,6 +154,7 @@ $labels['moreactions'] = 'Tindakan lanjut..';
$labels['more'] = 'Seterusnya';
$labels['back'] = 'Kembali';
$labels['options'] = 'Opsyen';
+
$labels['select'] = 'Pilih';
$labels['all'] = 'Semua';
$labels['none'] = 'Tiada';
@@ -132,7 +162,9 @@ $labels['currpage'] = 'Muka terkini';
$labels['unread'] = 'Belum dibaca';
$labels['flagged'] = 'Ditanda';
$labels['unanswered'] = 'Belum dijawab';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Telah dipadam';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Songsangkan';
$labels['filter'] = 'Tapis';
$labels['list'] = 'Senarai';
@@ -141,6 +173,7 @@ $labels['expand-all'] = 'Buka Semua';
$labels['expand-unread'] = 'Buka yang belum dibaca';
$labels['collapse-all'] = 'Tutup Semua';
$labels['threaded'] = 'Telah urutan';
+
$labels['autoexpand_threads'] = 'Buka mesej mengikut urutan';
$labels['do_expand'] = 'Kesemua urutan';
$labels['expand_only_unread'] = 'hanya dengan mesej yang belum dibaca';
@@ -156,19 +189,29 @@ $labels['listcolumns'] = 'Senarai ruang';
$labels['listsorting'] = 'pengisihan ruang';
$labels['listorder'] = 'Urutan pengisihan';
$labels['listmode'] = 'Mod senarai paparan';
+
$labels['folderactions'] = 'Aksi folder';
$labels['compact'] = 'Kompak';
$labels['empty'] = 'Kosong';
+
$labels['quota'] = 'Penggunaan cakera';
$labels['unknown'] = 'tidak diketahui';
$labels['unlimited'] = 'Tidak terhad';
+
$labels['quicksearch'] = 'Carian pantas';
$labels['resetsearch'] = 'Set semula carian';
$labels['searchmod'] = 'Pengubah carian';
$labels['msgtext'] = 'Keseluruhan mesej';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Buka dalam tetingkap baru';
$labels['emlsave'] = 'Muat-turun (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Ubah seperti baharu';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Hantar mesej';
$labels['savemessage'] = 'Simapan sebagai draf';
$labels['addattachment'] = 'Lampir fail';
@@ -178,82 +221,190 @@ $labels['returnreceipt'] = 'Penerimaan semula';
$labels['dsn'] = 'Status pemberitahuan penghantaran';
$labels['mailreplyintro'] = 'Pada $date, $sender menulis';
$labels['originalmessage'] = 'Mesej Asal';
+
$labels['editidents'] = 'Ubah identiti';
$labels['spellcheck'] = 'Eja';
$labels['checkspelling'] = 'Semak ejaan';
$labels['resumeediting'] = 'Sambung pengeditan';
$labels['revertto'] = 'Kembali kepada';
+
$labels['attach'] = 'Lampirkan';
$labels['attachments'] = 'Lampiran';
$labels['upload'] = 'Muat naik';
$labels['uploadprogress'] = '$percent ($current dari $total)';
$labels['close'] = 'Tutup';
$labels['messageoptions'] = 'Opsyen mesej';
+
$labels['low'] = 'Rendah';
$labels['lowest'] = 'Paling Rendah';
$labels['normal'] = 'Normal';
$labels['high'] = 'Tinggi';
$labels['highest'] = 'Paling Tinggi';
+
$labels['nosubject'] = '(tiada subjek)';
$labels['showimages'] = 'Papar imej';
$labels['alwaysshow'] = 'selalu paparkan imej dari $sender';
$labels['isdraft'] = 'Ini adalah draf mesej';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Teks kosong';
$labels['savesentmessagein'] = 'Simpan mesej yang telah dihantar dalam';
$labels['dontsave'] = 'Jangan simpan';
$labels['maxuploadsize'] = 'maksimum saiz fail yang dibenarkan ialah $size';
+
$labels['addcc'] = 'Tambah Cc';
$labels['addbcc'] = 'Tambah Bcc';
$labels['addreplyto'] = 'Tambah Reply-To';
$labels['addfollowupto'] = 'Tambah Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Pengirim mesej ini mahu diberitahu apabila anda membaca mesej ini. Adakah anda ingin memberitahu pengirim?';
$labels['receiptread'] = 'Balas Resip (dibaca)';
$labels['yourmessage'] = 'Ini adalah Resip Balasan untuk mesej anda';
$labels['receiptnote'] = 'Perhatian: Resip ini hanya untuk memberitahu yang mesej ini telah dipaparkan di komputer penerima. Tidak ada jaminan yang penerima telah membaca atau memahami kandungan mesej.';
+
+// address boook
$labels['name'] = 'Nama paparan';
$labels['firstname'] = 'Nama pertama';
$labels['surname'] = 'Nama akhir';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'E-Mel';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Tambah kontek baru';
$labels['editcontact'] = 'Ubahsuai Kontek';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Sunting';
$labels['cancel'] = 'Batal';
$labels['save'] = 'Simpan';
$labels['delete'] = 'Padam';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Cipta kad kontek baru';
$labels['deletecontact'] = 'Hapus kontek yang dipilih';
$labels['composeto'] = 'Karang mel kepada';
$labels['contactsfromto'] = 'Kontek $from ke $to dari $count';
$labels['print'] = 'Cetak';
$labels['export'] = 'Eksport';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Papar set sebelumnya';
$labels['firstpage'] = 'Papar set pertama';
$labels['nextpage'] = 'Papar set seterusnya';
$labels['lastpage'] = 'Papar set akhir';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Kumpulan';
$labels['personaladrbook'] = 'Alamat-alamat Peribadi';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'Tetapan bagi';
+$labels['about'] = 'About';
$labels['preferences'] = 'Keutamaan';
$labels['userpreferences'] = 'Keutamaan pengguna';
$labels['editpreferences'] = 'Sunting keutamaan pengguna';
+
$labels['identities'] = 'Identiti';
$labels['manageidentities'] = 'Urus identiti bagi akaun ini';
$labels['newidentity'] = 'Identiti baru';
+
$labels['newitem'] = 'Butiran baru';
$labels['edititem'] = 'Ubahsuai butiran';
+
$labels['preferhtml'] = 'Papar HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Mesej HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Tarikh-tarikh cantik';
$labels['setdefault'] = 'Tetap asal';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Bahasa';
$labels['timezone'] = 'Zon Masa';
$labels['pagesize'] = 'Baris setiap muka';
$labels['signature'] = 'Tandatangan';
$labels['dstactive'] = 'Simpanan siang hari';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Karang mesej HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Tandatangan HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Pamer ruang previu';
+$labels['skin'] = 'Interface skin';
$labels['logoutclear'] = 'Kosongkan Tong sampah ketika keluar';
$labels['logoutcompact'] = 'Padatkan Inbox ketika keluar';
$labels['uisettings'] = 'Antaramuka Pengguna';
@@ -262,11 +413,69 @@ $labels['mailboxview'] = 'Pandangan kotak Mel';
$labels['mdnrequests'] = 'Pemberitahuan Pengirim';
$labels['askuser'] = 'Tanya pengguna';
$labels['autosend'] = 'Hantar automatik';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'Biarkan';
$labels['readwhendeleted'] = 'Tanda mesej sebagai dibaca ketika hapus';
$labels['flagfordeletion'] = 'Tanda mesej untuk pembuangan (tidak delete terus)';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'Simpan draf dengan automatik';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'tidak pernah';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Kabinet Fail';
$labels['folders'] = 'Folder';
$labels['foldername'] = 'Nama Kabinet Fail';
@@ -275,7 +484,55 @@ $labels['messagecount'] = 'Mesej-mesej';
$labels['create'] = 'Cipta';
$labels['createfolder'] = 'Cipta kabinet fail baru';
$labels['managefolders'] = 'Urus kabinet fail';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Susun dengan';
$labels['sortasc'] = 'Susun menaik';
$labels['sortdesc'] = 'Susun menurun';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ms_MY/messages.inc b/program/localization/ms_MY/messages.inc
index c2140e216..72d2e3075 100644
--- a/program/localization/ms_MY/messages.inc
+++ b/program/localization/ms_MY/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Log masuk gagal';
$messages['cookiesdisabled'] = 'Pelayar anda tidak menerima cookies';
$messages['sessionerror'] = 'Sesi anda tidak sah atau telah tamat';
$messages['storageerror'] = 'Sambungan ke pelayan IMAP gagal';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Tiada mesej dijumpai dalam kotak mel ini';
$messages['loggedout'] = 'Sesi anda telah tamat. Selamat tinggal!';
$messages['mailboxempty'] = 'Kotak mail kosong';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Memuat...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Memuat data...';
$messages['checkingmail'] = 'Menyemak mesej baru...';
$messages['sendingmessage'] = 'Menghantar mesej...';
@@ -32,42 +48,124 @@ $messages['messagesaved'] = 'Mesej disimpan dalam Draf';
$messages['successfullysaved'] = 'Berjaya disimpan';
$messages['addedsuccessfully'] = 'Kontek berjaya disimpan ke dalam buku alamat';
$messages['contactexists'] = 'Kontek dengan alamat emel ini sudah wujud';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Untuk melindungi kebesasan peribadi anda, imej jauh dihalang dalam mesej ini.';
$messages['encryptedmessage'] = 'Ini adalah mesej yang di\'encrypted\' dan tidak boleh dipamerkan. Maaf!';
$messages['nocontactsfound'] = 'Tiada kontek dijumpai';
$messages['contactnotfound'] = 'Kontek yang diminta tidak dijumpai';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Gagal menghantar mesej';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Terdapat ralat ketika menyimpan';
$messages['errormoving'] = 'Tidak boleh pindah mesej';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Tidak boleh hapus mesej';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Adakah anda ingin hapuskan kontek yang dipilih?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Adakah anda ingin hapuskan mesej yang dipilih?';
$messages['deletefolderconfirm'] = 'Adakah anda ingin hapuskan kabinet fail ini?';
$messages['purgefolderconfirm'] = 'Adakah anda ingin hapuskan semua mesej dalam kabinet fail ini?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Borang tidak diisi dengan lengkap';
$messages['noemailwarning'] = 'Sila masukkan alamat emel yang sah';
$messages['nonamewarning'] = 'Sila masukkan nama';
$messages['nopagesizewarning'] = 'Sila masukkan saiz halaman';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Sila masukkan sekurang-kurangnya satu penerima';
$messages['nosubjectwarning'] = 'Ruang "Subjek" kosong. Adakah anda ingin masukkannya sekarang?';
$messages['nobodywarning'] = 'Hantar mesej ini tanpa teks?';
$messages['notsentwarning'] = 'Mesej tidak dihantar. Adakah anda ingin menyingkir mesej anda?';
$messages['noldapserver'] = 'Sila pilih satu pelayan ldap untuk carian';
$messages['nosearchname'] = 'Sila masukkan nama kontek atau alamat emel';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr mesej dijumpai';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Carian tiada padanan';
$messages['searching'] = 'Menggelintar...';
$messages['checking'] = 'Menyemak...';
$messages['nospellerrors'] = 'Tiada kesalah ejaan dijumpai';
$messages['folderdeleted'] = 'Kabinet fail berjaya dihapuskan';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'Berjaya dihapuskan';
$messages['converting'] = 'Singkir format dari mesej...';
$messages['messageopenerror'] = 'Tidak boleh muat mesej dari server';
$messages['fileuploaderror'] = 'Muatnaik fail gagal';
$messages['filesizeerror'] = 'Fail yang dimuatnaik melampaui saiz maksima $size';
+$messages['copysuccess'] = 'Berjaya salin alamat-alamat $nr';
+$messages['copyerror'] = 'Tidak boleh salin apa-apa alamat';
$messages['sourceisreadonly'] = 'Sumber alamat ini adalah untuk bacaan sahaja';
$messages['errorsavingcontact'] = 'Tidak boleh simmpan alamat kontek';
$messages['movingmessage'] = 'Memindah mesej...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'Berjaya menghantar resip bacaan';
$messages['errorsendingreceipt'] = 'Tidak dapat menghantar resip';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Anda tidak boleh membuang identiti ini, ia milik anda yang terakhir.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/nb_NO/labels.inc b/program/localization/nb_NO/labels.inc
index 20bbd1383..cba58dc9c 100644
--- a/program/localization/nb_NO/labels.inc
+++ b/program/localization/nb_NO/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Velkommen til $product';
$labels['username'] = 'Brukernavn';
$labels['password'] = 'Passord';
$labels['server'] = 'Tjener';
$labels['login'] = 'Logg inn';
+
+// taskbar
$labels['logout'] = 'Logg ut';
$labels['mail'] = 'E-post';
$labels['settings'] = 'Innstillinger';
$labels['addressbook'] = 'Adressebok';
+
+// mailbox names
$labels['inbox'] = 'Innboks';
$labels['drafts'] = 'Kladd';
$labels['sent'] = 'Sendt';
$labels['trash'] = 'Slettet';
$labels['junk'] = 'Spam';
+
+// message listing
$labels['subject'] = 'Emne';
$labels['from'] = 'Avsender';
$labels['sender'] = 'Avsender';
@@ -43,11 +53,13 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organisasjon';
$labels['readstatus'] = 'Lese status';
$labels['listoptions'] = 'List muligheter';
+
$labels['mailboxlist'] = 'Mapper';
$labels['messagesfromto'] = 'Meldinger $from til $to av $count';
$labels['threadsfromto'] = 'Tråder $from til $to av $count';
$labels['messagenrof'] = 'Melding $nr av $count';
$labels['fromtoshort'] = '$from – $to av $count';
+
$labels['copy'] = 'Kopier';
$labels['move'] = 'Flytt';
$labels['moveto'] = 'flytt til...';
@@ -55,9 +67,13 @@ $labels['download'] = 'last ned';
$labels['open'] = 'Ã…pen';
$labels['showattachment'] = 'Vis';
$labels['showanyway'] = 'Vis likevel';
+
$labels['filename'] = 'Filnavn';
$labels['filesize'] = 'Filstørrelse';
+
$labels['addtoaddressbook'] = 'Legg til i adressebok';
+
+// weekdays short
$labels['sun'] = 'Søn';
$labels['mon'] = 'Man';
$labels['tue'] = 'Tir';
@@ -65,6 +81,8 @@ $labels['wed'] = 'Ons';
$labels['thu'] = 'Tor';
$labels['fri'] = 'Fre';
$labels['sat'] = 'Lør';
+
+// weekdays long
$labels['sunday'] = 'Søndag';
$labels['monday'] = 'Mandag';
$labels['tuesday'] = 'Tirsdag';
@@ -72,6 +90,8 @@ $labels['wednesday'] = 'Onsdag';
$labels['thursday'] = 'Torsdag';
$labels['friday'] = 'Fredag';
$labels['saturday'] = 'Lørdag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -84,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Des';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'Mars';
@@ -96,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Desember';
+
$labels['today'] = 'I dag';
+
+// toolbar buttons
$labels['refresh'] = 'Oppdater';
$labels['checkmail'] = 'Se etter nye meldinger';
$labels['compose'] = 'Skriv ny e-post';
@@ -129,6 +154,7 @@ $labels['moreactions'] = 'Flere handlinger …';
$labels['more'] = 'Mer';
$labels['back'] = 'Tilbake';
$labels['options'] = 'Alternativer';
+
$labels['select'] = 'Velg';
$labels['all'] = 'Alle';
$labels['none'] = 'Ingen';
@@ -147,6 +173,7 @@ $labels['expand-all'] = 'Utvid alle';
$labels['expand-unread'] = 'Utvid uleste';
$labels['collapse-all'] = 'Skjul alle';
$labels['threaded'] = 'Trådet';
+
$labels['autoexpand_threads'] = 'Utvid tråder';
$labels['do_expand'] = 'alle tråder';
$labels['expand_only_unread'] = 'kun med uleste meldinger';
@@ -162,21 +189,27 @@ $labels['listcolumns'] = 'Listekolonner';
$labels['listsorting'] = 'Sorteringskolonne';
$labels['listorder'] = 'Sorteringsrekkefølge';
$labels['listmode'] = 'Listevisningsmodus';
+
$labels['folderactions'] = 'Mappehandlinger...';
$labels['compact'] = 'Rydd opp';
$labels['empty'] = 'Tøm';
+
$labels['quota'] = 'Plassforbruk';
$labels['unknown'] = 'ukjent';
$labels['unlimited'] = 'ubegrenset';
+
$labels['quicksearch'] = 'Hurtigsøk';
$labels['resetsearch'] = 'Nullstill søk';
$labels['searchmod'] = 'Søke felt';
$labels['msgtext'] = 'Hele meldingen';
$labels['body'] = 'Meldingstekst';
+
$labels['openinextwin'] = 'Ã…pne i nytt vindu';
$labels['emlsave'] = 'Last ned (.eml)';
$labels['changeformattext'] = 'Vis i ren tekst';
$labels['changeformathtml'] = 'Vis i HTML';
+
+// message compose
$labels['editasnew'] = 'Rediger som ny';
$labels['send'] = 'Send.';
$labels['sendmessage'] = 'Send e-posten';
@@ -188,22 +221,26 @@ $labels['returnreceipt'] = 'Be om kvittering';
$labels['dsn'] = 'Leveringsstatus notifikasjon';
$labels['mailreplyintro'] = 'Den $date, skrev $sender:';
$labels['originalmessage'] = 'Opprinnelig melding';
+
$labels['editidents'] = 'Endre identiteter';
$labels['spellcheck'] = 'Stavekontroll';
$labels['checkspelling'] = 'Stavekontroll';
$labels['resumeediting'] = 'Fortsett redigering';
$labels['revertto'] = 'Tilbake til';
+
$labels['attach'] = 'Legg ved';
$labels['attachments'] = 'Vedlegg';
$labels['upload'] = 'Last opp';
$labels['uploadprogress'] = '$percent ($current fra $total)';
$labels['close'] = 'Lukk';
$labels['messageoptions'] = 'Meldingsalternativer...';
+
$labels['low'] = 'Lav';
$labels['lowest'] = 'Lavest';
$labels['normal'] = 'Normal';
$labels['high'] = 'Høy';
$labels['highest'] = 'Høyest';
+
$labels['nosubject'] = '(intet emne)';
$labels['showimages'] = 'Vis bilder';
$labels['alwaysshow'] = 'Vis alltid bilder fra $sender';
@@ -211,19 +248,25 @@ $labels['isdraft'] = 'Dette er en kladd.';
$labels['andnmore'] = '$nr flere ...';
$labels['togglemoreheaders'] = 'Vis flere meldings-headere';
$labels['togglefullheaders'] = 'Veksle visning av meldingens headere i råformat';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Ren tekst';
$labels['savesentmessagein'] = 'Lagre sendt melding i';
$labels['dontsave'] = 'ikke lagre';
$labels['maxuploadsize'] = 'Maksimalt tillatt filstørrelse er $size';
+
$labels['addcc'] = 'Legg til kopiadressat (Cc)';
$labels['addbcc'] = 'Legg til blindkopiadressat (Bcc)';
$labels['addreplyto'] = 'Legg til svar til (Reply-To)';
$labels['addfollowupto'] = 'Legg til oppfølging';
+
+// mdn
$labels['mdnrequest'] = 'Senderen av denne meldingen har bedt om å bli gjort oppmerksom på at denne meldingen er lest. Ønsker du å sende denne bekreftelsen?';
$labels['receiptread'] = 'Kvittering (lest)';
$labels['yourmessage'] = 'Dette er en kvittering for at din e-post er mottatt';
$labels['receiptnote'] = 'Merknad: Denne kvitteringen bekrefter bare at e-posten ble vist hos mottakeren. Det er ingen garanti for at mottakeren har lest eller forstått innholdet i e-posten.';
+
+// address boook
$labels['name'] = 'Visningsnavn';
$labels['firstname'] = 'Fornavn';
$labels['surname'] = 'Etternavn';
@@ -258,6 +301,7 @@ $labels['search'] = 'Søk';
$labels['advsearch'] = 'Avansert søk';
$labels['advanced'] = 'Avansert';
$labels['other'] = 'Annet';
+
$labels['typehome'] = 'Hjem';
$labels['typework'] = 'Jobb';
$labels['typeother'] = 'Annet';
@@ -272,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Hjemmeside';
$labels['typeblog'] = 'Blogg';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Legg til felt ...';
$labels['addcontact'] = 'Legg til ny kontakt';
$labels['editcontact'] = 'Rediger kontakt';
$labels['contacts'] = 'Kontakter';
$labels['contactproperties'] = 'Egenskaper';
$labels['personalinfo'] = 'Personlig informasjon';
+
$labels['edit'] = 'Rediger';
$labels['cancel'] = 'Avbryt';
$labels['save'] = 'Lagre';
@@ -286,6 +332,7 @@ $labels['rename'] = 'Gi nytt navn';
$labels['addphoto'] = 'Legg til';
$labels['replacephoto'] = 'Erstatt';
$labels['uploadphoto'] = 'Last opp bilde';
+
$labels['newcontact'] = 'Opprett ny kontakt';
$labels['deletecontact'] = 'Slett valgte kontakter';
$labels['composeto'] = 'Skriv e-post til';
@@ -299,31 +346,41 @@ $labels['newcontactgroup'] = 'Opprett ny kontaktgruppe';
$labels['grouprename'] = 'Endre navn på gruppe';
$labels['groupdelete'] = 'Slett gruppe';
$labels['groupremoveselected'] = 'Fjern valgte kontakter fra gruppe';
+
$labels['previouspage'] = 'Vis forrige sett';
$labels['firstpage'] = 'Vis første sett';
$labels['nextpage'] = 'Vis neste sett';
$labels['lastpage'] = 'Vis siste sett';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Grupper';
$labels['personaladrbook'] = 'Egne adresser';
+
$labels['searchsave'] = 'Lagre søk';
$labels['searchdelete'] = 'Slett søk';
+
$labels['import'] = 'Importer';
$labels['importcontacts'] = 'Importer kontakter';
$labels['importfromfile'] = 'Importer fra fil:';
+$labels['importtarget'] = 'Legg til kontakter i adresseboka:';
$labels['importreplace'] = 'Erstatt hele adresseboken';
$labels['importdesc'] = 'Du kan laste opp kontakter fra en eksisterende adressebok.<br/>Vi støtter adressebøker i <a href="http://no.wikipedia.org/wiki/VCard">vCard</a> eller CSV (kommaseparert) .';
$labels['done'] = 'Fullført';
+
+// settings
$labels['settingsfor'] = 'Innstillinger for';
$labels['about'] = 'Om';
$labels['preferences'] = 'Oppsett';
$labels['userpreferences'] = 'Brukeroppsett';
$labels['editpreferences'] = 'Rediger brukeroppsett';
+
$labels['identities'] = 'Identiteter';
$labels['manageidentities'] = 'Administrer identitetene for denne kontoen';
$labels['newidentity'] = 'Ny identitet';
+
$labels['newitem'] = 'Nytt punkt';
$labels['edititem'] = 'Rediger punkt';
+
$labels['preferhtml'] = 'Foretrekk HTML';
$labels['defaultcharset'] = 'Standard tegnsett';
$labels['htmlmessage'] = 'HTML-melding';
@@ -418,6 +475,7 @@ $labels['mailtoprotohandler'] = 'Registrer protokollhåndtering for mailto-lenke
$labels['forwardmode'] = 'Meldinger videresendes';
$labels['inline'] = 'i teksten';
$labels['asattachment'] = 'som vedlegg';
+
$labels['folder'] = 'Mappe';
$labels['folders'] = 'Mapper';
$labels['foldername'] = 'Mappenavn';
@@ -438,20 +496,26 @@ $labels['foldertype'] = 'Mappetype';
$labels['personalfolder'] = 'Privat mappe';
$labels['otherfolder'] = 'Annen brukers mappe';
$labels['sharedfolder'] = 'Offentlig mappe';
+
$labels['sortby'] = 'Sorter etter';
$labels['sortasc'] = 'Eldste først';
$labels['sortdesc'] = 'Nyeste først';
$labels['undo'] = 'Angre';
+
$labels['installedplugins'] = 'Installerte tillegg';
$labels['plugin'] = 'Tilleggsmodul';
$labels['version'] = 'Versjon';
$labels['source'] = 'Kildekode';
$labels['license'] = 'Lisensvilkår';
$labels['support'] = 'FÃ¥ hjelp';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engelsk';
$labels['westerneuropean'] = 'Vesteuropeisk';
@@ -470,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisk';
$labels['japanese'] = 'Japansk';
$labels['korean'] = 'Koreansk';
$labels['chinese'] = 'Kinesisk';
+
?>
diff --git a/program/localization/nb_NO/messages.inc b/program/localization/nb_NO/messages.inc
index 1d51017fb..7785f474a 100644
--- a/program/localization/nb_NO/messages.inc
+++ b/program/localization/nb_NO/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Det oppsto en feil!';
$messages['loginfailed'] = 'PÃ¥logging mislyktes';
$messages['cookiesdisabled'] = 'Nettleseren din tillater ikke informasjonskapsler (cookies)';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Den ønskede kontakten ble ikke funnet';
$messages['contactsearchonly'] = 'Skriv inn noen søkeord for å finne kontakter.';
$messages['sendingfailed'] = 'Kunne ikke sende e-posten';
$messages['senttooquickly'] = 'Vennligst vent $sec sekund(er) før du sender denne meldingen';
+$messages['errorsavingsent'] = 'En feil oppsto under lagring av sendt melding';
+$messages['errorsaving'] = 'Det oppstod en feil ved lagring av data';
$messages['errormoving'] = 'Kunne ikke flytte meldingen(e)';
$messages['errorcopying'] = 'Kunne ikke kopiere meldingen(e)';
$messages['errordeleting'] = 'Kunne ikke slette meldingen(e)';
@@ -97,6 +101,8 @@ $messages['converting'] = 'Fjerner formatering fra meldingen ...';
$messages['messageopenerror'] = 'Kunne ikke hente meldingen fra server';
$messages['fileuploaderror'] = 'Feil under opplastning.';
$messages['filesizeerror'] = 'Filen overstiger maksimum tillatt filstørrelse ($size)';
+$messages['copysuccess'] = 'Kopierte $nr adresser.';
+$messages['copyerror'] = 'Kunne ikke kopiere adresser.';
$messages['sourceisreadonly'] = 'Denne adressekilden er skrivebeskyttet';
$messages['errorsavingcontact'] = 'Kunne ikke lagre kontaktadressen.';
$messages['movingmessage'] = 'Flytter e-post ...';
@@ -120,8 +126,6 @@ $messages['importwait'] = 'Importerer, vennligst vent...';
$messages['importformaterror'] = 'Import feilet! Den opplastede filen er i feil format.';
$messages['importconfirm'] = '<b>Importerte $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Hoppet over $skipped eksisterende oppføringer</b>';
-$messages['importmessagesuccess'] = 'Kopierte $nr meldinger';
-$messages['importmessageerror'] = 'Importeringen var mislykket! Den opplastede filen er ikke en gyldig melding, eller er ikke kompatibel med meldingssystemet.';
$messages['opnotpermitted'] = 'Handling ikke tillatt!';
$messages['nofromaddress'] = 'E-postadresse mangler i valgt identitet';
$messages['editorwarning'] = 'Ved å bytte format til ren tekst vil all tekstformatering gå tapt. Ønsker du å fortsette?';
@@ -135,6 +139,7 @@ $messages['smtperror'] = 'SMTP-feil ($code): $msg';
$messages['emailformaterror'] = 'Ukorrekt e-postadresse: $email';
$messages['toomanyrecipients'] = 'For mange mottakere. Reduser antall mottakere til $max.';
$messages['maxgroupmembersreached'] = 'Antall gruppemedlemmer overskrider maksgrensen på $max';
+$messages['internalerror'] = 'Intern feil, prøv igjen senere.';
$messages['contactdelerror'] = 'Kunne ikke slette kontakt(er)';
$messages['contactdeleted'] = 'Kontakt(er) slettet uten feil.';
$messages['contactrestoreerror'] = 'Kunne ikke gjenopprette kontakt(er).';
@@ -162,4 +167,5 @@ $messages['parentnotwritable'] = 'Kunne ikke opprette/flytte mappen i valgt over
$messages['messagetoobig'] = 'Meldingsdelen er for stor til at den kan prosesseres.';
$messages['attachmentvalidationerror'] = 'ADVARSEL! Dette vedlegget er mistenkelig fordi det er av en type som ikke passer med det som er deklarert i meldingen. Hvis du ikke stoler på avsenderen burde du ikke åpne det i nettleseren, fordi det kan ha skadelig innhold.<br/><br/><em>Forventet: $expected; fant: $detected</em>rnrnWARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'NB: Denne webmail-klienten krever Javascript! Skru på Javascript i nettleseren din for å kunne bruke den.';
+
?>
diff --git a/program/localization/ne_NP/labels.inc b/program/localization/ne_NP/labels.inc
index 97f30201b..29d43ef9c 100644
--- a/program/localization/ne_NP/labels.inc
+++ b/program/localization/ne_NP/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product मा सà¥à¤µà¤¾à¤—त छ';
$labels['username'] = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•à¥‹ नाम';
$labels['password'] = 'पà¥à¤°à¤µà¥‡à¤¶ शबà¥à¤¦';
$labels['server'] = 'सरà¥à¤­à¤°';
$labels['login'] = 'लगइन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
+
+// taskbar
$labels['logout'] = 'लगआउट गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
$labels['mail'] = 'ई-मेल';
$labels['settings'] = 'वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त रोजाईहरà¥';
$labels['addressbook'] = 'ठेगाना पà¥à¤¸à¥à¤¤à¤¿à¤•à¤¾';
+
+// mailbox names
$labels['inbox'] = 'पà¥à¤°à¤¾à¤ªà¥à¤¤à¤¿ मञà¥à¤œà¥‚षा';
$labels['drafts'] = 'डà¥à¤°à¤¾à¤«à¥à¤Ÿà¤¹à¤°à¥‚';
$labels['sent'] = 'पठईà¤à¤•à¤¾ मेलहरà¥';
$labels['trash'] = 'रदà¥à¤¦à¥€ टोकरी';
$labels['junk'] = 'सà¥à¤ªà¤¾à¤®';
+
+// message listing
$labels['subject'] = 'विषय';
$labels['from'] = 'पà¥à¤°à¥‡à¤·à¤•';
+$labels['sender'] = 'Sender';
$labels['to'] = 'पà¥à¤°à¤¾à¤ªà¤•';
$labels['cc'] = 'बोधारà¥à¤¥';
$labels['bcc'] = 'गà¥à¤ªà¥à¤¤ बोधारà¥à¤¥';
@@ -41,18 +52,28 @@ $labels['size'] = 'नाप';
$labels['priority'] = 'पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾';
$labels['organization'] = 'संसà¥à¤¥à¤¾';
$labels['readstatus'] = 'पढेको अवसà¥à¤¥à¤¾';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'फोलà¥à¤¡à¤°à¤¹à¤°à¥';
$labels['messagesfromto'] = 'मेलहरॠ$from बाट $to समà¥à¤®, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
$labels['threadsfromto'] = 'थà¥à¤°à¥‡à¤¡à¤¹à¤°à¥ $from बाट $to समà¥à¤®, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
$labels['messagenrof'] = '$nr नमà¥à¤¬à¤° मेल, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
$labels['fromtoshort'] = '$from - $to, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
+
$labels['copy'] = 'पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
$labels['move'] = 'सारà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['moveto'] = 'यहाठसारà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['download'] = 'डाऊनलोड';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'फाईलको नाम';
$labels['filesize'] = 'फाईलको नाप';
+
$labels['addtoaddressbook'] = 'ठेगाना पà¥à¤¸à¥à¤¤à¤¿à¤•à¤¾à¤®à¤¾ भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+
+// weekdays short
$labels['sun'] = 'आइत';
$labels['mon'] = 'सोम';
$labels['tue'] = 'मंगल';
@@ -60,6 +81,8 @@ $labels['wed'] = 'बà¥à¤§';
$labels['thu'] = 'विहि';
$labels['fri'] = 'शà¥à¤•';
$labels['sat'] = 'शनि';
+
+// weekdays long
$labels['sunday'] = 'आइतवार';
$labels['monday'] = 'सोमवार';
$labels['tuesday'] = 'मंगलवार';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'बà¥à¤§à¤µà¤¾à¤°';
$labels['thursday'] = 'विहिवार';
$labels['friday'] = 'शà¥à¤•à¥à¤°à¤µà¤¾à¤°';
$labels['saturday'] = 'शनिवार';
+
+// months short
$labels['jan'] = 'जनवरी';
$labels['feb'] = 'फेबà¥à¤°à¥à¤µà¤°à¥€';
$labels['mar'] = 'मारà¥à¤š';
@@ -79,6 +104,8 @@ $labels['sep'] = 'सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°';
$labels['oct'] = 'अकà¥à¤Ÿà¥‹à¤¬à¤°';
$labels['nov'] = 'नोभेमà¥à¤¬à¤°';
$labels['dec'] = 'डिसेमà¥à¤¬à¤°';
+
+// months long
$labels['longjan'] = 'जनवरी';
$labels['longfeb'] = 'फेबà¥à¤°à¥à¤µà¤°à¥€';
$labels['longmar'] = 'मारà¥à¤š';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°';
$labels['longoct'] = 'अकà¥à¤Ÿà¥‹à¤¬à¤°';
$labels['longnov'] = 'नोभेमà¥à¤¬à¤°';
$labels['longdec'] = 'डिसेमà¥à¤¬à¤°';
+
$labels['today'] = 'आज';
+
+// toolbar buttons
$labels['refresh'] = 'ताजा पारà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
$labels['checkmail'] = 'नया मेल खोजà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['compose'] = 'रचना गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
@@ -116,95 +146,393 @@ $labels['backtolist'] = 'सनà¥à¤¦à¥‡à¤¶ सूची देखाउà¤
$labels['viewsource'] = 'शà¥à¤°à¥‹à¤¤ देखाउनà¥à¤¹à¥‹à¤¸';
$labels['mark'] = 'चिनà¥à¤¹ लगाउनà¥à¤¹à¥‹à¤¸à¥';
$labels['markmessages'] = 'सनà¥à¤¦à¥‡à¤¶à¤®à¤¾ चिनà¥à¤¹ लगाउनà¥à¤¹à¥‹à¤¸à¥';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
$labels['more'] = 'अठधेरै';
$labels['back'] = 'पछाडि';
$labels['options'] = 'विकलà¥à¤ªà¤¹à¤°à¥‚';
+
$labels['select'] = 'चयन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
$labels['all'] = 'सबै';
$labels['none'] = 'हैन';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'नपढिà¤à¤•à¤¾ |';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'हैन';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'छोटो गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['empty'] = 'खाली गरà¥à¤¨à¥‡';
+
$labels['quota'] = 'डिसà¥à¤•à¤•à¥‹ उपभोग';
$labels['unknown'] = 'अजà¥à¤žà¤¾à¤¤';
$labels['unlimited'] = 'अनगिनà¥à¤¤à¤¿';
+
$labels['quicksearch'] = 'सà¥à¤«à¥à¤°à¥à¤¤à¤¿ खोज';
$labels['resetsearch'] = 'पन: खोज';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'तà¥à¤°à¥à¤¨à¥à¤¤à¥ˆ मेल पठाउनà¥à¤¹à¥‹à¤¸';
$labels['savemessage'] = 'डà¥à¤°à¤¾à¤«à¥à¤Ÿ जोगाउनà¥à¤¹à¥‹à¤¸';
$labels['addattachment'] = 'फाइल टाà¤à¤¸à¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['charset'] = 'कà¥à¤¯à¤¾à¤°à¥‡à¤•à¥à¤Ÿà¤° सेट';
$labels['editortype'] = 'समà¥à¤ªà¤¾à¤¦à¤•à¤•à¥‹ पà¥à¤°à¤•à¤¾à¤°';
$labels['returnreceipt'] = 'फिरà¥à¤¤à¤¿ रसीद';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'हिजà¥à¤œà¥‡ जाà¤à¤š';
$labels['resumeediting'] = 'पà¥à¤¨: समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['revertto'] = 'पहिलेको सà¥à¤¥à¤¿à¤¤à¥€à¤®à¤¾ जानà¥à¤¹à¥‹à¤¸';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'टाà¤à¤¸à¤¿à¤à¤•à¤¾ फाईलहरà¥';
$labels['upload'] = 'अपलोड';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'बनà¥à¤¦';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'कम';
$labels['lowest'] = 'सबै भनà¥à¤¦à¤¾ कम';
$labels['normal'] = 'साधारण';
$labels['high'] = 'उचà¥à¤š';
$labels['highest'] = 'उचà¥à¤šà¤¤à¤®';
+
$labels['nosubject'] = '(बिना विषयको)';
$labels['showimages'] = 'चितà¥à¤° देखाउनà¥à¤¹à¥‹à¤¸';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML)';
$labels['plaintoggle'] = 'सादा अकà¥à¤·à¤°';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
$labels['name'] = 'देखाउने नाम';
$labels['firstname'] = 'पहिलो नाम';
$labels['surname'] = 'थर';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'ई-मेल';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'नया समà¥à¤ªà¤°à¥à¤• जोडà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['editcontact'] = 'समà¥à¤ªà¤°à¥à¤• सचà¥à¤¯à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'सचà¥à¤¯à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸';
$labels['cancel'] = 'खारेज गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['save'] = 'जोगाउनà¥à¤¹à¥‹à¤¸';
$labels['delete'] = 'मेटाउनà¥à¤¹à¥‹à¤¸';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'नया समà¥à¤ªà¤°à¥à¤• कारà¥à¤¡ बनाउनà¥à¤¹à¥‹à¤¸';
$labels['deletecontact'] = 'छानिà¤à¤•à¤¾ समà¥à¤ªà¤°à¥à¤•à¤¹à¤°à¥ मेटाउनà¥à¤¹à¥‹à¤¸';
$labels['composeto'] = 'मेल लेखी पठाउनà¥à¤¹à¥‹à¤¸';
$labels['contactsfromto'] = 'समà¥à¤ªà¤°à¥à¤•à¤¹à¤°à¥ $from बाट $to समà¥à¤®, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
$labels['print'] = 'छापà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['export'] = 'à¤à¤•à¥à¤¸à¥à¤ªà¥‹à¤°à¥à¤Ÿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'पहिलेको सेट देखाउनà¥à¤¹à¥‹à¤¸';
$labels['firstpage'] = 'पहिलो सेट देखाउनà¥à¤¹à¥‹à¤¸';
$labels['nextpage'] = 'अरà¥à¤•à¥‹ सेट देखाउनà¥à¤¹à¥‹à¤¸';
$labels['lastpage'] = 'अनà¥à¤¤à¤¿à¤® सेट देखाउनà¥à¤¹à¥‹à¤¸';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'समूहहरà¥';
$labels['personaladrbook'] = 'वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त ठेगानाहरà¥';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'तय';
+$labels['about'] = 'About';
$labels['preferences'] = 'रोजाइहरà¥';
$labels['userpreferences'] = 'यूसरका रोजाइहरà¥';
$labels['editpreferences'] = 'यूसरका रोजाइहर समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+
$labels['identities'] = 'पहिचानहरà¥';
$labels['manageidentities'] = 'यो खाताको पहिचानहरको वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['newidentity'] = 'नया पहिचान';
+
$labels['newitem'] = 'नया पà¥à¤°à¤•à¤¾à¤°';
$labels['edititem'] = 'पà¥à¤°à¤•à¤¾à¤° समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+
$labels['preferhtml'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤²(HTML) देखाउनà¥à¤¹à¥‹à¤¸';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) रूपका मेल';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'सà¥à¤¨à¥à¤¦à¤° तारिख';
$labels['setdefault'] = 'तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'भाषा';
$labels['timezone'] = 'समय कà¥à¤·à¥‡à¤¤à¥à¤°';
$labels['pagesize'] = 'हरेक पनà¥à¤¨à¤¾à¤®à¤¾ यति';
$labels['signature'] = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°';
$labels['dstactive'] = 'पà¥à¤°à¤•à¤¾à¤¶ बचाव';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) मेल लखन गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'पूरà¥à¤µ दृषà¥à¤¯ देखाउनà¥à¤¹à¥‹à¤¸';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'सà¥à¤µà¤¤ डà¥à¤°à¤¾à¤«à¥à¤Ÿ जोगाउनà¥à¤¹à¥‹à¤¸';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'काहिलै नहà¥à¤¨à¥‡';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'फोलà¥à¤¡à¤°';
$labels['folders'] = 'फोलà¥à¤¡à¤°à¤¹à¤°à¥';
$labels['foldername'] = 'फोलà¥à¤¡à¤°à¤•à¥‹ नाम';
$labels['subscribed'] = 'सबसà¥à¤•à¥à¤°à¤¾à¤ˆà¤¬ गरियो';
+$labels['messagecount'] = 'Messages';
$labels['create'] = 'बनाउनà¥à¤¹à¥‹à¤¸';
$labels['createfolder'] = 'नया फोलडर बनाउनà¥à¤¹à¥‹à¤¸';
$labels['managefolders'] = 'फोलडर वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'यसरी तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['sortasc'] = 'पहिलो देखि अनà¥à¤¤à¤¿à¤® समà¥à¤® तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['sortdesc'] = 'अनà¥à¤¤à¤¿à¤® देखि पहिलो समà¥à¤® तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ne_NP/messages.inc b/program/localization/ne_NP/messages.inc
index 7873f5715..c5214bb0f 100644
--- a/program/localization/ne_NP/messages.inc
+++ b/program/localization/ne_NP/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'लागईन हà¥à¤¨ पाà¤à¤¨';
$messages['cookiesdisabled'] = 'तपाईको बà¥à¤°à¤¾à¤Šà¤¸à¤°à¤²à¥‡ कà¥à¤•à¥€ सà¥à¤µà¥€à¤•à¤¾à¤° गारिरहेको छैन';
$messages['sessionerror'] = 'सतà¥à¤° समापà¥à¤¤ वा अवैदà¥à¤¯';
$messages['storageerror'] = 'सरà¥à¤µà¤° संग समà¥à¤ªà¤°à¥à¤• हà¥à¤¨ पाà¤à¤¨';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'यो मेलबकà¥à¤¸ मा कà¥à¤¨à¥ˆ मेल छैन';
$messages['loggedout'] = 'सतà¥à¤° समापà¥à¤¤ । नमासà¥à¤•à¤¾à¤°!';
$messages['mailboxempty'] = 'मेल बकà¥à¤¸ खाली छ';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'लोड भईरहेको छ...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'डाटा लोड भईरहेको छै...';
$messages['checkingmail'] = 'नया मेलको खोजी भईरहेको छ...';
$messages['sendingmessage'] = 'मेल पठाईदै रहेको छ...';
@@ -32,38 +48,124 @@ $messages['messagesaved'] = 'मेल डà¥à¤°à¤¾à¤«à¥à¤Ÿ फोलà¥à¤¡à¤°à
$messages['successfullysaved'] = 'सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• जोगाईयो';
$messages['addedsuccessfully'] = 'समà¥à¤ªà¤°à¥à¤• पà¥à¤¸à¥à¤¤à¤¿à¤•à¤¾à¤®à¤¾ सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• समà¥à¤ªà¤°à¥à¤• पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गारियो';
$messages['contactexists'] = 'यो ई-मेल पहिलै लिईसकिà¤à¤•à¥‹ छ';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'तपाईको पà¥à¤°à¤¾à¤ˆà¤µà¥‡à¤¸à¥€ को लागि तथा अनà¥à¤¯ सà¥à¤ªà¤¾à¤®à¤¬à¤¾à¤Ÿ बचà¥à¤¨à¤•à¥‹à¤²à¤¾à¤—ि यो मेलमा चितà¥à¤°à¤¹à¥à¤°à¥ देखाईà¤à¤•à¤¾ छैननà¥à¥¤';
$messages['encryptedmessage'] = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥‡, यो मेल ईनà¥à¤•à¥à¤°à¤¿à¤«à¥à¤Ÿ गरिà¤à¤•à¥‹ रूपमा छ, तà¥à¤¯à¤¸à¥ˆà¤²à¥‡ देखाउन सकिदैन!';
$messages['nocontactsfound'] = 'कà¥à¤¨à¥ˆ समà¥à¤ªà¤°à¥à¤• भेटिà¤à¤¨';
$messages['contactnotfound'] = 'अनà¥à¤°à¥‹à¤§ गारिà¤à¤•à¥‹ समà¥à¤ªà¤°à¥à¤• भेटिà¤à¤¨';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'मेल पठाउन सकिà¤à¤¨';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'जोगाउदा-जोगाउदै गडबड भायो';
$messages['errormoving'] = 'मेल सारà¥à¤¨ सकिà¤à¤¨';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'मेल मेटाउन सकिà¤à¤¨';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'तापाईले छानà¥à¤¨à¥à¤­à¤à¤•à¥‹ समà¥à¤ªà¤°à¥à¤•à¤¹à¤°à¥, साà¤à¤šà¥ˆ मेटà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤›?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'तापाईले छानà¥à¤¨à¥ भà¤à¤•à¥‹ मेलहरà¥, साà¤à¤šà¥ˆ मेटà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤›?';
$messages['deletefolderconfirm'] = 'तापाईले साà¤à¤šà¥ˆ यो फोलà¥à¤¡à¤° मेटà¥à¤¨ चहानॠहà¥à¤¨à¥à¤›?';
$messages['purgefolderconfirm'] = 'तापाईले साà¤à¤šà¥ˆ यो फोलà¥à¤¡à¤°à¤®à¤¾ भà¤à¤•à¤¾ सबै मेलहरॠमेटà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤›?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'फरà¥à¤® पूरà¥à¤£ रà¥à¤ªà¤®à¤¾ भरिà¤à¤•à¥‹ छैन';
$messages['noemailwarning'] = 'कृपया वैदà¥à¤¯ ई-मेल भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$messages['nonamewarning'] = 'कृपया नाम भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$messages['nopagesizewarning'] = 'कृपया पनà¥à¤¨à¤¾à¤•à¥‹ नाप भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'कृपया कम-से-कम à¤à¤‰à¤Ÿà¤¾ पà¥à¤°à¤¾à¤ªà¤•à¤•à¥‹ विवरण भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$messages['nosubjectwarning'] = 'मेलको कà¥à¤¨à¥ˆ विषय तोकिà¤à¤•à¥‹ छैनै। केहि तोकà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤› ?';
$messages['nobodywarning'] = 'बिना केहि लेखि पठाउने?';
$messages['notsentwarning'] = 'मेल पठà¤à¤•à¥‹ छैन.. मेल रदà¥à¤¦ गरà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤›?';
$messages['noldapserver'] = 'कृपया खोजको निमà¥à¤¤à¤¿ à¤à¤‰à¤Ÿà¤¾ à¤à¤²à¤¡à¤¾à¤ª सरà¥à¤µà¤° छानà¥à¤¨à¤¹à¥‹à¤¸';
$messages['nosearchname'] = 'कृपया समà¥à¤ªà¤°à¥à¤•à¤•à¥‹ नाम या ई-मेल भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr मेलहरॠपाइयो';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'खोज असफल रहयो';
$messages['searching'] = 'खोजि भईरहेको छ...';
$messages['checking'] = 'जाà¤à¤š भईरहेको छ...';
$messages['nospellerrors'] = 'कà¥à¤¨à¥ˆ गलत हिजà¥à¤œà¥‡ फेला परेननà¥';
$messages['folderdeleted'] = 'फोलà¥à¤¡à¤° सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• मेटियो';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• मेटियो';
$messages['converting'] = 'मेलबाट फोरà¥à¤®à¤¾à¤Ÿà¤¿à¤™ हटाईदै छ...';
$messages['messageopenerror'] = 'सरà¥à¤µà¤°à¤¬à¤¾à¤Ÿ मेल लोड हà¥à¤¨ सकेन';
$messages['fileuploaderror'] = 'फाईल अपलोड हà¥à¤¨ असफल';
$messages['filesizeerror'] = 'अपलोड गरिà¤à¤•à¥‹ फाईल हद $size भनà¥à¤¦à¤¾ ठूलो छ';
+$messages['copysuccess'] = 'सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• $nr ठेगानाहरॠउतारियो';
+$messages['copyerror'] = 'कà¥à¤¨à¥ˆ पनि ठेगानाहरॠउतारà¥à¤¨ सकिà¤à¤¨';
$messages['sourceisreadonly'] = 'यो ठेगाना को शà¥à¤°à¥‹à¤¤ पढà¥à¤¨à¤•à¥‹ लागि मातà¥à¤° उपलबà¥à¤§ छ';
$messages['errorsavingcontact'] = 'सà¥à¤®à¤ªà¤°à¥à¤•à¤•à¥‹ ठेगाना जोगाउन सकिà¤à¤¨';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/nl_BE/labels.inc b/program/localization/nl_BE/labels.inc
index 2e76194e1..eb44eefc0 100644
--- a/program/localization/nl_BE/labels.inc
+++ b/program/localization/nl_BE/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Welkom bij $product';
$labels['username'] = 'Gebruikersnaam';
$labels['password'] = 'Wachtwoord';
$labels['server'] = 'Server';
$labels['login'] = 'Aanmelden';
+
+// taskbar
$labels['logout'] = 'Afmelden';
$labels['mail'] = 'Berichten';
$labels['settings'] = 'Instellingen';
$labels['addressbook'] = 'Contactpersonen';
+
+// mailbox names
$labels['inbox'] = 'Postvak IN';
$labels['drafts'] = 'Concepten';
$labels['sent'] = 'Verzonden berichten';
$labels['trash'] = 'Prullenbak';
$labels['junk'] = 'Spam';
+
+// message listing
$labels['subject'] = 'Onderwerp';
$labels['from'] = 'Van';
$labels['sender'] = 'Afzender';
@@ -43,20 +53,27 @@ $labels['priority'] = 'Prioriteit';
$labels['organization'] = 'Organisatie';
$labels['readstatus'] = 'Gelezen?';
$labels['listoptions'] = 'Lijstopties...';
+
$labels['mailboxlist'] = 'Mappen';
$labels['messagesfromto'] = 'Berichten $from - $to van $count';
$labels['threadsfromto'] = 'Conversaties $from - $to van $count';
$labels['messagenrof'] = 'Bericht $nr van $count';
$labels['fromtoshort'] = '$from - $to van $count';
+
$labels['copy'] = 'Kopieer';
$labels['move'] = 'Verplaats';
$labels['moveto'] = 'Verplaats naar...';
$labels['download'] = 'Downloaden';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Weergeven';
$labels['showanyway'] = 'Toch weergeven';
+
$labels['filename'] = 'Bestandsnaam';
$labels['filesize'] = 'Bestandsgrootte';
+
$labels['addtoaddressbook'] = 'Voeg toe aan lijst met contactpersonen';
+
+// weekdays short
$labels['sun'] = 'Zo';
$labels['mon'] = 'Ma';
$labels['tue'] = 'Di';
@@ -64,6 +81,8 @@ $labels['wed'] = 'Wo';
$labels['thu'] = 'Do';
$labels['fri'] = 'Vr';
$labels['sat'] = 'Za';
+
+// weekdays long
$labels['sunday'] = 'Zondag';
$labels['monday'] = 'Maandag';
$labels['tuesday'] = 'Dinsdag';
@@ -71,6 +90,8 @@ $labels['wednesday'] = 'Woensdag';
$labels['thursday'] = 'Donderdag';
$labels['friday'] = 'Vrijdag';
$labels['saturday'] = 'Zaterdag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mrt';
@@ -83,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Januari';
$labels['longfeb'] = 'Februari';
$labels['longmar'] = 'Maart';
@@ -95,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'Vandaag';
+
+// toolbar buttons
$labels['refresh'] = 'Vernieuwen';
$labels['checkmail'] = 'Controleer op nieuwe berichten';
$labels['compose'] = 'Nieuw bericht opstellen';
@@ -106,6 +132,7 @@ $labels['replytoallmessage'] = 'Antwoorden naar lijst of naar afzender en alle o
$labels['replyall'] = 'Allen beantwoorden';
$labels['replylist'] = 'Lijst beantwoorden';
$labels['forward'] = 'Doorsturen';
+$labels['forwardinline'] = 'Forward inline';
$labels['forwardattachment'] = 'Doorsturen als bijlage';
$labels['forwardmessage'] = 'Bericht doorsturen';
$labels['deletemessage'] = 'Dit bericht verwijderen';
@@ -127,6 +154,7 @@ $labels['moreactions'] = 'Meer acties...';
$labels['more'] = 'Meer';
$labels['back'] = 'Terug';
$labels['options'] = 'Opties';
+
$labels['select'] = 'Selecteren';
$labels['all'] = 'Alle';
$labels['none'] = 'Geen';
@@ -134,6 +162,7 @@ $labels['currpage'] = 'Huidige pagina';
$labels['unread'] = 'Ongelezen';
$labels['flagged'] = 'Geselecteerd';
$labels['unanswered'] = 'Onbeantwoord';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Verwijderd';
$labels['undeleted'] = 'Niet verwijderd';
$labels['invert'] = 'Selectie omkeren';
@@ -144,6 +173,7 @@ $labels['expand-all'] = 'Alles uitklappen';
$labels['expand-unread'] = 'Ongelezen uitklappen';
$labels['collapse-all'] = 'Alles inklappen';
$labels['threaded'] = 'Conversaties';
+
$labels['autoexpand_threads'] = 'Klap alle conversaties uit';
$labels['do_expand'] = 'alle conversaties';
$labels['expand_only_unread'] = 'alleen met ongelezen berichten';
@@ -159,18 +189,27 @@ $labels['listcolumns'] = 'Kolommen';
$labels['listsorting'] = 'Sorteerkolom';
$labels['listorder'] = 'Sorteervolgorde';
$labels['listmode'] = 'Lijstweergave mode';
+
$labels['folderactions'] = 'Acties voor map...';
$labels['compact'] = 'Comprimeren';
$labels['empty'] = 'Legen';
+
$labels['quota'] = 'Gebruikte schijfruimte';
$labels['unknown'] = 'onbekend';
$labels['unlimited'] = 'onbeperkt';
+
$labels['quicksearch'] = 'Snelzoeken';
$labels['resetsearch'] = 'Zoek opnieuw';
$labels['searchmod'] = 'Zoekopties';
$labels['msgtext'] = 'Volledig bericht';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Openen in een nieuw venster';
$labels['emlsave'] = 'Opslaan (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Als nieuw bewerken';
$labels['send'] = 'Verzenden';
$labels['sendmessage'] = 'Bericht verzenden';
@@ -182,86 +221,173 @@ $labels['returnreceipt'] = 'Ontvangstbevestiging';
$labels['dsn'] = 'Delivery Status Notification';
$labels['mailreplyintro'] = 'Op $date, schreef $sender:';
$labels['originalmessage'] = 'Orgineel bericht';
+
$labels['editidents'] = 'Bewerk identiteiten';
$labels['spellcheck'] = 'Spellen';
$labels['checkspelling'] = 'Controleer spelling';
$labels['resumeediting'] = 'Hervat bewerken';
$labels['revertto'] = 'Ongedaan maken';
+
$labels['attach'] = 'Bijvoegen';
$labels['attachments'] = 'Bijlagen';
$labels['upload'] = 'Uploaden';
$labels['uploadprogress'] = '$percent ($current van $total)';
$labels['close'] = 'Sluiten';
$labels['messageoptions'] = 'Opties voor bericht...';
+
$labels['low'] = 'Laag';
$labels['lowest'] = 'Laagste';
$labels['normal'] = 'Normaal';
$labels['high'] = 'Hoog';
$labels['highest'] = 'Hoogste';
+
$labels['nosubject'] = '(geen onderwerp)';
$labels['showimages'] = 'Toon afbeeldingen';
$labels['alwaysshow'] = 'Afbeeldingen van $sender altijd tonen';
$labels['isdraft'] = 'Dit is een concept bericht.';
$labels['andnmore'] = '$nr meer...';
$labels['togglemoreheaders'] = 'Toon meer berichthoofden';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Platte tekst';
$labels['savesentmessagein'] = 'Bewaar verzonden bericht in';
$labels['dontsave'] = 'niet bewaren';
$labels['maxuploadsize'] = 'Maximum toegestane bestandsgrootte is $size';
+
$labels['addcc'] = 'Cc toevoegen';
$labels['addbcc'] = 'Bcc toevoegen';
$labels['addreplyto'] = 'Antwoorden aan toevoegen';
$labels['addfollowupto'] = 'Followup aan toevoegen';
+
+// mdn
$labels['mdnrequest'] = 'De afzender heeft een ontvangstbevestiging gevraagd. Wilt u deze versturen?';
$labels['receiptread'] = 'Ontvangstbevestiging (gelezen)';
$labels['yourmessage'] = 'Dir is een onvangstbevestiging voor uw bericht';
$labels['receiptnote'] = 'Opmerking: deze ontvangstbevestiging houdt enkel in dat het bericht was weergegeven bij de ontvanger. Er is geen garantie dat de ontvanger het bericht daadwerkelijk heeft gelezen en/of begrepen.';
+
+// address boook
$labels['name'] = 'Naam';
$labels['firstname'] = 'Voornaam';
$labels['surname'] = 'Achternaam';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'E-mailadres';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Geselecteerde contactpersoon toevoegen';
$labels['editcontact'] = 'Contactpersoon bewerken';
$labels['contacts'] = 'Contactpersonen';
$labels['contactproperties'] = 'Eigenschappen van contactpersoon';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Bewerken';
$labels['cancel'] = 'Annuleren';
$labels['save'] = 'Opslaan';
$labels['delete'] = 'Verwijderen';
$labels['rename'] = 'Hernoemen';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Contactpersoon toevoegen';
$labels['deletecontact'] = 'Verwijder geselecteerde contactpersonen';
$labels['composeto'] = 'Mail sturen aan';
$labels['contactsfromto'] = 'Contactpersonen $from - $to van $count';
$labels['print'] = 'Afdrukken';
$labels['export'] = 'Exporteren';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Exporteer contactpersonen in vCard formaat';
$labels['newcontactgroup'] = 'Maak een nieuwe contactgroep';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Toon vorige';
$labels['firstpage'] = 'Toon eerste';
$labels['nextpage'] = 'Toon volgende';
$labels['lastpage'] = 'Toon laatste';
+
$labels['group'] = 'Groep';
$labels['groups'] = 'Groepen';
$labels['personaladrbook'] = 'Personlijke adressen';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'Importeer';
$labels['importcontacts'] = 'Contactpersonen importeren';
$labels['importfromfile'] = 'Importeer van bestand:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'Vervang het complete adresboek';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Klaar';
+
+// settings
$labels['settingsfor'] = 'Instellingen voor';
+$labels['about'] = 'About';
$labels['preferences'] = 'Voorkeuren';
$labels['userpreferences'] = 'Gebruikersvoorkeuren';
$labels['editpreferences'] = 'Gebruikersvoorkeuren bewerken';
+
$labels['identities'] = 'Identiteiten';
$labels['manageidentities'] = 'Beheer de identiteiten voor deze gebruiker';
$labels['newidentity'] = 'Nieuwe identiteit';
+
$labels['newitem'] = 'Nieuw';
$labels['edititem'] = 'Bewerken';
+
$labels['preferhtml'] = 'Gebruik HTML-opmaak';
$labels['defaultcharset'] = 'Standaard karakterset';
$labels['htmlmessage'] = 'HTML-bericht';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Uitgebreide datumweergave';
$labels['setdefault'] = 'Als standaard instellen';
$labels['autodetect'] = 'Automatisch';
@@ -270,9 +396,13 @@ $labels['timezone'] = 'Tijdzone';
$labels['pagesize'] = 'Berichten per pagina';
$labels['signature'] = 'Handtekening';
$labels['dstactive'] = 'Zomer/wintertijd';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML berichten opmaken';
$labels['htmlonreply'] = 'enkel bij beantwoorden van een HTML bericht';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML handtekening';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Toon voorbeeldvenster';
$labels['skin'] = 'Opmaakprofiel';
$labels['logoutclear'] = 'Prullenbak legen bij uitloggen';
@@ -290,12 +420,14 @@ $labels['readwhendeleted'] = 'Bericht na verwijderen als gelezen markeren';
$labels['flagfordeletion'] = 'Bericht niet verwijderen maar als verwijderd markeren';
$labels['skipdeleted'] = 'Verwijderde berichten niet tonen';
$labels['deletealways'] = 'Verwijder bericht wanneer verplaatsen naar Prullenbak mislukt';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Geef externe toegevoegde berichten weer';
$labels['fromknownsenders'] = 'Van bekende afzenders';
$labels['always'] = 'altijd';
$labels['showinlineimages'] = 'Toon bijgevoegde afbeeldingen onder het bericht';
$labels['autosavedraft'] = 'Automatisch als concept opslaan';
$labels['everynminutes'] = 'elke $n minuten';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nooit';
$labels['immediately'] = 'onmiddellijk';
$labels['messagesdisplaying'] = 'Berichten weergave';
@@ -309,12 +441,15 @@ $labels['advancedoptions'] = 'Geavanceerde opties';
$labels['focusonnewmessage'] = 'Focus browserscherm bij nieuw bericht';
$labels['checkallfolders'] = 'Controleer alle mappen op nieuwe berichten';
$labels['displaynext'] = 'Na verplaatsen/verwijderen het volgende bericht tonen';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Hoofdopties';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Sectie';
$labels['maintenance'] = 'Onderhoud';
$labels['newmessage'] = 'Nieuw bericht';
$labels['signatureoptions'] = 'Opties voor handtekening';
$labels['whenreplying'] = 'Bij beantwoorden';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'begin bericht boven het origineel';
$labels['replybottomposting'] = 'begin bericht onder het origineel';
$labels['replyremovesignature'] = 'Verwijder handtekening uit het origneel bij beantwoorden';
@@ -327,6 +462,20 @@ $labels['afternseconds'] = 'Na $n seconden';
$labels['reqmdn'] = 'Vraag altijd een ontvangstbevestiging';
$labels['reqdsn'] = 'Vraag altijd een Delivery Status Notification';
$labels['replysamefolder'] = 'Plaats antwoorden in de map van het beantwoorde bericht';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Map';
$labels['folders'] = 'Mappen';
$labels['foldername'] = 'Naam';
@@ -343,13 +492,30 @@ $labels['location'] = 'Locatie';
$labels['info'] = 'Informatie';
$labels['getfoldersize'] = 'Klik voor de grootte van de map';
$labels['changesubscription'] = 'Klik voor abonnement te wijzigen';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Sorteren op';
$labels['sortasc'] = 'Oplopend sorteren';
$labels['sortdesc'] = 'Aflopend sorteren';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engels';
$labels['westerneuropean'] = 'West-Europees';
@@ -368,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamees';
$labels['japanese'] = 'Japans';
$labels['korean'] = 'Koreaans';
$labels['chinese'] = 'Chinees';
+
?>
diff --git a/program/localization/nl_BE/messages.inc b/program/localization/nl_BE/messages.inc
index a90e250d9..d87329dc3 100644
--- a/program/localization/nl_BE/messages.inc
+++ b/program/localization/nl_BE/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Er is een fout opgetreden!';
$messages['loginfailed'] = 'Aanmelden mislukt...';
$messages['cookiesdisabled'] = 'Uw browser accepteert geen cookies...';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Database Fout!';
$messages['requesttimedout'] = 'Aanvraag verlopen';
$messages['errorreadonly'] = 'Kon opdracht niet uitvoeren. Map is alleen-lezen.';
$messages['errornoperm'] = 'Kon opdracht niet uitvoeren. Toegang geweigerd.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Ongeldige aanvraag! Er zijn geen gegevens opgeslagen.';
$messages['invalidhost'] = 'Ongeldige server.';
$messages['nomessagesfound'] = 'Er zijn geen berichten in deze map...';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'De gevraagde contactpersoon was niet gevonden.';
$messages['contactsearchonly'] = 'Voer enkele zoektermen in om de contactpersonen te zoeken.';
$messages['sendingfailed'] = 'Kon het bericht niet versturen...';
$messages['senttooquickly'] = 'U moet $sec second(en) wachten om het bericht te versturen.';
+$messages['errorsavingsent'] = 'Er is een fout opgetreden tijdens het opslaan van het verzonden bericht.';
+$messages['errorsaving'] = 'Er is een fout opgetreden bij het opslaan van het bericht...';
$messages['errormoving'] = 'Kon de bericht(en) niet verplaatsen...';
$messages['errorcopying'] = 'Kon de bericht(en) niet kopiëren';
$messages['errordeleting'] = 'Kon de bericht(en) niet verwijderen...';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Opmaak van het bericht wordt gewist...';
$messages['messageopenerror'] = 'Kon het bericht niet ophalen van de server.';
$messages['fileuploaderror'] = 'Bestandsupload mislukt.';
$messages['filesizeerror'] = 'Het bestand overschrijdt de maximum grootte van $size.';
+$messages['copysuccess'] = '$nr adressen met succes gekopieerd.';
+$messages['copyerror'] = 'Kon de adressen niet kopiëren.';
$messages['sourceisreadonly'] = 'Het adres kan niet worden opgeslagen.';
$messages['errorsavingcontact'] = 'Kon de contactpersoon niet bewaren.';
$messages['movingmessage'] = 'Bericht wordt verplaatst...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'SMTP Fout: $msg';
$messages['emailformaterror'] = 'Ongeldig e-mailadres: $email';
$messages['toomanyrecipients'] = 'Te veel geadresseerden. Verminder de hoeveelheid geadresseerden tot $max.';
$messages['maxgroupmembersreached'] = 'Het aantal leden van de groep groter is dan de maximale van $max.';
+$messages['internalerror'] = 'Er is een interne fout opgetreden. Probeer het nogmaals.';
$messages['contactdelerror'] = 'Kon contactpersoon niet verwijderen.';
$messages['contactdeleted'] = 'Contactpersoon succesvol verwijderd.';
$messages['contactrestoreerror'] = 'Verwijderde contactpersonen konden niet hersteld worden.';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'U heeft niet voldoende rechten een map te make
$messages['messagetoobig'] = 'Dit deel van uw bericht is te groot om het te verwerken.';
$messages['attachmentvalidationerror'] = 'OPGELET! Deze bijlage is verdacht omdat het aangetroffen bestandstype niet overeenkomt met het verwachte type. Indien u de afzender niet vertrouwd open deze bijlage in geen geval in uw browser aangezien deze schadelijk data kan bevatten.<br /><br /><em>Verwacht: $expected; Aangetroffen: $detected</em>';
$messages['noscriptwarning'] = 'Opgelet: deze webmail service vereist JavaScript! Om deze service te kunnen gebruiken dient u JavaScript toe te staan in de instellingen van uw browser.';
+
?>
diff --git a/program/localization/nl_NL/labels.inc b/program/localization/nl_NL/labels.inc
index b5f273659..7bd48bd4a 100644
--- a/program/localization/nl_NL/labels.inc
+++ b/program/localization/nl_NL/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Welkom bij $product';
$labels['username'] = 'Gebruikersnaam';
$labels['password'] = 'Wachtwoord';
$labels['server'] = 'Server';
$labels['login'] = 'Inloggen';
+
+// taskbar
$labels['logout'] = 'Uitloggen';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Instellingen';
$labels['addressbook'] = 'Adresboek';
+
+// mailbox names
$labels['inbox'] = 'Postvak In';
$labels['drafts'] = 'Concepten';
$labels['sent'] = 'Verzonden';
$labels['trash'] = 'Prullenbak';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Toon echte namen voor speciale mappen';
+
+// message listing
$labels['subject'] = 'Onderwerp';
$labels['from'] = 'Afzender';
$labels['sender'] = 'Afzender';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioriteit';
$labels['organization'] = 'Organisatie';
$labels['readstatus'] = 'Gelezen?';
$labels['listoptions'] = 'Lijstopties...';
+
$labels['mailboxlist'] = 'Mappen';
$labels['messagesfromto'] = 'Bericht $from t/m $to van $count';
$labels['threadsfromto'] = 'Conversatie $from t/m $to van $count';
$labels['messagenrof'] = 'Bericht $nr van $count';
$labels['fromtoshort'] = '$from – $to van $count';
+
$labels['copy'] = 'Kopiëren';
$labels['move'] = 'Verplaats';
$labels['moveto'] = 'Verplaats naar...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Download';
$labels['open'] = 'Openen';
$labels['showattachment'] = 'Toon';
$labels['showanyway'] = 'Laat toch zien';
+
$labels['filename'] = 'Bestandsnaam';
$labels['filesize'] = 'Bestandsgrootte';
+
$labels['addtoaddressbook'] = 'Toevoegen aan adresboek';
+
+// weekdays short
$labels['sun'] = 'Zo';
$labels['mon'] = 'Ma';
$labels['tue'] = 'Di';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Wo';
$labels['thu'] = 'Do';
$labels['fri'] = 'Vr';
$labels['sat'] = 'Za';
+
+// weekdays long
$labels['sunday'] = 'zondag';
$labels['monday'] = 'maandag';
$labels['tuesday'] = 'dinsdag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'woensdag';
$labels['thursday'] = 'donderdag';
$labels['friday'] = 'vrijdag';
$labels['saturday'] = 'zaterdag';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mrt';
@@ -85,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'dec';
+
+// months long
$labels['longjan'] = 'januari';
$labels['longfeb'] = 'februari';
$labels['longmar'] = 'maart';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'september';
$labels['longoct'] = 'oktober';
$labels['longnov'] = 'november';
$labels['longdec'] = 'december';
+
$labels['today'] = 'Vandaag';
+
+// toolbar buttons
$labels['refresh'] = 'Vernieuwen';
$labels['checkmail'] = 'Controleer op nieuwe berichten';
$labels['compose'] = 'Opstellen';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Meer acties...';
$labels['more'] = 'Meer';
$labels['back'] = 'Terug';
$labels['options'] = 'Opties';
+
$labels['select'] = 'Selecteer';
$labels['all'] = 'Allemaal';
$labels['none'] = 'Geen';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Alles uitklappen';
$labels['expand-unread'] = 'Ongelezen uitklappen';
$labels['collapse-all'] = 'Alles inklappen';
$labels['threaded'] = 'Conversaties';
+
$labels['autoexpand_threads'] = 'Klap alle conversaties uit';
$labels['do_expand'] = 'alle conversaties';
$labels['expand_only_unread'] = 'alleen met ongelezen berichten';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Kolommen';
$labels['listsorting'] = 'Sorteer op kolom';
$labels['listorder'] = 'Sorteervolgorde';
$labels['listmode'] = 'Lijstweergave';
+
$labels['folderactions'] = 'Mapacties...';
$labels['compact'] = 'Opschonen';
$labels['empty'] = 'Legen';
-$labels['importmessages'] = 'Berichten importeren';
+
$labels['quota'] = 'Opslagverbruik';
$labels['unknown'] = 'onbekend';
$labels['unlimited'] = 'onbeperkt';
+
$labels['quicksearch'] = 'Snel zoeken';
$labels['resetsearch'] = 'Wis zoekopdracht';
$labels['searchmod'] = 'Zoekopties';
$labels['msgtext'] = 'Gehele bericht';
$labels['body'] = 'Inhoud';
-$labels['type'] = 'Type';
-$labels['namex'] = 'Naam';
+
$labels['openinextwin'] = 'Openen in een nieuw venster';
$labels['emlsave'] = 'Opslaan (.eml)';
$labels['changeformattext'] = 'Weergeven als platte tekst';
$labels['changeformathtml'] = 'Weergeven als opgemaakte tekst (HTML)';
+
+// message compose
$labels['editasnew'] = 'Als nieuw bewerken';
$labels['send'] = 'Verzenden';
$labels['sendmessage'] = 'Verstuur bericht';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Ontvangstbevestiging';
$labels['dsn'] = 'Afleveringsbericht (DSN)';
$labels['mailreplyintro'] = '$sender schreef op $date:';
$labels['originalmessage'] = 'Oorspronkelijke bericht';
+
$labels['editidents'] = 'Identiteiten bewerken';
$labels['spellcheck'] = 'Spelling';
$labels['checkspelling'] = 'Controleer spelling';
$labels['resumeediting'] = 'Doorgaan met opstellen';
$labels['revertto'] = 'Terugwijzigen in';
-$labels['responses'] = 'Reacties';
-$labels['insertresponse'] = 'Reactie invoegen';
-$labels['manageresponses'] = 'Reacties beheren';
-$labels['savenewresponse'] = 'Nieuwe reactie opslaan';
-$labels['editresponses'] = 'Bewerk reactie';
-$labels['editresponse'] = 'Bewerk reactie';
-$labels['responsename'] = 'Naam';
-$labels['responsetext'] = 'Reactie';
+
$labels['attach'] = 'Bijvoegen';
$labels['attachments'] = 'Bijlagen';
$labels['upload'] = 'Toevoegen';
$labels['uploadprogress'] = '$percent ($current van $total)';
$labels['close'] = 'Sluit';
$labels['messageoptions'] = 'Berichtopties...';
+
$labels['low'] = 'Laag';
$labels['lowest'] = 'Laagste';
$labels['normal'] = 'Normaal';
$labels['high'] = 'Hoog';
$labels['highest'] = 'Hoogste';
+
$labels['nosubject'] = '(geen onderwerp)';
$labels['showimages'] = 'Toon afbeeldingen';
$labels['alwaysshow'] = 'Afbeeldingen van $sender altijd tonen';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Dit is een conceptbericht.';
$labels['andnmore'] = '$nr meer...';
$labels['togglemoreheaders'] = 'Toon meer berichtheaders';
$labels['togglefullheaders'] = 'Originele berichtheaders aan/uit';
+
$labels['htmltoggle'] = 'Opgemaakt (HTML)';
$labels['plaintoggle'] = 'Platte tekst';
$labels['savesentmessagein'] = 'Bewaar verzonden bericht in';
$labels['dontsave'] = 'niet bewaren';
$labels['maxuploadsize'] = 'Maximum toegestane bestandsgrootte is $size';
+
$labels['addcc'] = 'Cc toevoegen';
$labels['addbcc'] = 'Bcc toevoegen';
$labels['addreplyto'] = 'Antwoord-aan toevoegen';
$labels['addfollowupto'] = 'Followup-To toevoegen';
+
+// mdn
$labels['mdnrequest'] = 'De afzender van dit bericht heeft gevraagd een melding te ontvangen wanneer u dit bericht heeft gelezen. Wilt u deze melding verzenden?';
$labels['receiptread'] = 'Ontvangstbevestiging (gelezen)';
$labels['yourmessage'] = 'Dit is een ontvangstbevestiging voor uw bericht';
$labels['receiptnote'] = 'Let op: Dit bevestigt alleen dat uw bericht bij de geadresseerde is weergegeven. Er is geen garantie dat de geadresseerde het bericht daadwerkelijk heeft gelezen of de inhoud ervan heeft begrepen.';
+
+// address boook
$labels['name'] = 'Weergavenaam';
$labels['firstname'] = 'Voornaam';
$labels['surname'] = 'Achternaam';
@@ -270,6 +301,7 @@ $labels['search'] = 'Zoeken';
$labels['advsearch'] = 'Geavanceerd zoeken';
$labels['advanced'] = 'Geavanceerd';
$labels['other'] = 'Anders';
+
$labels['typehome'] = 'Thuis';
$labels['typework'] = 'Werk';
$labels['typeother'] = 'Anders';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Website';
$labels['typeblog'] = 'Weblog';
$labels['typeprofile'] = 'Profiel';
+
$labels['addfield'] = 'Veld toevoegen...';
$labels['addcontact'] = 'Nieuwe contactpersoon toevoegen';
$labels['editcontact'] = 'Contactpersoon wijzigen';
$labels['contacts'] = 'Contactpersonen';
$labels['contactproperties'] = 'Gegevens van contactpersoon';
$labels['personalinfo'] = 'Persoonlijke informatie';
+
$labels['edit'] = 'Wijzig';
$labels['cancel'] = 'Annuleren';
$labels['save'] = 'Opslaan';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Hernoemen';
$labels['addphoto'] = 'Toevoegen';
$labels['replacephoto'] = 'Vervangen';
$labels['uploadphoto'] = 'Foto uploaden';
+
$labels['newcontact'] = 'Voeg een nieuwe contactpersoon toe';
$labels['deletecontact'] = 'Verwijder geselecteerde contactpersonen';
$labels['composeto'] = 'Stuur een bericht naar';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Maak een nieuwe contactgroep';
$labels['grouprename'] = 'Groep hernoemen';
$labels['groupdelete'] = 'Groep verwijderen';
$labels['groupremoveselected'] = 'Verwijder geselecteerde contactpersonen van groep';
+
$labels['previouspage'] = 'Vorige pagina';
$labels['firstpage'] = 'Eerste pagina';
$labels['nextpage'] = 'Volgende pagina';
$labels['lastpage'] = 'Laatste pagina';
+
$labels['group'] = 'Groep';
$labels['groups'] = 'Groepen';
-$labels['listgroup'] = 'Toon groepsleden';
$labels['personaladrbook'] = 'Persoonlijk adresboek';
+
$labels['searchsave'] = 'Zoekopdracht opslaan';
$labels['searchdelete'] = 'Zoekopdracht verwijderen';
+
$labels['import'] = 'Importeren';
$labels['importcontacts'] = 'Contactpersonen importeren';
$labels['importfromfile'] = 'Importeer van bestand:';
-$labels['importtarget'] = 'Contacten toevoegen aan';
+$labels['importtarget'] = 'Voeg nieuwe contactpersonen toe aan adresboek:';
$labels['importreplace'] = 'Vervang het complete adresboek';
-$labels['importgroups'] = 'Importeer groepstoewijzingen';
-$labels['importgroupsall'] = 'Allemaal (maak groepen aan indien nodig)';
-$labels['importgroupsexisting'] = 'Alleen voor bestaande groepen';
$labels['importdesc'] = 'U kunt contactpersonen uploaden van een bestaand adresboek<br/>Momenteel wordt het importeren van adresboeken in <a href="http://en.wikipedia.org/wiki/VCard">vCard-formaat</a> of CSV-formaat (kommagescheiden tekstbestand) ondersteund.';
$labels['done'] = 'Klaar';
+
+// settings
$labels['settingsfor'] = 'Instellingen voor';
$labels['about'] = 'Over';
$labels['preferences'] = 'Instellingen';
$labels['userpreferences'] = 'Gebruikersinstellingen';
$labels['editpreferences'] = 'Wijzig gebruikersinstellingen';
+
$labels['identities'] = 'Identiteiten';
$labels['manageidentities'] = 'Beheer identiteiten voor dit account';
$labels['newidentity'] = 'Identiteit toevoegen';
+
$labels['newitem'] = 'Nieuw item';
$labels['edititem'] = 'Wijzig item';
+
$labels['preferhtml'] = 'Toon berichten in HTML-opmaak';
$labels['defaultcharset'] = 'Standaard tekenset';
$labels['htmlmessage'] = 'HTML-bericht';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Negeer woorden met cijfers';
$labels['spellcheckignorecaps'] = 'Negeer woorden welke volledig uit hoofdletters bestaan';
$labels['addtodict'] = 'Voeg toe aan woordenboek';
$labels['mailtoprotohandler'] = 'Registreer protocolhandler voor mailto: links';
-$labels['standardwindows'] = 'Behandel pop-ups als normale vensters';
$labels['forwardmode'] = 'Berichten doorsturen';
$labels['inline'] = 'invoegen';
$labels['asattachment'] = 'als bijlage';
+
$labels['folder'] = 'Map';
$labels['folders'] = 'Mappen';
$labels['foldername'] = 'Mapnaam';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Maptype';
$labels['personalfolder'] = 'Privémap';
$labels['otherfolder'] = 'Map van andere gebruiker';
$labels['sharedfolder'] = 'Publieke map';
+
$labels['sortby'] = 'Sorteer op';
$labels['sortasc'] = 'Sorteer oplopend';
$labels['sortdesc'] = 'Sorteer aflopend';
$labels['undo'] = 'Ongedaan maken';
+
$labels['installedplugins'] = 'Geïnstalleerde plug-ins';
$labels['plugin'] = 'Invoegtoepassing';
$labels['version'] = 'Versie';
$labels['source'] = 'Broncode';
$labels['license'] = 'Licentie';
$labels['support'] = 'Hulp nodig?';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engels';
$labels['westerneuropean'] = 'West-Europees';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamees';
$labels['japanese'] = 'Japans';
$labels['korean'] = 'Koreaans';
$labels['chinese'] = 'Chinees';
+
?>
diff --git a/program/localization/nl_NL/messages.inc b/program/localization/nl_NL/messages.inc
index f6081bd8e..4a67e1590 100644
--- a/program/localization/nl_NL/messages.inc
+++ b/program/localization/nl_NL/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Er is een fout opgetreden!';
$messages['loginfailed'] = 'Aanmelden mislukt.';
$messages['cookiesdisabled'] = 'Uw browser accepteert geen cookies.';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Bericht succesvol verstuurd.';
$messages['savingmessage'] = 'Bericht wordt opgeslagen...';
$messages['messagesaved'] = 'Bericht opgeslagen in Concepten.';
$messages['successfullysaved'] = 'Succesvol opgeslagen.';
-$messages['savingresponse'] = 'Reactie wordt opgeslagen...';
-$messages['deleteresponseconfirm'] = 'Weet u zeker dat u deze reactie wilt verwijderen?';
$messages['addedsuccessfully'] = 'Contactpersoon succesvol toegevoegd aan het adresboek.';
$messages['contactexists'] = 'Er bestaat al een contactpersoon met dit e-mailadres.';
$messages['contactnameexists'] = 'Er bestaat al een contactpersoon met deze naam.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Opmaak van bericht verwijderen...';
$messages['messageopenerror'] = 'Kan het bericht niet van de server laden.';
$messages['fileuploaderror'] = 'Bestand uploaden mislukt.';
$messages['filesizeerror'] = 'Het bestand overschrijdt de maximale grootte van $size.';
-$messages['copysuccess'] = '$nr contactpersonen succesvol gekopieerd.';
-$messages['movesuccess'] = '$nr contactpersonen succesvol verplaatst.';
-$messages['copyerror'] = 'Kon geen contactpersoon kopieren.';
-$messages['moveerror'] = 'Kon geen contactpersoon verplaatsen.';
+$messages['copysuccess'] = '$nr adressen succesvol gekopieerd.';
+$messages['copyerror'] = 'Kan geen adressen kopiëren.';
$messages['sourceisreadonly'] = 'Deze adresbron is alleen-lezen.';
$messages['errorsavingcontact'] = 'Kan contactpersoon niet opslaan.';
$messages['movingmessage'] = 'Bericht(en) verplaatsen...';
$messages['copyingmessage'] = 'Bericht(en) kopiëren...';
$messages['copyingcontact'] = 'Contact(en) kopiëren...';
-$messages['movingcontact'] = 'Contact(en) verplaatsen...';
$messages['deletingmessage'] = 'Bericht(en) verwijderen...';
$messages['markingmessage'] = 'Bericht(en) markeren...';
$messages['addingmember'] = 'Contactpersonen worden toegevoegd aan groep...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importeren, even geduld...';
$messages['importformaterror'] = 'Importeren mislukt! Het geüploade bestand is geen geldig importbestand.';
$messages['importconfirm'] = '<b>$inserted contactpersonen succesvol geïmporteerd</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestaande contactpersonen overgeslagen</b>';
-$messages['importmessagesuccess'] = '$nr berichten succesvol geïmporteerd';
-$messages['importmessageerror'] = 'Importeren mislukt! Het verstuurde bestand is geen geldig bericht of mailboxbestand';
$messages['opnotpermitted'] = 'Deze bewerking is niet toegestaan!';
$messages['nofromaddress'] = 'Het e-mailadres ontbreekt in de geselecteerde identiteit.';
$messages['editorwarning'] = 'Door het overschakelen naar de platte-tekstverwerker gaat alle opmaak verloren. Weet u zeker dat u verder wilt gaan?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Niet in staat om map aan te maken of verplaats
$messages['messagetoobig'] = 'Het bericht is te groot om te verwerken.';
$messages['attachmentvalidationerror'] = 'WAARSCHUWING! Deze bijlage is verdacht omdat het bestandstype niet overeen komt met het bestandstype dat gespecificeerd is in het bericht. Open deze bijlage niet in uw browser als u de afzender niet vertrouwt, aangezien deze bijlage kwaadaardige inhoud kan bevatten.<br /><br /><em>Verwacht: $expected; gevonden: $detected</em>';
$messages['noscriptwarning'] = 'Waarschuwing: deze webmailapplicatie vereist Javascript! U dient Javascript in te schakelen in uw browserinstellingen wanneer u gebruik wilt maken van deze applicatie.';
+
?>
diff --git a/program/localization/nn_NO/labels.inc b/program/localization/nn_NO/labels.inc
index eae5fc639..d1a1c5700 100644
--- a/program/localization/nn_NO/labels.inc
+++ b/program/localization/nn_NO/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Velkomen til $product';
$labels['username'] = 'Brukarnamn';
$labels['password'] = 'Passord';
$labels['server'] = 'Tenar';
$labels['login'] = 'Logg inn';
+
+// taskbar
$labels['logout'] = 'Logg ut';
$labels['mail'] = 'E-post';
$labels['settings'] = 'Personlege innstillingar';
$labels['addressbook'] = 'Adressebok';
+
+// mailbox names
$labels['inbox'] = 'Innboks';
$labels['drafts'] = 'Kladd';
$labels['sent'] = 'Sendt';
$labels['trash'] = 'Sletta';
$labels['junk'] = 'Søppel';
+
+// message listing
$labels['subject'] = 'Emne';
$labels['from'] = 'Frå';
$labels['sender'] = 'Avsendar';
@@ -43,20 +53,27 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organisasjon';
$labels['readstatus'] = 'Lesestatus';
$labels['listoptions'] = 'Listeinnstillingar …';
+
$labels['mailboxlist'] = 'Mapper';
$labels['messagesfromto'] = 'Melding $from til $to av $count';
$labels['threadsfromto'] = 'Tråd $from til $to ($count stk)';
$labels['messagenrof'] = 'Melding $nr av $count';
$labels['fromtoshort'] = '$from-$to av $count';
+
$labels['copy'] = 'Kopier';
$labels['move'] = 'Flytt';
$labels['moveto'] = 'flytt til …';
$labels['download'] = 'Last ned';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Vis';
$labels['showanyway'] = 'Vis likevel';
+
$labels['filename'] = 'Filnamn';
$labels['filesize'] = 'Filstorleik';
+
$labels['addtoaddressbook'] = 'Legg til i adressebok';
+
+// weekdays short
$labels['sun'] = 'Sun';
$labels['mon'] = 'MÃ¥n';
$labels['tue'] = 'Tys';
@@ -64,6 +81,8 @@ $labels['wed'] = 'Ons';
$labels['thu'] = 'Tor';
$labels['fri'] = 'Fre';
$labels['sat'] = 'Lau';
+
+// weekdays long
$labels['sunday'] = 'Sundag';
$labels['monday'] = 'MÃ¥ndag';
$labels['tuesday'] = 'Tysdag';
@@ -71,6 +90,8 @@ $labels['wednesday'] = 'Onsdag';
$labels['thursday'] = 'Torsdag';
$labels['friday'] = 'Fredag';
$labels['saturday'] = 'Laurdag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -83,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Des';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'Mars';
@@ -95,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Desember';
+
$labels['today'] = 'I dag';
+
+// toolbar buttons
$labels['refresh'] = 'Frisk opp att';
$labels['checkmail'] = 'Sjå etter nye meldingar';
$labels['compose'] = 'Skriv ei melding';
@@ -128,6 +154,7 @@ $labels['moreactions'] = 'Fleire handlingar';
$labels['more'] = 'Meir';
$labels['back'] = 'Tilbake';
$labels['options'] = 'Innstillingar';
+
$labels['select'] = 'Vel';
$labels['all'] = 'Alle';
$labels['none'] = 'Ingen';
@@ -135,6 +162,7 @@ $labels['currpage'] = 'Gjeldande side';
$labels['unread'] = 'Uleste';
$labels['flagged'] = 'Flagga';
$labels['unanswered'] = 'Ikkje svara';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Sletta';
$labels['undeleted'] = 'Ikkje sletta';
$labels['invert'] = 'Inverter';
@@ -145,6 +173,7 @@ $labels['expand-all'] = 'Utvid alle';
$labels['expand-unread'] = 'Utvid ulesne';
$labels['collapse-all'] = 'Slå saman alle';
$labels['threaded'] = 'Tråda';
+
$labels['autoexpand_threads'] = 'Utvid eposttråder';
$labels['do_expand'] = 'alle tråder';
$labels['expand_only_unread'] = 'berre med ulesne epostar';
@@ -160,19 +189,27 @@ $labels['listcolumns'] = 'Vis kolonner';
$labels['listsorting'] = 'Sorteringskolonne';
$labels['listorder'] = 'Sorteringsveg';
$labels['listmode'] = 'Listevisningmodus';
+
$labels['folderactions'] = 'Mappehandlingar';
$labels['compact'] = 'Kompakt';
$labels['empty'] = 'Tom';
+
$labels['quota'] = 'Plassbruk';
$labels['unknown'] = 'ukjend';
$labels['unlimited'] = 'ubegrensa';
+
$labels['quicksearch'] = 'Snøggsøk';
$labels['resetsearch'] = 'Tilbakestill søk';
$labels['searchmod'] = 'Søkeutsagn';
$labels['msgtext'] = 'Heile eposten';
$labels['body'] = 'Meldingstekst';
+
$labels['openinextwin'] = 'Opna i nytt vindauga';
$labels['emlsave'] = 'Last ned (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Rediger som ny';
$labels['send'] = 'Send';
$labels['sendmessage'] = 'Send meldinga no';
@@ -184,22 +221,26 @@ $labels['returnreceipt'] = 'Epost-er-lest-kvittering';
$labels['dsn'] = 'Leveringsstatus';
$labels['mailreplyintro'] = 'Den $date skreiv $sender:';
$labels['originalmessage'] = 'Opphavleg melding';
+
$labels['editidents'] = 'Redigere identitetar';
$labels['spellcheck'] = 'Stavekontroll';
$labels['checkspelling'] = 'Stavekontroll';
$labels['resumeediting'] = 'Hald fram redigering';
$labels['revertto'] = 'Tilbakestill til';
+
$labels['attach'] = 'Legg ved';
$labels['attachments'] = 'Vedlegg';
$labels['upload'] = 'Last opp';
$labels['uploadprogress'] = '$percent ($current frå $total)';
$labels['close'] = 'Steng';
$labels['messageoptions'] = 'Meldingsalternativ';
+
$labels['low'] = 'LÃ¥g';
$labels['lowest'] = 'LÃ¥gast';
$labels['normal'] = 'Normal';
$labels['high'] = 'Høg';
$labels['highest'] = 'Høgast';
+
$labels['nosubject'] = '(ingen emne)';
$labels['showimages'] = 'Vis bilete';
$labels['alwaysshow'] = 'Alltid vis bilete frå $sender';
@@ -207,19 +248,25 @@ $labels['isdraft'] = 'Dette er ein kladd.';
$labels['andnmore'] = '$nr fleire …';
$labels['togglemoreheaders'] = 'Vis fleire meldingshovud';
$labels['togglefullheaders'] = 'Veksle vising av meldinga sine headere i råformat';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Vanleg tekst';
$labels['savesentmessagein'] = 'Lagra sendt epost i';
$labels['dontsave'] = 'Ikkje lagra';
$labels['maxuploadsize'] = 'Maksimalt tillatte storleik på filar er $size';
+
$labels['addcc'] = 'Legg til kopi';
$labels['addbcc'] = 'Legg til blindkopi';
$labels['addreplyto'] = 'Legg til svaradressa';
$labels['addfollowupto'] = 'Legg til oppfylgjing';
+
+// mdn
$labels['mdnrequest'] = 'Sendaren av denne meldinga ynskjer å få kvittering når du har lest meldinga. Ynskjer du å senda denne kvitteringa?';
$labels['receiptread'] = 'Svarkvittering (eposten-er-lest-kvittering)';
$labels['yourmessage'] = 'Dette er ein retur-kvittering for meldinga di.';
$labels['receiptnote'] = 'Hugs: Denne kvitteringa seier berre at meldinga di vart vist på mottakar sin datamaskin. Det er ingen garanti for at mottakaren faktisk har lese eller forstått innhaldet i meldinga.';
+
+// address boook
$labels['name'] = 'Visingsnamn';
$labels['firstname'] = 'Førenamn';
$labels['surname'] = 'Etternamn';
@@ -254,6 +301,7 @@ $labels['search'] = 'Søk';
$labels['advsearch'] = 'Avansert søk';
$labels['advanced'] = 'Avansert';
$labels['other'] = 'Andre';
+
$labels['typehome'] = 'Heim';
$labels['typework'] = 'Jobb';
$labels['typeother'] = 'Andre';
@@ -268,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Heimeside';
$labels['typeblog'] = 'Blogg';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Legg til felt...';
$labels['addcontact'] = 'Legg til ny kontakt';
$labels['editcontact'] = 'Redigere kontakt';
$labels['contacts'] = 'Kontakter';
$labels['contactproperties'] = 'Eigenskapar';
$labels['personalinfo'] = 'Personleg informasjon';
+
$labels['edit'] = 'Redigere';
$labels['cancel'] = 'Avbryt';
$labels['save'] = 'Lagre';
@@ -282,6 +332,7 @@ $labels['rename'] = 'Gi nytt namn';
$labels['addphoto'] = 'Legg til';
$labels['replacephoto'] = 'Erstatt';
$labels['uploadphoto'] = 'Last opp bilete';
+
$labels['newcontact'] = 'Opprett nytt kontaktkort';
$labels['deletecontact'] = 'Slett valde kontaktar';
$labels['composeto'] = 'Ny melding til';
@@ -295,31 +346,41 @@ $labels['newcontactgroup'] = 'Lag ny kontaktgruppe';
$labels['grouprename'] = 'Endre namn på gruppe';
$labels['groupdelete'] = 'Slett gruppe';
$labels['groupremoveselected'] = 'Fjern valde kontaktar frå gruppe';
+
$labels['previouspage'] = 'Førre side';
$labels['firstpage'] = 'Første side';
$labels['nextpage'] = 'Neste side';
$labels['lastpage'] = 'Siste side';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Gruppar';
$labels['personaladrbook'] = 'Personlege adresser';
+
$labels['searchsave'] = 'Lagre søk';
$labels['searchdelete'] = 'Slett søk';
+
$labels['import'] = 'Importer';
$labels['importcontacts'] = 'Importer kontaktar';
$labels['importfromfile'] = 'Importer frå fil:';
+$labels['importtarget'] = 'Legg til kontakter i adresseboka';
$labels['importreplace'] = 'Byt ut heile adresseboka';
$labels['importdesc'] = 'Du kan laste opp kontaktar frå ei eksisterande adressebok.<br/>Vi støttar adressebøker i formata <a href="http://no.wikipedia.org/wiki/VCard">vCard</a> og CSV (kommaseparert).';
$labels['done'] = 'Ferdig';
+
+// settings
$labels['settingsfor'] = 'Innstillingar for';
$labels['about'] = 'Om';
$labels['preferences'] = 'Innstillingar';
$labels['userpreferences'] = 'Brukarinnstillingar';
$labels['editpreferences'] = 'Redigere brukarinnstillingar';
+
$labels['identities'] = 'Identitetar';
$labels['manageidentities'] = 'Administrere identitetar for denne kontoen';
$labels['newidentity'] = 'Ny identitet';
+
$labels['newitem'] = 'Nytt element';
$labels['edititem'] = 'Redigere element';
+
$labels['preferhtml'] = 'Føretrekk HTML';
$labels['defaultcharset'] = 'Standard karaktersett (charset)';
$labels['htmlmessage'] = 'HTML-melding';
@@ -341,6 +402,7 @@ $labels['htmleditor'] = 'Lag HTML-meldingar';
$labels['htmlonreply'] = 'ved svar på HTML-melding';
$labels['htmlonreplyandforward'] = 'ved vidaresending av eller svar på HTML-melding';
$labels['htmlsignature'] = 'HTML-signatur';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Vis førehandsvisningsboks';
$labels['skin'] = 'Bunad';
$labels['logoutclear'] = 'Fjern alt i «sletta element» ved utlogging';
@@ -413,6 +475,7 @@ $labels['mailtoprotohandler'] = 'Registrer protokollhandsaming for mailto-lenkje
$labels['forwardmode'] = 'Meldingar vidaresendast';
$labels['inline'] = 'i teksten';
$labels['asattachment'] = 'som vedlegg';
+
$labels['folder'] = 'Mappe';
$labels['folders'] = 'Mapper';
$labels['foldername'] = 'Mappenamn';
@@ -433,20 +496,26 @@ $labels['foldertype'] = 'Mappetype';
$labels['personalfolder'] = 'Privat mappe';
$labels['otherfolder'] = 'Annan brukar si mappe';
$labels['sharedfolder'] = 'Offentleg mappe';
+
$labels['sortby'] = 'Sorter etter';
$labels['sortasc'] = 'Sorter stigande';
$labels['sortdesc'] = 'Sorter søkkjande';
$labels['undo'] = 'Gjer om';
+
$labels['installedplugins'] = 'Installerte tillegg';
$labels['plugin'] = 'Tilleggsmodul';
$labels['version'] = 'Versjon';
$labels['source'] = 'Kjelde';
$labels['license'] = 'Lisens';
$labels['support'] = 'FÃ¥ hjelp';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'UNicode';
$labels['english'] = 'Engelsk';
$labels['westerneuropean'] = 'Vest-europesik';
@@ -465,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisk';
$labels['japanese'] = 'Japansk';
$labels['korean'] = 'Koreansk';
$labels['chinese'] = 'Kinesisk';
+
?>
diff --git a/program/localization/nn_NO/messages.inc b/program/localization/nn_NO/messages.inc
index 5c8386c64..3dce30b98 100644
--- a/program/localization/nn_NO/messages.inc
+++ b/program/localization/nn_NO/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Noko gjekk feil.';
$messages['loginfailed'] = 'Feil ved innlogging.';
$messages['cookiesdisabled'] = 'Nettlesaren din tillet ikkje informasjonskapslar (cookies).';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Databasefeil!';
$messages['requesttimedout'] = 'Førespurnaden fekk tidsavbrot';
$messages['errorreadonly'] = 'Klarte ikkje utføra handlinga. Mappa kan berre lesast.';
$messages['errornoperm'] = 'Klarte ikkje utføra handlinga. Nekta tilgang.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Eg forstår ingen ting! Ingen data lagra.';
$messages['invalidhost'] = 'Ugyldig tenarnamn.';
$messages['nomessagesfound'] = 'Ingen meldingar i denne postkassa.';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'Fann ikkje kontakten du såg etter.';
$messages['contactsearchonly'] = 'Skriv søkeord for å finna kontaktar';
$messages['sendingfailed'] = 'Klarte ikkje senda meldinga.';
$messages['senttooquickly'] = 'Du må venta $sec sekund for å senda meldinga.';
+$messages['errorsavingsent'] = 'Klarte ikkje lagra den sende meldinga.';
+$messages['errorsaving'] = 'Det skjedde ein feil ved lagring.';
$messages['errormoving'] = 'Klarte ikkje flytte meldinga(r).';
$messages['errorcopying'] = 'Klarte ikkje kopiera meldinga(r).';
$messages['errordeleting'] = 'Klarte ikkje sletta meldinga(r).';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Fjernar formatering frå meldinga …';
$messages['messageopenerror'] = 'Klarte ikkje lasta meldinga frå tenaren.';
$messages['fileuploaderror'] = 'Filopplasting feila.';
$messages['filesizeerror'] = 'Fila du lasta opp, er større enn største tillatne filstorleik, $size.';
+$messages['copysuccess'] = 'Kopierte $nr adresser.';
+$messages['copyerror'] = 'Klarte ikkje kopiera nokon adresser.';
$messages['sourceisreadonly'] = 'Denne adressekjelda er berre lesbar.';
$messages['errorsavingcontact'] = 'Klarte ikkje lagra kontaktadressa.';
$messages['movingmessage'] = 'Flyttar melding(ar) …';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'SMTP-feil: $msg';
$messages['emailformaterror'] = 'Ugyldig e-postadresse: $email';
$messages['toomanyrecipients'] = 'For mange mottakarar. Senk talet til $max.';
$messages['maxgroupmembersreached'] = 'Ei gruppe kan ikkje ha fleire enn $max medlemmer.';
+$messages['internalerror'] = 'Intern feil. Prøv igjen.';
$messages['contactdelerror'] = 'Klarte ikkje sletta kontakt(ar).';
$messages['contactdeleted'] = 'Kontakt(ar) sletta utan feil.';
$messages['contactrestoreerror'] = 'Klarte ikkje gjenoppretta kontakt(ar).';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'Klarte ikkje laga/flytte mappa i vald overordn
$messages['messagetoobig'] = 'Meldingsdelen er for stor til å prosesserast.';
$messages['attachmentvalidationerror'] = 'ÅTVARING: Dette vedlegget er mistenkjeleg fordi det er av ein type som ikkje stemmer med det som er deklarert i meldinga. Viss du ikkje stolar på avsendaren bør du ikkje opna det i nettlesaren. Det kan ha skadeleg innhald.<br/><br/><em>Venta: $expected; fann: $detected</em>';
$messages['noscriptwarning'] = 'NB: Denne webmail-klienten krev JavaScript. Skru på JavaScript i nettlesaren din for å kunna bruka klienten.';
+
?>
diff --git a/program/localization/pl_PL/csv2vcard.inc b/program/localization/pl_PL/csv2vcard.inc
index c6c5be414..ceb995517 100644
--- a/program/localization/pl_PL/csv2vcard.inc
+++ b/program/localization/pl_PL/csv2vcard.inc
@@ -15,7 +15,14 @@
| Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
*/
+
+// This is a list of CSV column names specified in CSV file header
+// These must be original texts used in Outlook/Thunderbird exported csv files
+// Encoding UTF-8
+
$map = array();
+
+// MS Outlook 2010
$map['anniversary'] = "Rocznica";
$map['assistants_name'] = "Asystent";
$map['assistants_phone'] = "Telefon asystenta";
diff --git a/program/localization/pl_PL/labels.inc b/program/localization/pl_PL/labels.inc
index 4c13fb7c6..426ac381e 100644
--- a/program/localization/pl_PL/labels.inc
+++ b/program/localization/pl_PL/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Witamy w $product';
$labels['username'] = 'Nazwa';
$labels['password'] = 'Hasło';
$labels['server'] = 'Serwer';
$labels['login'] = 'Zaloguj';
+
+// taskbar
$labels['logout'] = 'Wyloguj';
$labels['mail'] = 'Poczta';
$labels['settings'] = 'Ustawienia';
$labels['addressbook'] = 'Książka adresowa';
+
+// mailbox names
$labels['inbox'] = 'Odebrane';
$labels['drafts'] = 'Kopie robocze';
$labels['sent'] = 'Wysłane';
$labels['trash'] = 'Kosz';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Pokaż prawdziwe nazwy dla folderów specjalnych';
+
+// message listing
$labels['subject'] = 'Temat';
$labels['from'] = 'Od';
$labels['sender'] = 'Nadawca';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorytet';
$labels['organization'] = 'Organizacja';
$labels['readstatus'] = 'Przeczytano';
$labels['listoptions'] = 'Opcje listy...';
+
$labels['mailboxlist'] = 'Foldery';
$labels['messagesfromto'] = 'Wiadomości od $from do $to z $count';
$labels['threadsfromto'] = 'WÄ…tki od $from do $to z $count';
$labels['messagenrof'] = 'Wiadomość $nr z $count';
$labels['fromtoshort'] = '$from - $to z $count';
+
$labels['copy'] = 'Kopiuj';
$labels['move'] = 'PrzenieÅ›';
$labels['moveto'] = 'PrzenieÅ› do...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Pobierz';
$labels['open'] = 'Otwórz';
$labels['showattachment'] = 'Pokaż';
$labels['showanyway'] = 'Pokaż';
+
$labels['filename'] = 'Nazwa pliku';
$labels['filesize'] = 'Rozmiar pliku';
+
$labels['addtoaddressbook'] = 'Dodaj do książki adresowej';
+
+// weekdays short
$labels['sun'] = 'Nd';
$labels['mon'] = 'Pn';
$labels['tue'] = 'Wt';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Åšr';
$labels['thu'] = 'Czw';
$labels['fri'] = 'Pt';
$labels['sat'] = 'Sb';
+
+// weekdays long
$labels['sunday'] = 'Niedziela';
$labels['monday'] = 'Poniedziałek';
$labels['tuesday'] = 'Wtorek';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Åšroda';
$labels['thursday'] = 'Czwartek';
$labels['friday'] = 'PiÄ…tek';
$labels['saturday'] = 'Sobota';
+
+// months short
$labels['jan'] = 'sty';
$labels['feb'] = 'lut';
$labels['mar'] = 'mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Wrz';
$labels['oct'] = 'Paź';
$labels['nov'] = 'Lis';
$labels['dec'] = 'Gru';
+
+// months long
$labels['longjan'] = 'styczeń';
$labels['longfeb'] = 'luty';
$labels['longmar'] = 'marzec';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'wrzesień';
$labels['longoct'] = 'październik';
$labels['longnov'] = 'listopad';
$labels['longdec'] = 'grudzień';
+
$labels['today'] = 'Dzisiaj';
+
+// toolbar buttons
$labels['refresh'] = 'Odśwież';
$labels['checkmail'] = 'Sprawdź skrzynkę';
$labels['compose'] = 'Utwórz';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Więcej akcji...';
$labels['more'] = 'Więcej';
$labels['back'] = 'Wstecz';
$labels['options'] = 'Ustawienia';
+
$labels['select'] = 'Zaznacz';
$labels['all'] = 'Wszystkie';
$labels['none'] = 'Brak';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Rozwiń wszystkie';
$labels['expand-unread'] = 'Rozwiń nieprzeczytane';
$labels['collapse-all'] = 'Zwiń wszystkie';
$labels['threaded'] = 'PowÄ…tkowane';
+
$labels['autoexpand_threads'] = 'Rozwijaj wÄ…tki';
$labels['do_expand'] = 'wszystkie';
$labels['expand_only_unread'] = 'tylko nieprzeczytane';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Kolumny';
$labels['listsorting'] = 'PorzÄ…dek sortowania';
$labels['listorder'] = 'Kierunek sortowania';
$labels['listmode'] = 'Typ listy';
+
$labels['folderactions'] = 'Działania na folderach...';
$labels['compact'] = 'PorzÄ…dkuj';
$labels['empty'] = 'Opróżnij';
-$labels['importmessages'] = 'Import wiadomości';
+
$labels['quota'] = 'Użyte miejsce';
$labels['unknown'] = 'nieznane';
$labels['unlimited'] = 'bez limitu';
+
$labels['quicksearch'] = 'Szybkie wyszukiwanie';
$labels['resetsearch'] = 'Wyczyść filtr';
$labels['searchmod'] = 'Parametry wyszukiwania';
$labels['msgtext'] = 'Cała wiadomość';
$labels['body'] = 'Treść';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Nazwa';
+
$labels['openinextwin'] = 'Otwórz w nowym oknie';
$labels['emlsave'] = 'Pobierz (.eml)';
$labels['changeformattext'] = 'Wyświetl w formacie tekstowym';
$labels['changeformathtml'] = 'Wyświetl w formacie HTML';
+
+// message compose
$labels['editasnew'] = 'Edytuj jako nowÄ…';
$labels['send'] = 'Wyślij';
$labels['sendmessage'] = 'Wyślij teraz';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Potwierdzenie odbioru';
$labels['dsn'] = 'Status dostarczenia (DSN)';
$labels['mailreplyintro'] = 'W dniu $date, $sender napisał(a):';
$labels['originalmessage'] = 'Wiadomość oryginalna';
+
$labels['editidents'] = 'Edytuj tożsamości';
$labels['spellcheck'] = 'Pisownia';
$labels['checkspelling'] = 'Sprawdź pisownię';
$labels['resumeediting'] = 'Zakończ sprawdzanie pisowni';
$labels['revertto'] = 'Powróć do';
+
$labels['attach'] = 'Załącz';
$labels['attachments'] = 'Załączniki';
$labels['upload'] = 'Prześlij';
$labels['uploadprogress'] = '$percent ($current z $total)';
$labels['close'] = 'Zamknij';
$labels['messageoptions'] = 'Opcje wiadomości...';
+
$labels['low'] = 'Bardzo niski';
$labels['lowest'] = 'Niski';
$labels['normal'] = 'Normalny';
$labels['high'] = 'Wysoki';
$labels['highest'] = 'Bardzo wysoki';
+
$labels['nosubject'] = '(brak tematu)';
$labels['showimages'] = 'Wyświetl obrazki';
$labels['alwaysshow'] = 'Zawsze wyświetlaj obrazki od $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'To jest kopia robocza wiadomości.';
$labels['andnmore'] = '$nr więcej...';
$labels['togglemoreheaders'] = 'Pokaż więcej nagłówków wiadomości';
$labels['togglefullheaders'] = 'Przełącz podgląd nagłówków wiadomości';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Zwykły tekst';
$labels['savesentmessagein'] = 'Zapisz wiadomość w';
$labels['dontsave'] = 'nie zapisuj';
$labels['maxuploadsize'] = 'Maksymalny rozmiar pliku to $size';
+
$labels['addcc'] = 'Dodaj Cc';
$labels['addbcc'] = 'Dodaj Bcc';
$labels['addreplyto'] = 'Dodaj Reply-To';
$labels['addfollowupto'] = 'Dodaj Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Nadawca zażądał potwierdzenia przeczytania tej wiadomości. Czy chcesz go powiadomić?';
$labels['receiptread'] = 'Potwierdzenie otrzymania';
$labels['yourmessage'] = 'To jest potwierdzenie dostarczenia Twojej wiadomości';
$labels['receiptnote'] = 'Uwaga: To potwierdzenie dostarczenia wiadomości oznacza tylko, że wiadomość została wyświetlona na komputerze adresata. Nie ma żadnej gwarancji, że odbiorca przeczytał czy też zrozumiał treść wiadomości.';
+
+// address boook
$labels['name'] = 'Nazwa';
$labels['firstname'] = 'ImiÄ™';
$labels['surname'] = 'Nazwisko';
@@ -262,6 +301,7 @@ $labels['search'] = 'Szukaj';
$labels['advsearch'] = 'Wyszukiwanie zaawansowane';
$labels['advanced'] = 'Zaawansowane';
$labels['other'] = 'Inne';
+
$labels['typehome'] = 'Dom';
$labels['typework'] = 'Praca';
$labels['typeother'] = 'Inne';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Asystent';
$labels['typehomepage'] = 'Strona domowa';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Dodaj pole...';
$labels['addcontact'] = 'Dodaj nowy kontakt do książki adresowej';
$labels['editcontact'] = 'Edytuj kontakt';
$labels['contacts'] = 'Kontakty';
$labels['contactproperties'] = 'Właściwości';
$labels['personalinfo'] = 'Informacje osobiste';
+
$labels['edit'] = 'Edytuj';
$labels['cancel'] = 'Anuluj';
$labels['save'] = 'Zapisz';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Zmień nazwę';
$labels['addphoto'] = 'Dodaj';
$labels['replacephoto'] = 'Zamień';
$labels['uploadphoto'] = 'Wyślij zdjęcie';
+
$labels['newcontact'] = 'Dodaj nowy kontakt';
$labels['deletecontact'] = 'Usuń zaznaczone kontakty';
$labels['composeto'] = 'Utwórz wiadomość do wybranych kontaktów';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Utwórz nową grupę';
$labels['grouprename'] = 'Zmień nazwę grupy';
$labels['groupdelete'] = 'Usuń grupę';
$labels['groupremoveselected'] = 'Usuń wybrane kontakty z grupy';
+
$labels['previouspage'] = 'Poprzednia strona';
$labels['firstpage'] = 'Pierwsza strona';
$labels['nextpage'] = 'Następna strona';
$labels['lastpage'] = 'Ostatnia strona';
+
$labels['group'] = 'Grupa';
$labels['groups'] = 'Grupy';
-$labels['listgroup'] = 'Członkowie grupy';
$labels['personaladrbook'] = 'Kontakty osobiste';
+
$labels['searchsave'] = 'Zapisz wyszukiwanie';
$labels['searchdelete'] = 'Usuń wyszukiwanie';
+
$labels['import'] = 'Importuj';
$labels['importcontacts'] = 'Import kontaktów';
$labels['importfromfile'] = 'Import z pliku:';
-$labels['importtarget'] = 'Dodaj kontakty do';
+$labels['importtarget'] = 'Dodaj nowe kontakty do książki adresowej:';
$labels['importreplace'] = 'Zastąp całą książkę adresową';
-$labels['importgroups'] = 'Importuj powiÄ…zania z grupami';
-$labels['importgroupsall'] = 'Wszystkie (utwórz grupy jeśli potrzeba)';
-$labels['importgroupsexisting'] = 'Tylko do isniejÄ…cych grup';
$labels['importdesc'] = 'Import kontaktów z isniejącej książki adresowej.<br/>Obecnie obsługiwany jest import w formacie <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> lub CSV (pola oddzielone przecinkiem).';
$labels['done'] = 'Wykonane';
+
+// settings
$labels['settingsfor'] = 'Ustawienia dla';
$labels['about'] = 'O programie';
$labels['preferences'] = 'Preferencje';
$labels['userpreferences'] = 'Preferencje użytkownika';
$labels['editpreferences'] = 'Edytuj preferencje';
+
$labels['identities'] = 'Tożsamości';
$labels['manageidentities'] = 'Zarządzaj tożsamościami';
$labels['newidentity'] = 'Nowa tożsamość';
+
$labels['newitem'] = 'Nowy';
$labels['edititem'] = 'Edytuj';
+
$labels['preferhtml'] = 'Domyślny HTML';
$labels['defaultcharset'] = 'Domyślny zestaw znaków';
$labels['htmlmessage'] = 'Wiadomość HTML';
@@ -362,7 +410,7 @@ $labels['logoutcompact'] = 'Przy wylogowaniu porzÄ…dkuj folder Odebrane';
$labels['uisettings'] = 'Interfejs użytkownika';
$labels['serversettings'] = 'Ustawienia serwera';
$labels['mailboxview'] = 'Widok skrzynki pocztowej';
-$labels['mdnrequests'] = 'Na żądanie potwierdzenia odbioru';
+$labels['mdnrequests'] = 'Na żadanie potwierdzenia odbioru';
$labels['askuser'] = 'pytaj mnie';
$labels['autosend'] = 'wyślij potwierdzenie';
$labels['autosendknown'] = 'wyślij potwierdzenie tylko do moich kontaktów, pytaj o pozostałe';
@@ -389,7 +437,7 @@ $labels['2231folding'] = 'RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'RFC 2047 (przestarzałe)';
$labels['force7bit'] = 'Używaj kodowania MIME dla znaków 8-bitowych';
-$labels['advancedoptions'] = 'Opcje zaawansowane';
+$labels['advancedoptions'] = 'opcje zaawansowane';
$labels['focusonnewmessage'] = 'Informuj przeglądarkę o nowej wiadomości';
$labels['checkallfolders'] = 'Sprawdzaj czy nadeszły nowe wiadomości we wszystkich folderach';
$labels['displaynext'] = 'Po usunięciu/przeniesieniu wiadomości wyświetl następną';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignoruj słowa zawierające cyfry';
$labels['spellcheckignorecaps'] = 'Ignoruj słowa pisane wielkimi literami';
$labels['addtodict'] = 'Dodaj do słownika';
$labels['mailtoprotohandler'] = 'Zainstaluj obsługę linków mailto:';
-$labels['standardwindows'] = 'Traktuj okna wyskakujÄ…ce jako standardowe okna';
$labels['forwardmode'] = 'Przekazywanie wiadomości';
$labels['inline'] = 'w treści';
$labels['asattachment'] = 'jako załącznik';
+
$labels['folder'] = 'Folder';
$labels['folders'] = 'Foldery';
$labels['foldername'] = 'Nazwa folderu';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Typ folderu';
$labels['personalfolder'] = 'Folder prywatny';
$labels['otherfolder'] = 'Folder innego użytkownika';
$labels['sharedfolder'] = 'Folder współdzielony';
+
$labels['sortby'] = 'Sortuj wg';
$labels['sortasc'] = 'RosnÄ…co';
$labels['sortdesc'] = 'MalejÄ…co';
$labels['undo'] = 'Cofnij';
+
$labels['installedplugins'] = 'Zainstalowane wtyczki';
$labels['plugin'] = 'Wtyczka';
$labels['version'] = 'Wersja';
$labels['source'] = 'Źródła';
$labels['license'] = 'Licencja';
$labels['support'] = 'Wsparcie techniczne';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'uniwersalny';
$labels['english'] = 'angielski';
$labels['westerneuropean'] = 'zachodnioeuropejski';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'wietnamski';
$labels['japanese'] = 'japoński';
$labels['korean'] = 'koreański';
$labels['chinese'] = 'chiński';
+
?>
diff --git a/program/localization/pl_PL/messages.inc b/program/localization/pl_PL/messages.inc
index 0ad357b69..fb7ad6c97 100644
--- a/program/localization/pl_PL/messages.inc
+++ b/program/localization/pl_PL/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Wystąpił błąd!';
$messages['loginfailed'] = 'BÅ‚Ä…d logowania!';
$messages['cookiesdisabled'] = 'Twoja przeglądarka nie obsługuje ciasteczek!';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Konwertowanie tekstu...';
$messages['messageopenerror'] = 'Nie można załadować wiadomości z serwera.';
$messages['fileuploaderror'] = 'Załączanie pliku nie powiodło się.';
$messages['filesizeerror'] = 'Plik przekracza maksymalną wielkość $size.';
-$messages['copysuccess'] = 'Pomyślnie skopiowano $nr kontaktów.';
-$messages['movesuccess'] = 'Pomyślnie przeniesiono $nr kontaktów.';
-$messages['copyerror'] = 'Nie udało się skopiować żadnego kontaktu.';
-$messages['moveerror'] = 'Nie udało się przenieść żadnego kontaktu.';
+$messages['copysuccess'] = 'Pomyślnie skopiowano następującą liczbę adresów: $nr.';
+$messages['copyerror'] = 'Nie można skopiować żadnego adresu.';
$messages['sourceisreadonly'] = 'Źródło adresu jest tylko do odczytu.';
$messages['errorsavingcontact'] = 'Nie można było zapisać adresu kontaktu.';
$messages['movingmessage'] = 'Przenoszenie wiadomości...';
$messages['copyingmessage'] = 'Kopiowanie wiadomości...';
$messages['copyingcontact'] = 'Kopiowanie kontaktów...';
-$messages['movingcontact'] = 'Przenoszenie kontaktów...';
$messages['deletingmessage'] = 'Usuwanie wiadomości...';
$messages['markingmessage'] = 'Oznaczanie wiadomości...';
$messages['addingmember'] = 'Dodawanie kontaktów do grupy...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Importowanie, proszę czekać...';
$messages['importformaterror'] = 'Import nieudany! Użyty plik nie jest poprawnym plikiem importu danych.';
$messages['importconfirm'] = '<b>Pomyślnie dodano $inserted kontaktów, pominięto $skipped istniejących wpisów</b>:<p><em>$names</em></p>.';
$messages['importconfirmskipped'] = '<b>Pominięto $skipped istniejących wpisów.</b>';
-$messages['importmessagesuccess'] = 'Pomyślnie zaimportowano następującą liczbę wiadomości: $nr';
-$messages['importmessageerror'] = 'Import nieudany! Wgrywany plik nie jest poprawną wiadomością lub plikiem skrzynki pocztowej';
$messages['opnotpermitted'] = 'Niedozwolona operacja!';
$messages['nofromaddress'] = 'Brak adresu e-mail w wybranej tożsamości.';
$messages['editorwarning'] = 'Zmiana edytora spowoduje utratę formatowania tekstu. Czy jesteś pewien, że chcesz to zrobić?';
@@ -168,6 +165,7 @@ $messages['invalidimageformat'] = 'Niepoprawny format obrazka.';
$messages['mispellingsfound'] = 'Wykryto błędy pisowni w tej wiadomości.';
$messages['parentnotwritable'] = 'Nie można utworzyć/przenieść folderu w wybrane miejsce. Brak upranień.';
$messages['messagetoobig'] = 'Ta część wiadomości jest zbyt duża aby ją przetworzyć.';
-$messages['attachmentvalidationerror'] = 'UWAGA! Ten załącznik jest podejrzany ponieważ jego typ nie jest zgodny z typem zadeklarownym w wiadomości. Jeśli nie ufasz temu nadawcy nie powinieneś otwierać go w przeglądarce, gdyż może zawierać złośliwe oprogramowanie.<br/><br/><em>Zadeklarowany: $expected; wykryty: $detected</em>';
+$messages['attachmentvalidationerror'] = 'UWAGA! Ten załącznik jest podejrzany ponieważ jego typ nie jest zgodny z typem zadeklarownym w wiadomości. Jeśli nie ufasz temu nadawcy nie powinieneś otwierać go w przeglądarce, bo może zawierać złośliwe oprogramowanie.<br/><br/><em>Spodziwany: $expected; znaleziono: $detected</em>';
$messages['noscriptwarning'] = 'Uwaga: Usługa wymaga Javascriptu! Aby z niej skorzystać proszę włączyć obsługę języka Javascript w ustawieniach przeglądarki.';
+
?>
diff --git a/program/localization/ps/labels.inc b/program/localization/ps/labels.inc
index 9b4c8d813..262e3d490 100644
--- a/program/localization/ps/labels.inc
+++ b/program/localization/ps/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product ته ښه راغلاست';
$labels['username'] = 'کارن نوم';
$labels['password'] = 'پټنوم';
$labels['server'] = 'برابرونکی';
$labels['login'] = 'ننوتون';
+
+// taskbar
$labels['logout'] = 'وتون';
$labels['mail'] = 'برÛښناليک';
$labels['settings'] = 'Úاني برابرونÛ';
$labels['addressbook'] = 'Ù¾ØªÛ Ú©ØªØ§Ø¨';
+
+// mailbox names
$labels['inbox'] = 'راغلي ليکونه';
$labels['drafts'] = 'بارليک';
$labels['sent'] = 'Ù„ÛÚ–Ù„ شوي ليکونه';
$labels['trash'] = 'کثاÙت دانÛ';
$labels['junk'] = 'جنک';
+
+// message listing
$labels['subject'] = 'مضمون';
$labels['from'] = 'استوونکی';
+$labels['sender'] = 'Sender';
$labels['to'] = 'ترلاسه کوونکی';
$labels['cc'] = 'لمÛسل';
$labels['bcc'] = 'پټليکی';
$labels['replyto'] = 'Úوابول';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Ù†Ûټه';
$labels['size'] = 'Ú©Ú†Ù‡';
$labels['priority'] = 'لومړيتوب';
$labels['organization'] = 'ټولنه';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'پوښÛ';
$labels['messagesfromto'] = 'له ټاکلي استوزو څخه ټاکلي شمÛرل شوو استوزو ته';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'له $nr Úخه استوزو $count استوزو ته';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'لمÛسل';
+$labels['move'] = 'Move';
$labels['moveto'] = 'ته خوÚوي';
$labels['download'] = 'ښکته کول';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Ùايل نوم';
$labels['filesize'] = 'Ùايل Ú©Ú†Ù‡';
+
$labels['addtoaddressbook'] = 'د پتو کتاب ته ÙŠÛ ÙˆØ±Ø²ÙŠØ§Øª کړئ';
+
+// weekdays short
$labels['sun'] = 'يوه Ù†Û';
$labels['mon'] = 'دوه Ù†Û';
$labels['tue'] = 'Ø¯Ø±Û Ù†Û';
@@ -55,6 +81,8 @@ $labels['wed'] = 'څلورنÛ';
$labels['thu'] = 'پنÚÙ†Û';
$labels['fri'] = 'جمعه';
$labels['sat'] = 'Ù†Û';
+
+// weekdays long
$labels['sunday'] = 'يوه Ù†Û';
$labels['monday'] = 'دوه Ù†Û';
$labels['tuesday'] = 'Ø¯Ø±Û Ù†Û';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'منÚÙ†Û';
$labels['thursday'] = 'پنÚÙ†Û';
$labels['friday'] = 'جمعه';
$labels['saturday'] = 'Ù†Û';
+
+// months short
$labels['jan'] = 'حنوري';
$labels['feb'] = 'Ùبروري';
$labels['mar'] = 'مارچ';
@@ -74,6 +104,8 @@ $labels['sep'] = 'سپتمپر';
$labels['oct'] = 'اکتوبر';
$labels['nov'] = 'نومبر';
$labels['dec'] = 'ډسمبر';
+
+// months long
$labels['longjan'] = 'جنوري';
$labels['longfeb'] = 'Ùبروري';
$labels['longmar'] = 'مارچ';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'سپتمبر';
$labels['longoct'] = 'اکتوبر';
$labels['longnov'] = 'نومبر';
$labels['longdec'] = 'ډسمبر';
+
$labels['today'] = 'نن';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'نوي استوزي وګوره';
$labels['compose'] = 'استوزه وليکه';
$labels['writenewmessage'] = 'نوي استوزي جوړول';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'استوونکي ته Úواب ورکړئ';
$labels['replytoallmessage'] = 'استوونکي او ټولو ترلاسه کوونکو ته Úواب Ù„ÛÚ–Ù„';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'استوزه بل ته استول';
$labels['deletemessage'] = 'استوزه ړنګول';
$labels['movemessagetotrash'] = 'استوزه کثاÙت داني ته واستوه';
@@ -102,98 +144,250 @@ $labels['nextmessage'] = 'ÙˆØ±Ù¾Ø³Û Ø§Ø³ØªÙˆØ²Ù‡ وښيه';
$labels['lastmessage'] = 'پای /آخري استوزه وښيه';
$labels['backtolist'] = 'بيرته د استوزو لست ته';
$labels['viewsource'] = 'سرچينه وښيه';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'استوزي په نښه کړئ';
$labels['markread'] = 'لوستل شوي په توګه';
$labels['markunread'] = 'د نالوستل شوي په توګه';
$labels['markflagged'] = 'د بي کاره په توګه';
$labels['markunflagged'] = 'د Ú©Ø§Ø±ÙˆÙ†Û Ù¾Ù‡ توګه';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'ټاکل';
$labels['all'] = 'ټول';
$labels['none'] = 'Ù‡ÛÚ…';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'نالوستي';
$labels['flagged'] = 'Ø¨Û Ú©Ø§Ø±Ù‡';
$labels['unanswered'] = 'ناÚواب شوي';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
$labels['filter'] = 'چڼول';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'Ù‡ÛÚ…';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Ú©ÛÚšÚ©Ù„ÛŒ';
$labels['empty'] = 'تش';
+
$labels['quota'] = 'ټيکلي لارښود';
$labels['unknown'] = 'نامعلوم';
$labels['unlimited'] = 'بي کچه';
+
$labels['quicksearch'] = 'ژر پلټنه';
$labels['resetsearch'] = 'د Ù¾Ù„Ù¼Ù†Û Ø¨ÙŠØ§Ø³Ù…ÙˆÙ†';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'په نوي Ú©Ú“Ú©Û Ú©Û Ù¾Ø±Ø§Ù†ÙŠØ²Ù‡';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'اوس ÙŠÛ ÙˆØ§Ø³ØªÙˆÙ‡';
$labels['savemessage'] = 'دا ګارليک خوندي کړه';
$labels['addattachment'] = 'يو Ùايل ونښلوه';
$labels['charset'] = 'چيرست';
$labels['editortype'] = 'د ټايب سمونګر';
$labels['returnreceipt'] = 'د رسليک راګرÚÛدل';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'ليکدود کتنه';
$labels['resumeediting'] = 'Ú©Ø§Ø±Ù…Ø®ÙŠÙ†Û Ø³Ù…ÙˆÙ†Ù‡';
$labels['revertto'] = 'ته بÛرته اړول';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'نښلني';
$labels['upload'] = 'پورته کول';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'بندول';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'ټيټ';
$labels['lowest'] = 'خورا ټيټ';
$labels['normal'] = 'نورمال';
$labels['high'] = 'لوړ';
$labels['highest'] = 'خورا لوړ';
+
$labels['nosubject'] = 'Ù‡ÛÚ… موضوع';
$labels['showimages'] = 'انÚورونه وښيه';
$labels['alwaysshow'] = 'تل له $استوونکي څخه انÚورونه وښيه';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'ايچ ټی ايمل ال';
$labels['plaintoggle'] = 'ساده متن';
$labels['savesentmessagein'] = 'استول شوي استوزه په خوندي کړه';
$labels['dontsave'] = 'مه ساته';
$labels['maxuploadsize'] = 'لږترلږه د اجازه شوي Ùايل Ú©Ú†Ù‡ $وي';
+
$labels['addcc'] = 'څرګندليک';
$labels['addbcc'] = 'پټليک';
$labels['addreplyto'] = 'ته ورزيات کړه';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Ø¯Ø¯Û Ø§Ø³ØªÙˆØ²ÙŠ استوونکی پوښتي Ú†Ûد استوزي لوستلو سره سم ØªØ§Ø³Û Ø®Ø¨Ø± Ú©Ú“ÙŠØŒ. غواړئ Ú†Û Ø§Ø³ØªÙˆÙˆÙ†Ú©ÛŒ خبرشي؟';
$labels['receiptread'] = 'رسليک راګرÚÛدل (لوستل';
$labels['yourmessage'] = 'دا رسليک راګرÚÛدل Ø³ØªØ§Ø³Û Ø§Ø³ØªÙˆØ²ÙŠ لپاره دی';
$labels['receiptnote'] = 'يادونه: دا رسليک ØªØ§Ø³Û ØªÙ‡ ÙŠÙˆØ§Ø²Û Ø¯Ø¯Û Ø®Ø¨Ø±ØªÙŠØ§ درکوي Ú†Û Ú©Ù„Ù‡ استوزی د ترلاسه کوونکي په کمپيوټر Ú©Û Ú…Ø±Ú«Ù†Ø¯ شي، Ø¯Ø¯Û Ù‡ÙŠÚ… ډاډګيرنه نشته Ú†Û ØªØ±Ù„Ø§Ø³Ù‡ کوونکي د استوزي متن لوستی او يا Ù¾Ø±Û Ù¾ÙˆÙ‡ شوی دی';
+
+// address boook
$labels['name'] = 'نوم ښوونه';
$labels['firstname'] = 'نوم';
$labels['surname'] = 'کورنی نوم';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'برÛښناليک';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'نوی اړيکلوری ورزيات کړه';
$labels['editcontact'] = 'اړيکلوري سمون';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'سمون';
$labels['cancel'] = 'لري کول';
$labels['save'] = 'ساتل';
$labels['delete'] = 'ړنګول';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'نوي اړيکلوري کارټ جوړ کړه';
$labels['deletecontact'] = 'ټاکل شوي اړيکلوري ړنګ کړه';
$labels['composeto'] = 'ته ليک وليکه';
$labels['contactsfromto'] = 'له دومره اړيکلورو څخه دومره شمÛرل شوي Contacts $from to $to of $count';
$labels['print'] = 'چاپ';
$labels['export'] = 'بهرول';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'اړيکلوري د ويکارډ په بڼه واستوئ';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'پخوانی غونډ وښيه';
$labels['firstpage'] = 'لومړی غونډ وښيه';
$labels['nextpage'] = 'ÙˆØ±Ù¾Ø³Û ØºÙˆÙ†Ú‰ وښيه';
$labels['lastpage'] = 'پای غونډ وښيه';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Ú‰Ù„Û';
$labels['personaladrbook'] = 'Úاني پتÛ';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'رانقلول';
$labels['importcontacts'] = 'اړيکلوري نقل کړئ';
$labels['importfromfile'] = 'له Ùايل څخه رانقل کړئ';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'ټول ادرس کتاب بدل کړئ';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'ترسره شو';
+
+// settings
$labels['settingsfor'] = 'لپاره برابرونÛ';
+$labels['about'] = 'About';
$labels['preferences'] = 'غورونÛ';
$labels['userpreferences'] = 'کارن غورونÛ';
$labels['editpreferences'] = 'د کارن غورونو سمون';
+
$labels['identities'] = 'Ù¾ÛژندنÛ';
$labels['manageidentities'] = 'Ø¯Ø¯Û Ø­Ø³Ø§Ø¨ Ù¾Ûژندنو برابرول';
$labels['newidentity'] = 'نوي Ù¾Ûژندنه';
+
$labels['newitem'] = 'نوی توک';
$labels['edititem'] = 'توک سمون';
+
$labels['preferhtml'] = 'ايچ ټي ام ايل ښوون';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'ايچ ټي ام ايل استوزه';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'په زړه Ù¾ÙˆØ±Û Ù†ÛÙ¼Û';
$labels['setdefault'] = 'تلوالي برابرول';
$labels['autodetect'] = 'په خپلواکه توګه';
@@ -202,8 +396,13 @@ $labels['timezone'] = 'سيميز وخت';
$labels['pagesize'] = 'په هر مخ Ù¾Ø±ØªÛ Ú©ÚšÛ';
$labels['signature'] = 'لاسليک';
$labels['dstactive'] = 'ورÚنيو کارونو لنډيز ساتل';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'ايچ ټي‌ام ايل استوزي وليکه';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'ايچ ټي ام ايل لاسليک';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'پخوانی چوکاټ وښييه';
$labels['skin'] = 'انټرÙيس بڼه';
$labels['logoutclear'] = 'کثاÙت داني د ÙˆØªÙ†Û Ù¾Ù‡ وخت Ú©Û Ù¾Ø§Ú©Ù‡ Ú©Ú“Ù‡';
@@ -214,26 +413,69 @@ $labels['mailboxview'] = 'ليکبکس ښکار کړه';
$labels['mdnrequests'] = 'د استوونکي خبرتياوÛ';
$labels['askuser'] = 'له کاروونکي څخه وپوښته';
$labels['autosend'] = 'په خپلواکه توګه واستوه';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'Ù„Ø±Û Ú©Ú“Ù‡';
$labels['readwhendeleted'] = 'په Ú“Ù†Ú« شوو Ú©Û Ø§Ø³ØªÙˆØ²ÙŠ د لوستل شوي په توګه په Ù†ÚšÙ‡ Ú©Ú“Ù‡';
$labels['flagfordeletion'] = 'استوزه د Ú“Ù†Ú« شوي پرÚای بÛکاره Ú©Ú“Ù‡';
$labels['skipdeleted'] = 'ړنګ شوي استوزي مه ښکاره کوه';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'انÚورونه له لري په ليکه Ú©Û ÚšÚ©Ø§Ø±Ù‡ Ú©Ú“Ù‡';
$labels['fromknownsenders'] = 'له اشنا استوونکو څخه';
$labels['always'] = 'تل';
$labels['showinlineimages'] = 'نښلول شوي انÚورونه تر Ø§Ø³ØªÙˆØ²Û Ù„Ø§Ù†Ø¯Û ÚšÚ©Ø§Ø±Ù‡ Ú©Ú“Ù‡';
$labels['autosavedraft'] = 'بارليک په خپل سري توګه خوندي‌کړه';
$labels['everynminutes'] = 'هر Ù‡ Ú«Ú¼Ù‡ په دقيقو Ú©Û';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'Ù‡ÛÚ…';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'استوزي ښيي';
$labels['messagescomposition'] = 'استوزي ليکي';
$labels['mimeparamfolding'] = 'د نښلول شوو نومونه';
$labels['2231folding'] = 'بشپړ RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Full RFC 2047 (نور)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'پرمختللي لارÛ';
$labels['focusonnewmessage'] = 'Ùوکاس براوسر Ú©Ú“Ú©Û Ù¾Ù‡ نوي استوزي Ú©Û';
$labels['checkallfolders'] = 'په ټولو پوښيو Ú©Û Ù†ÙˆÙŠ استوزي وګورئ';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'پوښÛ';
$labels['folders'] = 'پوښÛ';
$labels['foldername'] = 'Ù¾ÙˆÚšÛ Ù†ÙˆÙ…';
@@ -243,11 +485,54 @@ $labels['create'] = 'جوړول، Ø±Ø§Ù…Ù†Ú ØªÙ‡ کول';
$labels['createfolder'] = 'Ù†ÙˆÛ Ù¾ÙˆÚšÛ Ø¬ÙˆÚ“ Ú©Ú“Ù‡';
$labels['managefolders'] = 'پوښيو څارل';
$labels['specialfolders'] = 'Úانګړي پوښÛÛ';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'اڼل';
$labels['sortasc'] = 'له پورته نه ښکته خوا ته برابرول';
$labels['sortdesc'] = 'له ښکته نه پورته خوا ته برابرول';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'بي';
$labels['KB'] = 'کي بي';
$labels['MB'] = 'ام بي';
$labels['GB'] = 'جي بي';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ps/messages.inc b/program/localization/ps/messages.inc
index a900d328f..d3a8483ee 100644
--- a/program/localization/ps/messages.inc
+++ b/program/localization/ps/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'ننوتنه په بري سره ترسره نه شوه';
$messages['cookiesdisabled'] = 'ستاسو لټوني ککوړي ونه منل';
$messages['sessionerror'] = 'Ø³ØªØ§Ø³Û Ù†Ø§Ø³ØªÙ‡ ناباوري يا له مينÚÙ‡ ØªÙ„Ù„Û Ø¯Ù‡';
$messages['storageerror'] = 'له ای ميپ سرور سره پيوستون په بري سره ترسره نه شو';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'ليکبکس Ú©Û Ù‡ÛÚ… استوزي ونه مونده';
$messages['loggedout'] = 'ØªØ§Ø³Û Ù„Ù‡ Ù†Ø§Ø³ØªÛ Ú…Ø®Ù‡ په بشپړه توګه وويستل شوئ الله په امان';
$messages['mailboxempty'] = 'ليکبکس تش دی';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'د کار په حال Ú©Û';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'اومتوک د کار په حال Ú©Û';
$messages['checkingmail'] = 'نوي استوزي ګوري';
$messages['sendingmessage'] = 'استوزه استوي.';
@@ -32,20 +48,31 @@ $messages['messagesaved'] = 'استوزه په بارليک Ú©Û Ø®ÙˆÙ†Ø¯ÙŠ شو
$messages['successfullysaved'] = 'په بري‌سره خوندي شوه';
$messages['addedsuccessfully'] = 'اړيکلوری په بري سره Ù¾ØªÛ Ú©ØªØ§Ø¨ ته ور زيات شو';
$messages['contactexists'] = 'يو اړيکلوری له Ø¯Û Ø¨Ø±Ûښناليک Ù¾ØªÛ Ø³Ø±Ù‡ شتون لري';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'ستاسو د پټتيآ خوندي Ú©Ûدو لپاره ØŒ له لري انÚورنه په Ø¯Û Ø§Ø³ØªÙˆØ²ÙŠâ€ŒÚ©Û Ø¨Ù†Ø¯ کړئ';
$messages['encryptedmessage'] = 'دا يوه پټه استوزه ده او نه څرګندÛÚ–ÙŠ. بښنه غواړو';
$messages['nocontactsfound'] = 'Ù‡ÛÚ… اړيکلوری ÙŠÛ ÙˆÙ†Ù‡ موند';
$messages['contactnotfound'] = 'وړاندی شوی اړيکلوری ونه مونده';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'استوزي استونه په بري سره پای ته ونه رسÛده';
$messages['senttooquickly'] = 'مهرباني وکړئ $صبر وکړئ د Ø¯Û Ø§Ø³ØªÙˆØ²Û Ù„Ù‡ Ù„Ûږلو مخکÛ';
+$messages['errorsavingsent'] = 'دخوندي کولو او Ù„Ûږلو پر مهال يوه تيروتنه Ø±Ø§Ù…Ù†Ú ØªÙ‡ شوه';
+$messages['errorsaving'] = 'دخوندي کولو پر مهال يوه تيروتنه Ø±Ø§Ù…Ù†Ú ØªÙ‡ شوه';
$messages['errormoving'] = 'استوزه ونه خوÚول شوه';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'استوزه ړنګه نه شوه';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'په رښتيا سره غواړئ Ú†Û Ù¼Ø§Ú©Ù„ شوی اړيکلوری Ú“Ù†Ú« کړئ؟';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'په رښتيا سره غواړئ Ú†Û Ù¼Ø§Ú©Ù„ شوي استوزي‌ړنګ کړئ؟';
$messages['deletefolderconfirm'] = 'په رښتيآ سره غواړئ Ú†Û Ø¯Ø§ Ù¾ÙˆÚšÛ Ú“Ù†Ú«Ù‡ کړئ؟';
$messages['purgefolderconfirm'] = 'په رښتيا سره غواړئ Ú†Û Ø¯Ø¯Û Ù¾ÙˆÚšÛ Ù¼ÙˆÙ„ استوزي‌ړنګ کړئ؟';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'Ù¾ÙˆÚšÛ Ú“Ù†Ú«ÙˆÙŠ';
$messages['foldermoving'] = 'Ù¾ÙˆÚšÛ Ø®ÙˆÚوي';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'دا پورمه بشپړه Ú‰Ú©Ù‡ Ø´ÙˆÛ Ù†Ù‡ ده';
$messages['noemailwarning'] = 'مهرباني وکړئ د يوه شته برÛښناليک پته ورÚای کړئ';
$messages['nonamewarning'] = 'مهرباني‌وکړئ يو نوم وليکئ';
@@ -57,29 +84,88 @@ $messages['nobodywarning'] = 'دا استوزه پرته له متن څخه اس
$messages['notsentwarning'] = 'استوزه نه ده Ù„ÛÚ–Ù„ شوÛ. غواړئ Ú†Û Ø§Ø³ØªÙˆØ²Ù‡ مو Ù„Ø±Û ÙˆØºÙˆØ±Úوئ';
$messages['noldapserver'] = 'مهرباني وکړئ يو ال ډپ سرور د پلټلو لپاره وټاکئ';
$messages['nosearchname'] = 'مهرباني وکړئ د يو اړيکلوري‌نوم يا برÛښناليک پته وليکئ';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'استوزي ومونده$';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'د پلټلو بيا راګرÚÛدل Ù‡ÛÚ… سمون ونه خوړه';
$messages['searching'] = 'پلټي';
$messages['checking'] = 'ګوري';
$messages['nospellerrors'] = 'Ù‡ÛÚ… ليکدودي‌تيروتنه ونه مونده';
$messages['folderdeleted'] = 'Ù¾ÙˆÚšÛ Ù¾Ù‡ بشپړه توګه Ú“Ù†Ú«Ù‡ شوه';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'په بشپړه توګه ړنګ شول';
$messages['converting'] = 'له استوزي څخه Ø¨Ú¼Û Ú“Ù†Ú«ÛÚ–ÙŠ';
$messages['messageopenerror'] = 'له سرور څخه استوزي پرمخ نه شي تلی';
$messages['fileuploaderror'] = 'دÙايل پورته کول په بري سره سرته ونه رسيده';
$messages['filesizeerror'] = 'د پورته شوي Ùايل Ú©Ú†Ù‡ بايد لږترلږه له $څخه تيری ونه Ú©Ú“ÙŠ';
+$messages['copysuccess'] = 'په بشپړه توګه $Ù¾ØªÛ Ú©Ø§Ù¾ÙŠ شوÛ';
+$messages['copyerror'] = 'Ù‡ÛÚ… يوه پته ÙŠÛ Ú©Ø§Ù¾ÙŠâ€ŒÙ†Ù‡ شوای کړای';
$messages['sourceisreadonly'] = 'Ø¯Ø¯Û Ù¾ØªÛ ÙŠÙˆØ§Ø²Û Ø³Ø±Ú†ÙŠÙ†Ù‡ لوستل Ú©ÛÚ–ÙŠ';
$messages['errorsavingcontact'] = 'د Ù¾ØªÛ Ø§Ú“ÙŠÚ©Ù„ÙˆØ±ÛŒ ÙŠÛ Ø®ÙˆÙ†Ø¯ÙŠâ€ŒÙ†Ù‡ شو کړای';
$messages['movingmessage'] = 'استوزه خوÚوي';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'يو لوستل شوی رسليک په بشپړه توګه واستول شو';
$messages['errorsendingreceipt'] = 'رسليک ÙŠÛ ÙˆÙ†Ù‡ شوای ليږلی';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'ØªØ§Ø³Û Ù†Ù‡ شئ کولی Ú†Û Ø¯Ø§ Ù¾Ûژندنه Ú“Ù†Ú«Ù‡ کړئ، داستاسو اخرنی پيژندنه ده';
$messages['forbiddencharacter'] = 'د Ù¾ÙˆÚšÛ Ù†ÙˆÙ… له Ùوربايډن تورو څخه جوړ دی';
$messages['selectimportfile'] = 'مهرباني وکړئ‌يو Ùايل د پورته کولو لپاره وټاکئ';
$messages['addresswriterror'] = 'ټاکل شوی Ù¾ØªÛ Ú©ØªØ§Ø¨ د بياليکلو نه دی';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'نقلوي...صبر وکړئ';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>په بشپړه توګه نقل شو $اړيکلوري داخل شول, $شته تيرشوي انټاير څخه تيرشول</b>:<p><em>$نومونه</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'چار اجازه نه لري';
$messages['nofromaddress'] = 'په ټاکل شوي پيژندنه Ú©Û Ø¨Ø±Ûښناليک Ù¾ØªÛ Ù„Ù‡ لاسه ورکړي';
$messages['editorwarning'] = 'Ú©Ù‡ د متن بڼو له منÚÙ‡ تللو ګواښ وي نو د متن سمون پرانيزئ. غواړئ Ú†Û Ø¯ÙˆØ§Ù… ورکړئ';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/pt_BR/labels.inc b/program/localization/pt_BR/labels.inc
index e42b1ce95..9a1946eee 100644
--- a/program/localization/pt_BR/labels.inc
+++ b/program/localization/pt_BR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bem-vindo ao $product';
$labels['username'] = 'Usuário';
$labels['password'] = 'Senha';
$labels['server'] = 'Servidor';
$labels['login'] = 'Entrar';
+
+// taskbar
$labels['logout'] = 'Sair';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Configurações';
$labels['addressbook'] = 'Catálogo de endereços';
+
+// mailbox names
$labels['inbox'] = 'Caixa de entrada';
$labels['drafts'] = 'Rascunhos';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Lixeira';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Exibir o nome real das pastas de sistema';
+
+// message listing
$labels['subject'] = 'Assunto';
$labels['from'] = 'De';
$labels['sender'] = 'Remetente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioridade';
$labels['organization'] = 'Organização';
$labels['readstatus'] = 'Status de leitura';
$labels['listoptions'] = 'Lista de opções...';
+
$labels['mailboxlist'] = 'Pastas';
$labels['messagesfromto'] = 'Mensagens $from - $to de $count';
$labels['threadsfromto'] = 'Tópicos $from - $to de $count';
$labels['messagenrof'] = 'Mensagem $nr de $count';
$labels['fromtoshort'] = '$from - $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'Mover para...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Baixar';
$labels['open'] = 'Abrir';
$labels['showattachment'] = 'Exibir';
$labels['showanyway'] = 'Exibir mesmo assim';
+
$labels['filename'] = 'Nome do arquivo';
$labels['filesize'] = 'Tamanho';
+
$labels['addtoaddressbook'] = 'Incluir no catálogo de endereços';
+
+// weekdays short
$labels['sun'] = 'Dom.';
$labels['mon'] = 'Seg.';
$labels['tue'] = 'Ter.';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Qua.';
$labels['thu'] = 'Qui.';
$labels['fri'] = 'Sex.';
$labels['sat'] = 'Sáb.';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Segunda-feira';
$labels['tuesday'] = 'Terça-feira';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Quarta-feira';
$labels['thursday'] = 'Quinta-feira';
$labels['friday'] = 'Sexta-feira';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Jan.';
$labels['feb'] = 'Fev.';
$labels['mar'] = 'Mar.';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set.';
$labels['oct'] = 'Out.';
$labels['nov'] = 'Nov.';
$labels['dec'] = 'Dez.';
+
+// months long
$labels['longjan'] = 'Janeiro';
$labels['longfeb'] = 'Fevereiro';
$labels['longmar'] = 'Março';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Setembro';
$labels['longoct'] = 'Outubro';
$labels['longnov'] = 'Novembro';
$labels['longdec'] = 'Dezembro';
+
$labels['today'] = 'Hoje';
+
+// toolbar buttons
$labels['refresh'] = 'Atualizar';
$labels['checkmail'] = 'Verificar se há novas mensagens';
$labels['compose'] = 'Criar email';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mais ações...';
$labels['more'] = 'Mais';
$labels['back'] = 'Voltar';
$labels['options'] = 'Opções';
+
$labels['select'] = 'Selecionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Nenhuma';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandir Tudo';
$labels['expand-unread'] = 'Expandir Não Lidas';
$labels['collapse-all'] = 'Recolher Tudo';
$labels['threaded'] = 'Agrupado';
+
$labels['autoexpand_threads'] = 'Expandir mensagens agrupadas';
$labels['do_expand'] = 'todos os grupos';
$labels['expand_only_unread'] = 'somente com mensagem(s) não lidas';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Lista de colunas';
$labels['listsorting'] = 'Coluna para ordenação';
$labels['listorder'] = 'Ordem da classificação';
$labels['listmode'] = 'Visualização em lista';
+
$labels['folderactions'] = 'Ações para as pastas...';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Esvaziar';
-$labels['importmessages'] = 'Importar mensagens';
+
$labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'desconhecido';
$labels['unlimited'] = 'ilimitado';
+
$labels['quicksearch'] = 'Pesquisa rápida';
$labels['resetsearch'] = 'Limpar pesquisa';
$labels['searchmod'] = 'Opções da pesquisa';
$labels['msgtext'] = 'Mensagem inteira';
$labels['body'] = 'Conteúdo';
-$labels['type'] = 'Tipo';
-$labels['namex'] = 'Nome';
+
$labels['openinextwin'] = 'Abrir em nova janela';
$labels['emlsave'] = 'Baixar (formato .eml)';
$labels['changeformattext'] = 'Exibir em formato de texto simples';
$labels['changeformathtml'] = 'Exibir com formatação HTML';
+
+// message compose
$labels['editasnew'] = 'Editar como novo';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar agora';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Confirmação de recebimento';
$labels['dsn'] = 'Recibo de entrega';
$labels['mailreplyintro'] = 'Em $date, $sender escreveu:';
$labels['originalmessage'] = 'Mensagem original';
+
$labels['editidents'] = 'Editar identidades';
$labels['spellcheck'] = 'Revisar';
$labels['checkspelling'] = 'Verificar ortografia';
$labels['resumeediting'] = 'Continuar a edição';
$labels['revertto'] = 'Reverter para';
-$labels['responses'] = 'Respostas';
-$labels['insertresponse'] = 'Inserir uma resposta';
-$labels['manageresponses'] = 'Gerenciar respostas';
-$labels['savenewresponse'] = 'Salvar nova resposta';
-$labels['editresponses'] = 'Editar respostas';
-$labels['editresponse'] = 'Editar resposta';
-$labels['responsename'] = 'Nome';
-$labels['responsetext'] = 'Texto da resposta';
+
$labels['attach'] = 'Anexar';
$labels['attachments'] = 'Anexos';
$labels['upload'] = 'Enviar arquivo';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Fechar';
$labels['messageoptions'] = 'Opções da mensagem...';
+
$labels['low'] = 'Baixa';
$labels['lowest'] = 'Mais baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'Mais alta';
+
$labels['nosubject'] = '(sem assunto)';
$labels['showimages'] = 'Exibir imagens';
$labels['alwaysshow'] = 'Sempre exibir imagens de $sender';
@@ -223,20 +248,26 @@ $labels['isdraft'] = 'Esta é uma mensagem salva como rascunho.';
$labels['andnmore'] = '$nr mais...';
$labels['togglemoreheaders'] = 'Exibir informações adicionais da mensagem (cabeçalhos)';
$labels['togglefullheaders'] = 'Exibir cabeçalho original da mensagem';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto simples';
$labels['savesentmessagein'] = 'Salvar mensagens enviadas em';
$labels['dontsave'] = 'não salvar';
$labels['maxuploadsize'] = 'Tamanho máximo permitido do arquivo é $size';
+
$labels['addcc'] = 'Adicionar Cópia';
$labels['addbcc'] = 'Adicionar Cópia Oculta';
$labels['addreplyto'] = 'Adicionar Endereço de Resposta';
$labels['addfollowupto'] = 'Adicionar Endereço de Encaminhamento';
+
+// mdn
$labels['mdnrequest'] = 'O remetente desta mensagem deseja ser notificado quando você ler esta mensagem. Você permite o envio desta notificação?';
$labels['receiptread'] = 'Confirmação de Leitura (exibida)';
$labels['yourmessage'] = 'Esta é uma confirmação de leitura da sua mensagem';
$labels['receiptnote'] = 'Nota: Esta confirmação de leitura somente informa que a mensagem foi aberta no computador do destinatário. Não há garantia que o destinatário tenha lido ou compreendido o conteúdo da mensagem.';
-$labels['name'] = 'Nome';
+
+// address boook
+$labels['name'] = 'Nome de exibição';
$labels['firstname'] = 'Primeiro Nome';
$labels['surname'] = 'Sobrenome';
$labels['middlename'] = 'Segundo Nome';
@@ -270,6 +301,7 @@ $labels['search'] = 'Pesquisar';
$labels['advsearch'] = 'Pesquisa Avançada';
$labels['advanced'] = 'Avançado';
$labels['other'] = 'Outro';
+
$labels['typehome'] = 'Residencial';
$labels['typework'] = 'Trabalho';
$labels['typeother'] = 'Outro';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistente';
$labels['typehomepage'] = 'Página pessoal';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Adicionar campo...';
$labels['addcontact'] = 'Adicionar novo contato';
$labels['editcontact'] = 'Editar contato';
$labels['contacts'] = 'Contatos';
$labels['contactproperties'] = 'Propriedades do contato';
$labels['personalinfo'] = 'Informações pessoais';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Salvar';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Renomear';
$labels['addphoto'] = 'Adicionar';
$labels['replacephoto'] = 'Substituir';
$labels['uploadphoto'] = 'Enviar foto';
+
$labels['newcontact'] = 'Criar novo contato';
$labels['deletecontact'] = 'Exclui os contatos selecionados';
$labels['composeto'] = 'Compor mensagem para';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Criar novo grupo de contatos';
$labels['grouprename'] = 'Renomear grupo';
$labels['groupdelete'] = 'Excluir grupo';
$labels['groupremoveselected'] = 'Remover os contatos selecionados do grupo';
+
$labels['previouspage'] = 'Página Anterior';
$labels['firstpage'] = 'Primeira Página';
$labels['nextpage'] = 'Próxima Página';
$labels['lastpage'] = 'Última Página';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
-$labels['listgroup'] = 'Listar membros do grupo';
$labels['personaladrbook'] = 'Endereços pessoais';
+
$labels['searchsave'] = 'Salvar pesquisa';
$labels['searchdelete'] = 'Excluir pesquisa';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contatos';
$labels['importfromfile'] = 'Importar do arquivo:';
-$labels['importtarget'] = 'Adicionar contatos para';
+$labels['importtarget'] = 'Adicionar novos contatos ao catálogo de endereços:';
$labels['importreplace'] = 'Substituir o catálogo de endereços atual';
-$labels['importgroups'] = 'Importar atribuições do grupo';
-$labels['importgroupsall'] = 'Todos (criar grupo se necessário)';
-$labels['importgroupsexisting'] = 'Somente para grupos existentes';
$labels['importdesc'] = 'Você pode enviar contatos de um catálogo de endereços existente.<br/>Os contatos devem ser enviados no formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (valores separados por vírgula).';
$labels['done'] = 'Concluído';
+
+// settings
$labels['settingsfor'] = 'Configurações para';
$labels['about'] = 'Sobre';
$labels['preferences'] = 'Preferências';
$labels['userpreferences'] = 'Preferências do usuário';
$labels['editpreferences'] = 'Editar preferências do usuário';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Gerenciar identidades desta conta';
$labels['newidentity'] = 'Nova identidade';
+
$labels['newitem'] = 'Novo item';
$labels['edititem'] = 'Editar item';
+
$labels['preferhtml'] = 'Exibir em HTML';
$labels['defaultcharset'] = 'Conjunto padrão de caracteres';
$labels['htmlmessage'] = 'Mensagem HTML';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorar palavras com números';
$labels['spellcheckignorecaps'] = 'Ignorar palavras com todas letras maiúsculas';
$labels['addtodict'] = 'Adicionar ao dicionário';
$labels['mailtoprotohandler'] = 'Associar links de e-mail (mailto:) para envio de mensagem através do webmail';
-$labels['standardwindows'] = 'Usar popups como janelas do navegador';
$labels['forwardmode'] = 'Encaminhamento de mensagens';
$labels['inline'] = 'Em linha (no corpo da mensagem)';
$labels['asattachment'] = 'como anexo';
+
$labels['folder'] = 'Pasta';
$labels['folders'] = 'Pastas';
$labels['foldername'] = 'Nome da pasta';
@@ -444,7 +484,7 @@ $labels['messagecount'] = 'Mensagens';
$labels['create'] = 'Criar';
$labels['createfolder'] = 'Criar nova pasta';
$labels['managefolders'] = 'Gerenciar pastas';
-$labels['specialfolders'] = 'Pastas de sistema';
+$labels['specialfolders'] = 'Pastas especiais';
$labels['properties'] = 'Propriedades';
$labels['folderproperties'] = 'Propriedades da pasta';
$labels['parentfolder'] = 'Pasta pai';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Tipo de Pasta';
$labels['personalfolder'] = 'Pasta Particular';
$labels['otherfolder'] = 'Pasta de outro Usuário';
$labels['sharedfolder'] = 'Pasta Pública';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Ascendente';
$labels['sortdesc'] = 'Descendente';
$labels['undo'] = 'Desfazer';
+
$labels['installedplugins'] = 'Plugins instalados';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versão';
$labels['source'] = 'Fonte';
$labels['license'] = 'Licença';
$labels['support'] = 'Obter suporte';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglês';
$labels['westerneuropean'] = 'Oeste Europeu';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonês';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chinês';
+
?>
diff --git a/program/localization/pt_BR/messages.inc b/program/localization/pt_BR/messages.inc
index 823dad22e..6ec481b8f 100644
--- a/program/localization/pt_BR/messages.inc
+++ b/program/localization/pt_BR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ocorreu um erro!';
$messages['loginfailed'] = 'Falha no login';
$messages['cookiesdisabled'] = 'Seu navegador não aceita cookies';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Mensagem enviada com sucesso';
$messages['savingmessage'] = 'Salvando Mensagem...';
$messages['messagesaved'] = 'Mensagem salva em Rascunhos';
$messages['successfullysaved'] = 'Salvo com sucesso';
-$messages['savingresponse'] = 'Salvando texto de resposta...';
-$messages['deleteresponseconfirm'] = 'Você realmente deseja apagar este texto de resposta?';
$messages['addedsuccessfully'] = 'Contato incluído com sucesso no catálogo de endereços.';
$messages['contactexists'] = 'Já existe um contato com esse mesmo e-mail.';
$messages['contactnameexists'] = 'Já existe um contato com o mesmo nome.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Removendo formatação...';
$messages['messageopenerror'] = 'Não foi possível carregar a mensagem do servidor';
$messages['fileuploaderror'] = 'Falha ao enviar o arquivo';
$messages['filesizeerror'] = 'O arquivo enviado excede o tamanho máximo de $size';
-$messages['copysuccess'] = '$nr contato(s) copiado(s) com sucesso.';
-$messages['movesuccess'] = '$nr contato(s) movido(s) com sucesso.';
-$messages['copyerror'] = 'Não foi possível copiar os contatos.';
-$messages['moveerror'] = 'Não foi possível mover os contatos.';
+$messages['copysuccess'] = '$nr endereço(s) copiado(s) com sucesso';
+$messages['copyerror'] = 'Não foi possível copiar os endereços';
$messages['sourceisreadonly'] = 'Esta fonte de endereço é somente leitura';
$messages['errorsavingcontact'] = 'Não foi possível salvar o endereço de contato';
$messages['movingmessage'] = 'Movendo mensagem(ns)...';
$messages['copyingmessage'] = 'Copiando mensagem(ns)...';
$messages['copyingcontact'] = 'Copiando contato(s)...';
-$messages['movingcontact'] = 'Movendo contato(s)...';
$messages['deletingmessage'] = 'Excluindo mensagem(ns)...';
$messages['markingmessage'] = 'Marcando mensagem(ns)...';
$messages['addingmember'] = 'Adicionando contato(s) para o grupo...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importando, aguarde por favor...';
$messages['importformaterror'] = 'Falha na importação! O arquivo enviado não está em um formato válido.';
$messages['importconfirm'] = '<b>Foram importados com sucesso $inserted contatos</b>';
$messages['importconfirmskipped'] = '<b>Ignorado(s) $skipped registro(s) já existente(s)</b>';
-$messages['importmessagesuccess'] = 'Importação de $nr mensagens com sucesso';
-$messages['importmessageerror'] = 'Falha na importação! O arquivo enviado não é uma mensagem ou caixa postal válida';
$messages['opnotpermitted'] = 'Operação não permitida!';
$messages['nofromaddress'] = 'Falta o e-mail na identidade selecionada.';
$messages['editorwarning'] = 'Mudar para o editor de texto simples elimina toda a formatação de texto. Deseja continuar?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Sem permissão para criar/mover a pasta dentro
$messages['messagetoobig'] = 'A mensagem é muito grande para ser processada.';
$messages['attachmentvalidationerror'] = 'ATENÇÃO! Este anexo é suspeito porque seu tipo não combina com o tipo declarado na mensagem. Se você não confia no remetente, não deveria abri-lo no navegador porque pode conter conteúdo malicioso.<br/><br/><em>Esperado: $expected; encontrado: $detected</em>';
$messages['noscriptwarning'] = 'Aviso: Este webmail utiliza Javascript, habilite-o nas configurações de seu navegador.';
+
?>
diff --git a/program/localization/pt_PT/labels.inc b/program/localization/pt_PT/labels.inc
index b6db8a41e..316255e5e 100644
--- a/program/localization/pt_PT/labels.inc
+++ b/program/localization/pt_PT/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bem-vindo ao $product';
$labels['username'] = 'Utilizador';
$labels['password'] = 'Palavra-passe';
$labels['server'] = 'Servidor';
$labels['login'] = 'Entrar';
+
+// taskbar
$labels['logout'] = 'Sair';
$labels['mail'] = 'Mensagens';
$labels['settings'] = 'Definições';
$labels['addressbook'] = 'Contactos';
+
+// mailbox names
$labels['inbox'] = 'A Receber';
$labels['drafts'] = 'Rascunhos';
$labels['sent'] = 'Itens Enviados';
$labels['trash'] = 'Reciclagem';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Mostrar nomes reais para as pastas especiais';
+
+// message listing
$labels['subject'] = 'Assunto';
$labels['from'] = 'Remetente';
$labels['sender'] = 'Remetente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioridade';
$labels['organization'] = 'Organização';
$labels['readstatus'] = 'Estado de leitura';
$labels['listoptions'] = 'Lista de opções...';
+
$labels['mailboxlist'] = 'Pastas';
$labels['messagesfromto'] = 'Mensagens de $from a $to de $count';
$labels['threadsfromto'] = 'Tópicos de $from a $to de $count';
$labels['messagenrof'] = 'Mensagem $nr de $count';
$labels['fromtoshort'] = '$from – $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'mover para...';
@@ -56,9 +67,13 @@ $labels['download'] = 'descarregar';
$labels['open'] = 'Abrir';
$labels['showattachment'] = 'Mostrar';
$labels['showanyway'] = 'Mostrar na mesma';
+
$labels['filename'] = 'Ficheiro';
$labels['filesize'] = 'Tamanho';
+
$labels['addtoaddressbook'] = 'Adicionar à lista de contactos';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Seg';
$labels['tue'] = 'Ter';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Qua';
$labels['thu'] = 'Qui';
$labels['fri'] = 'Sex';
$labels['sat'] = 'Sáb';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Segunda-feira';
$labels['tuesday'] = 'Terça-feira';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Quarta-feira';
$labels['thursday'] = 'Quinta-feira';
$labels['friday'] = 'Sexta-feira';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Fev';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set';
$labels['oct'] = 'Out';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dez';
+
+// months long
$labels['longjan'] = 'Janeiro';
$labels['longfeb'] = 'Fevereiro';
$labels['longmar'] = 'Março';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Setembro';
$labels['longoct'] = 'Outubro';
$labels['longnov'] = 'Novembro';
$labels['longdec'] = 'Dezembro';
+
$labels['today'] = 'Hoje';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Verificar existência de novas mensagens';
$labels['compose'] = 'Nova mensagem';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mais acções...';
$labels['more'] = 'Mais';
$labels['back'] = 'Voltar';
$labels['options'] = 'Opções';
+
$labels['select'] = 'Seleccionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Nenhum';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandir tudo';
$labels['expand-unread'] = 'Expandir não lidas';
$labels['collapse-all'] = 'Recolher tudo';
$labels['threaded'] = 'Agrupar tópicos';
+
$labels['autoexpand_threads'] = 'Expandir tópicos das mensagens';
$labels['do_expand'] = 'todos os tópicos';
$labels['expand_only_unread'] = 'só com mensagens não lidas';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Lista de colunas';
$labels['listsorting'] = 'Ordenar por';
$labels['listorder'] = 'Ordenação';
$labels['listmode'] = 'Modo de visualização';
+
$labels['folderactions'] = 'Acções para pastas...';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Esvaziar';
-$labels['importmessages'] = 'Importar mensagens';
+
$labels['quota'] = 'Espaço utilizado';
$labels['unknown'] = 'desconhecido';
$labels['unlimited'] = 'ilimitado';
+
$labels['quicksearch'] = 'Pesquisa rápida';
$labels['resetsearch'] = 'Limpar pesquisa';
$labels['searchmod'] = 'Pesquisar em';
$labels['msgtext'] = 'Mensagem completa';
$labels['body'] = 'Corpo';
-$labels['type'] = 'Tipo';
-$labels['namex'] = 'Nome';
+
$labels['openinextwin'] = 'Abrir numa nova janela';
$labels['emlsave'] = 'Guardar como (.eml)';
$labels['changeformattext'] = 'Mostrar em formato de texto simples';
$labels['changeformathtml'] = 'Mostrar em formato HTML';
+
+// message compose
$labels['editasnew'] = 'Editar como nova';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Recibo de leitura';
$labels['dsn'] = 'Recibo de entrega';
$labels['mailreplyintro'] = 'Em $date, $sender escreveu:';
$labels['originalmessage'] = 'Mensagem Original';
+
$labels['editidents'] = 'Editar entidades';
$labels['spellcheck'] = 'Corrector Ortográfico';
$labels['checkspelling'] = 'Verificar ortografia';
$labels['resumeediting'] = 'Continuar a edição';
$labels['revertto'] = 'Reverter para';
-$labels['responses'] = 'Respostas';
-$labels['insertresponse'] = 'Insira uma resposta';
-$labels['manageresponses'] = 'Gerir respostas';
-$labels['savenewresponse'] = 'Gravar nova resposta';
-$labels['editresponses'] = 'Editar respostas';
-$labels['editresponse'] = 'Editar resposta';
-$labels['responsename'] = 'Nome';
-$labels['responsetext'] = 'Texto da resposta';
+
$labels['attach'] = 'Anexar';
$labels['attachments'] = 'Anexos';
$labels['upload'] = 'Carregar';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Fechar';
$labels['messageoptions'] = 'Opções de mensagens...';
+
$labels['low'] = 'Baixa';
$labels['lowest'] = 'Muito baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'Muito alta';
+
$labels['nosubject'] = '(sem assunto)';
$labels['showimages'] = 'Mostrar imagens';
$labels['alwaysshow'] = 'Mostrar sempre imagens a partir de $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Esta é uma mensagem de rascunho.';
$labels['andnmore'] = '$nr mais...';
$labels['togglemoreheaders'] = 'Mostrar cabeçalhos adicionais da mensagem';
$labels['togglefullheaders'] = 'Mostrar cabeçalho original da mensagem';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto simples';
$labels['savesentmessagein'] = 'Guardar mensagem enviada em';
$labels['dontsave'] = 'não guardar';
$labels['maxuploadsize'] = 'Tamanho máximo permitido do ficheiro é $size';
+
$labels['addcc'] = 'Adicionar Cc';
$labels['addbcc'] = 'Adicionar Bcc';
$labels['addreplyto'] = 'Adicionar Responder para';
$labels['addfollowupto'] = 'Adicionar Reencaminhar para';
+
+// mdn
$labels['mdnrequest'] = 'O remetente desta mensagem pediu para ser notificado quando esta mensagem fosse lida. Deseja enviar uma notificação?';
$labels['receiptread'] = 'Recibo de leitura';
$labels['yourmessage'] = 'Isto é um recibo de leitura da sua mensagem';
$labels['receiptnote'] = 'Nota: este recibo apenas indica que a mensagem foi aberta pelo destinatário. Não garante que a mensagem foi lida ou compreendida.';
+
+// address boook
$labels['name'] = 'Nome completo';
$labels['firstname'] = 'Primeiro nome';
$labels['surname'] = 'Apelido';
@@ -270,6 +301,7 @@ $labels['search'] = 'Pesquisar';
$labels['advsearch'] = 'Pesquisa avançada';
$labels['advanced'] = 'Pesquisa avançada';
$labels['other'] = 'Outro';
+
$labels['typehome'] = 'Residência';
$labels['typework'] = 'Empresa';
$labels['typeother'] = 'Outro';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistente';
$labels['typehomepage'] = 'Página Inicial';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Adicionar campo...';
$labels['addcontact'] = 'Criar novo contacto';
$labels['editcontact'] = 'Editar contacto';
$labels['contacts'] = 'Contactos';
$labels['contactproperties'] = 'Dados do contacto';
$labels['personalinfo'] = 'Informação pessoal';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Guardar';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Renomear';
$labels['addphoto'] = 'Adicionar';
$labels['replacephoto'] = 'Substituir';
$labels['uploadphoto'] = 'Carregar foto';
+
$labels['newcontact'] = 'Criar novo contacto';
$labels['deletecontact'] = 'Eliminar contacto(s) seleccionado(s)';
$labels['composeto'] = 'Nova mensagem para';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Criar novo grupo de contactos';
$labels['grouprename'] = 'Renomear grupo';
$labels['groupdelete'] = 'Eliminar grupo';
$labels['groupremoveselected'] = 'Remover o(s) contacto(s) seleccionado(s) do grupo';
+
$labels['previouspage'] = 'Página anterior';
$labels['firstpage'] = 'Primeira página';
$labels['nextpage'] = 'Página seguinte';
$labels['lastpage'] = 'Última página';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
-$labels['listgroup'] = 'Lista de membros do grupo';
$labels['personaladrbook'] = 'Endereços pessoais';
+
$labels['searchsave'] = 'Guardar pesquisa';
$labels['searchdelete'] = 'Eliminar pesquisa';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importação de contactos';
$labels['importfromfile'] = 'Importar do ficheiro:';
-$labels['importtarget'] = 'Adicionar contactos a';
+$labels['importtarget'] = 'Adicionar novo contacto ao livro de endereços:';
$labels['importreplace'] = 'Substituir todo o livro de endereços.';
-$labels['importgroups'] = 'Importar atribuições de grupo';
-$labels['importgroupsall'] = 'Todos (criar grupos se necessário)';
-$labels['importgroupsexisting'] = 'Apenas para grupos existentes';
$labels['importdesc'] = 'Pode enviar/carregar contactos de um livro de endereços existente.<br/>Neste momento suportamos a importação nos seguintes formatos: <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (valores separados por vírgula).';
$labels['done'] = 'Terminado';
+
+// settings
$labels['settingsfor'] = 'Configurações para';
$labels['about'] = 'Acerca';
$labels['preferences'] = 'Preferências';
$labels['userpreferences'] = 'Preferências do utilizador';
$labels['editpreferences'] = 'Editar preferências do utilizador';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Gerir identidades para esta conta';
$labels['newidentity'] = 'Nova identidade';
+
$labels['newitem'] = 'Novo item';
$labels['edititem'] = 'Editar item';
+
$labels['preferhtml'] = 'Mostrar mensagens em HTML';
$labels['defaultcharset'] = 'Conjunto de caracteres predefinido';
$labels['htmlmessage'] = 'Mensagem em HTML';
@@ -371,8 +411,8 @@ $labels['uisettings'] = 'Interface do utilizador';
$labels['serversettings'] = 'Definições do servidor';
$labels['mailboxview'] = 'Visualização da Caixa de Entrada';
$labels['mdnrequests'] = 'Enviar notificações';
-$labels['askuser'] = 'perguntar ao utilizador';
-$labels['autosend'] = 'enviar automaticamente';
+$labels['askuser'] = 'perguntar ao ultilizador';
+$labels['autosend'] = 'enviar automáticamente';
$labels['autosendknown'] = 'enviar recibo de leitura apenas para os meus contactos';
$labels['autosendknownignore'] = 'enviar recibo para os meus contactos, caso contrário, ignorar';
$labels['ignore'] = 'ignorar';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorar palavras com números';
$labels['spellcheckignorecaps'] = 'Ignorar palavras em maiúsculas';
$labels['addtodict'] = 'Adicionar ao dicionário';
$labels['mailtoprotohandler'] = 'Registar manipulador de protocolo para mailto: links';
-$labels['standardwindows'] = 'Lidar com popups como janelas padrão';
$labels['forwardmode'] = 'Reencaminhamento de mensagens';
$labels['inline'] = 'em linha';
$labels['asattachment'] = 'como anexo';
+
$labels['folder'] = 'Pasta';
$labels['folders'] = 'Pastas';
$labels['foldername'] = 'Nome da pasta';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Tipo de pasta';
$labels['personalfolder'] = 'Pasta privada';
$labels['otherfolder'] = 'Outro tipo de pasta';
$labels['sharedfolder'] = 'Pasta pública';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Ordenação Ascendente';
$labels['sortdesc'] = 'Ordenação Descendente';
$labels['undo'] = 'Anular';
+
$labels['installedplugins'] = 'Plugins instalados';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versão';
$labels['source'] = 'Fonte';
$labels['license'] = 'Licença';
$labels['support'] = 'Obter suporte';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglês';
$labels['westerneuropean'] = 'Europa Ocidental';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonês';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chinês';
+
?>
diff --git a/program/localization/pt_PT/messages.inc b/program/localization/pt_PT/messages.inc
index fed7fa09e..88b96e60e 100644
--- a/program/localization/pt_PT/messages.inc
+++ b/program/localization/pt_PT/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ocorreu um erro!';
$messages['loginfailed'] = 'O utilizador ou palavra-passe que introduziu não correspondem.';
$messages['cookiesdisabled'] = 'O seu navegador não suporta cookies';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Mensagem enviada com sucesso';
$messages['savingmessage'] = 'A guardar mensagem...';
$messages['messagesaved'] = 'Mensagem guardada como rascunho';
$messages['successfullysaved'] = 'Guardado com sucesso';
-$messages['savingresponse'] = 'A guardar texto de resposta...';
-$messages['deleteresponseconfirm'] = 'Deseja realmente apagar este texto de resposta?';
$messages['addedsuccessfully'] = 'Contacto adicionado com sucesso';
$messages['contactexists'] = 'Já existe um contacto com este e-mail';
$messages['contactnameexists'] = 'Já existe um contacto com este nome.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'O contacto especificado não foi encontrado';
$messages['contactsearchonly'] = 'Insira os termos de pesquisa para localizar os contactos';
$messages['sendingfailed'] = 'Falha no envio da mensagem';
$messages['senttooquickly'] = 'Por favor espere $sec seg(s) antes de enviar esta mensagem';
-$messages['errorsavingsent'] = 'Ocorreu um erro ao gravar a mensagem enviada.';
-$messages['errorsaving'] = 'Ocorreu um erro ao gravar.';
+$messages['errorsavingsent'] = 'Ocorreu um erro ao guardar a mensagem enviada';
+$messages['errorsaving'] = 'Ocorreu um erro ao guardar';
$messages['errormoving'] = 'Não foi possível mover a mensagem';
$messages['errorcopying'] = 'Não foi possível copiar a mensagem';
$messages['errordeleting'] = 'Não foi possível eliminar a mensagem';
@@ -101,16 +101,13 @@ $messages['converting'] = 'A remover a formatação...';
$messages['messageopenerror'] = 'Não foi possível carregar a mensagem.';
$messages['fileuploaderror'] = 'Falha ao carregar o ficheiro';
$messages['filesizeerror'] = 'O ficheiro excede o tamanho máximo permitido de $size';
-$messages['copysuccess'] = '$nr contacto(s) copiado(s) com sucesso.';
-$messages['movesuccess'] = '$nr contacto(s) movido(s) com sucesso.';
-$messages['copyerror'] = 'Não foi possível copiar o(s) contacto(s).';
-$messages['moveerror'] = 'Não foi possível mover o(s) contacto(s).';
+$messages['copysuccess'] = 'Foram copiados $nr endereços com sucesso';
+$messages['copyerror'] = 'Não foi possível copiar os endereços';
$messages['sourceisreadonly'] = 'Esta origem de endereços é só de leitura';
$messages['errorsavingcontact'] = 'Não foi possível guardar o endereço deste contacto';
$messages['movingmessage'] = 'A mover mensagem(ns)...';
$messages['copyingmessage'] = 'A copiar mensagem(ns)...';
$messages['copyingcontact'] = 'A copiar contacto(s)...';
-$messages['movingcontact'] = 'A mover contacto(s)...';
$messages['deletingmessage'] = 'A eliminar mensagem(ns)...';
$messages['markingmessage'] = 'A marcar mensagem(ns)...';
$messages['addingmember'] = 'A adicionar contacto(s) ao grupo...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'A importar, por favor aguarde...';
$messages['importformaterror'] = 'A importação falhou! O ficheiro enviado não é um ficheiro de dados válido.';
$messages['importconfirm'] = '<b>$inserted contactos importados com sucesso, $skipped contactos já existentes foram ignorados</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = 'Ignoradas $skipped entradas já existentes.';
-$messages['importmessagesuccess'] = '$nr mensagens importadas com sucesso';
-$messages['importmessageerror'] = 'A importação falhou! O ficheiro carregado não é um arquivo de caixa de correio ou ficheiro de mensagem válido.';
$messages['opnotpermitted'] = 'Operação não permitida';
$messages['nofromaddress'] = 'Falta o endereço de e-mail na identidade seleccionada';
$messages['editorwarning'] = 'Ao mudar para o editor Plain Text vai perder toda a formação de texto. Deseja continuar?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Não é possível criar/mover esta pasta para
$messages['messagetoobig'] = 'A mensagem é demasiado grande para ser processada.';
$messages['attachmentvalidationerror'] = 'ATENÇÃO! Este anexo é suspeito porque o seu tipo não coincide com o tipo declarado na mensagem. Se não confiar no remetente, não o deve abrir no navegador, pois pode ter conteúdos maliciosos.<br/><br/><em>Esperado: $expected; Encontrado: $detected</em>';
$messages['noscriptwarning'] = 'Aviso: Este serviço de webmail utiliza Javascript! Para o poder utilizar, active o Javascript nas definições do seu navegador.';
+
?>
diff --git a/program/localization/ro_RO/labels.inc b/program/localization/ro_RO/labels.inc
index 953cfe8da..9b76d7175 100644
--- a/program/localization/ro_RO/labels.inc
+++ b/program/localization/ro_RO/labels.inc
@@ -15,21 +15,31 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bine aţi venit la $product';
$labels['username'] = 'Utilizator';
$labels['password'] = 'Parolă';
$labels['server'] = 'Server';
$labels['login'] = 'Autentificare';
+
+// taskbar
$labels['logout'] = 'Deconectare';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Setări personale';
$labels['addressbook'] = 'Agendă';
+
+// mailbox names
$labels['inbox'] = 'Primite';
$labels['drafts'] = 'Ciorne';
$labels['sent'] = 'Trimise';
$labels['trash'] = 'Gunoi';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Arata numele reale pentru folderele speciale';
+$labels['show_real_foldernames'] = 'Show real names for special folders';
+
+// message listing
$labels['subject'] = 'Subiect';
$labels['from'] = 'Expeditor';
$labels['sender'] = 'Expeditor';
@@ -44,11 +54,13 @@ $labels['priority'] = 'Prioritate';
$labels['organization'] = 'Organizaţie';
$labels['readstatus'] = 'Citit/Necitit';
$labels['listoptions'] = 'Listează opţiunile...';
+
$labels['mailboxlist'] = 'Dosare';
$labels['messagesfromto'] = 'Mesaje de la $from până la $to din $count';
$labels['threadsfromto'] = 'Grupuri de la $from până la $to din $count';
$labels['messagenrof'] = 'Mesajul $nr din $count';
$labels['fromtoshort'] = '$from - $to din $count';
+
$labels['copy'] = 'Copiază';
$labels['move'] = 'Mută';
$labels['moveto'] = 'Mută in...';
@@ -56,9 +68,13 @@ $labels['download'] = 'Descarcă';
$labels['open'] = 'Deschide';
$labels['showattachment'] = 'Arată';
$labels['showanyway'] = 'Arată oricum';
+
$labels['filename'] = 'Nume fiÅŸier';
$labels['filesize'] = 'Mărime fişier';
+
$labels['addtoaddressbook'] = 'Adaugă în agendă';
+
+// weekdays short
$labels['sun'] = 'Dum';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +82,8 @@ $labels['wed'] = 'Mie';
$labels['thu'] = 'Joi';
$labels['fri'] = 'Vin';
$labels['sat'] = 'Sâm';
+
+// weekdays long
$labels['sunday'] = 'Duminică';
$labels['monday'] = 'Luni';
$labels['tuesday'] = 'Marţi';
@@ -73,6 +91,8 @@ $labels['wednesday'] = 'Miercuri';
$labels['thursday'] = 'Joi';
$labels['friday'] = 'Vineri';
$labels['saturday'] = 'Sâmbătă';
+
+// months short
$labels['jan'] = 'Ian';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +105,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Noi';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Ianuarie';
$labels['longfeb'] = 'Februarie';
$labels['longmar'] = 'Martie';
@@ -97,7 +119,10 @@ $labels['longsep'] = 'Septembrie';
$labels['longoct'] = 'Octombrie';
$labels['longnov'] = 'Noiembrie';
$labels['longdec'] = 'Decembrie';
+
$labels['today'] = 'Astăzi';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizează';
$labels['checkmail'] = 'Verifică mesaje noi';
$labels['compose'] = 'Scrie un mesaj';
@@ -130,6 +155,7 @@ $labels['moreactions'] = 'Mai multe acțiuni...';
$labels['more'] = 'Mai multe';
$labels['back'] = 'ÃŽnapoi';
$labels['options'] = 'Opţiuni';
+
$labels['select'] = 'Selectează';
$labels['all'] = 'Toate';
$labels['none'] = 'Niciunul';
@@ -148,6 +174,7 @@ $labels['expand-all'] = 'Extinde toate';
$labels['expand-unread'] = 'Extinde necitite';
$labels['collapse-all'] = 'Compactează toate';
$labels['threaded'] = 'Grupate';
+
$labels['autoexpand_threads'] = 'Extinde mesajele grupate';
$labels['do_expand'] = 'toate grupările';
$labels['expand_only_unread'] = 'doar pe cele cu mesaje necitite';
@@ -163,24 +190,27 @@ $labels['listcolumns'] = 'Arată coloane';
$labels['listsorting'] = 'Sortează după';
$labels['listorder'] = 'Ordinea de sortare';
$labels['listmode'] = 'Mod de vizualizare';
+
$labels['folderactions'] = 'Acțiuni dosar...';
$labels['compact'] = 'Compactează';
$labels['empty'] = 'GoleÅŸte';
-$labels['importmessages'] = 'Import mesaje';
+
$labels['quota'] = 'Spaţiu folosit';
$labels['unknown'] = 'necunoscut';
$labels['unlimited'] = 'nelimitat';
+
$labels['quicksearch'] = 'Căutare rapidă';
$labels['resetsearch'] = 'Anulează căutarea';
$labels['searchmod'] = 'Parametrii de căutare';
$labels['msgtext'] = 'Tot mesajul';
$labels['body'] = 'Corp';
-$labels['type'] = 'Tip';
-$labels['namex'] = 'Nume';
+
$labels['openinextwin'] = 'Deschide în fereastră nouă';
$labels['emlsave'] = 'Salvează în format .eml';
$labels['changeformattext'] = 'Afișează în format text';
$labels['changeformathtml'] = 'Afișează în format HTML';
+
+// message compose
$labels['editasnew'] = 'Editează ca nou';
$labels['send'] = 'Trimite';
$labels['sendmessage'] = 'Trimite mesaj';
@@ -192,22 +222,26 @@ $labels['returnreceipt'] = 'Returnează confirmare de primire';
$labels['dsn'] = 'Notificare despre starea trimiterii';
$labels['mailreplyintro'] = 'ÃŽn $date, $sender a scris:';
$labels['originalmessage'] = 'Mesaj original';
+
$labels['editidents'] = 'Editează identităţi';
$labels['spellcheck'] = 'Ortografie';
$labels['checkspelling'] = 'Verifică ortografie';
$labels['resumeediting'] = 'Reia editarea';
$labels['revertto'] = 'Revino la';
+
$labels['attach'] = 'Ataşează';
$labels['attachments'] = 'AtaÅŸamente';
$labels['upload'] = 'Încarcă';
$labels['uploadprogress'] = '$percent ($current din $total)';
$labels['close'] = 'ÃŽnchide';
$labels['messageoptions'] = 'Opţiuni mesaj...';
+
$labels['low'] = 'Mică';
$labels['lowest'] = 'Cea mai mică';
$labels['normal'] = 'Normală';
$labels['high'] = 'Mare';
$labels['highest'] = 'Cea mai mare';
+
$labels['nosubject'] = '(fără subiect)';
$labels['showimages'] = 'Afişează imagini';
$labels['alwaysshow'] = 'Afişează întotdeauna imaginile de la $sender';
@@ -215,19 +249,25 @@ $labels['isdraft'] = 'Acest mesaj este o ciornă.';
$labels['andnmore'] = '$nr mai multe...';
$labels['togglemoreheaders'] = 'Arată mai mult din antet';
$labels['togglefullheaders'] = 'Arată mai puțin din antet';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Text simplu';
$labels['savesentmessagein'] = 'Salvează mesajele trimise în';
$labels['dontsave'] = 'Nu salva';
$labels['maxuploadsize'] = 'Mărimea maxim admisă a fişierului este $size';
+
$labels['addcc'] = 'Adaugă CC';
$labels['addbcc'] = 'Adaugă BCC';
$labels['addreplyto'] = 'Adaugă Raspunde-La';
$labels['addfollowupto'] = 'Adaugă Followup-La';
+
+// mdn
$labels['mdnrequest'] = 'Expeditorul acestui mesaj a solicitat să fie notificat la cititrea mesajului. Doriţi să notificaţi expeditorul?';
$labels['receiptread'] = 'Returnează confirmare (citit)';
$labels['yourmessage'] = 'Aceasta este o confirmare de primire a mesajului dumneavoastră.';
$labels['receiptnote'] = 'Notă: Această confirmare doar vă informează că mesajul a fost afişat pe calculatorul destinatarului. Nu există nici o garanţie că destinatarul a citit sau a inţeles conţinutul mesajului.';
+
+// address boook
$labels['name'] = 'Numele Contact';
$labels['firstname'] = 'Nume';
$labels['surname'] = 'Prenume';
@@ -262,6 +302,7 @@ $labels['search'] = 'Căutare';
$labels['advsearch'] = 'Căutare avansată';
$labels['advanced'] = 'Avansat';
$labels['other'] = 'Altele';
+
$labels['typehome'] = 'Acasă';
$labels['typework'] = 'Serviciu';
$labels['typeother'] = 'Altele';
@@ -276,12 +317,14 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'Pagină de pornire';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Adaugă câmp...';
$labels['addcontact'] = 'Adaugă contact nou';
$labels['editcontact'] = 'Modifică contact';
$labels['contacts'] = 'Contacte';
$labels['contactproperties'] = 'Proprietăţile contactului...';
$labels['personalinfo'] = 'Informații personale';
+
$labels['edit'] = 'Editează';
$labels['cancel'] = 'Renunţă';
$labels['save'] = 'Salvează';
@@ -290,6 +333,7 @@ $labels['rename'] = 'RedenumeÅŸte';
$labels['addphoto'] = 'Adaugă';
$labels['replacephoto'] = 'Înlocuiește';
$labels['uploadphoto'] = 'Încarcă imagine';
+
$labels['newcontact'] = 'Creează contact nou';
$labels['deletecontact'] = 'Åžterge contactul selectat';
$labels['composeto'] = 'Compune e-mail pentru';
@@ -303,36 +347,41 @@ $labels['newcontactgroup'] = 'Creează un nou grup de contacte';
$labels['grouprename'] = 'Redenumește grupul';
$labels['groupdelete'] = 'Șterge grupul';
$labels['groupremoveselected'] = 'Șterge contactele selectate din grup';
+
$labels['previouspage'] = 'Pagina anterioară';
$labels['firstpage'] = 'Prima pagină';
$labels['nextpage'] = 'Pagina următoare';
$labels['lastpage'] = 'Ultima pagină';
+
$labels['group'] = 'Grup';
$labels['groups'] = 'Grupuri';
-$labels['listgroup'] = 'Lista membrii grupului';
$labels['personaladrbook'] = 'Adrese personale';
+
$labels['searchsave'] = 'Salvează căutarea';
$labels['searchdelete'] = 'Şterge căutarea';
+
$labels['import'] = 'Importă';
$labels['importcontacts'] = 'Importă contacte';
$labels['importfromfile'] = 'Importă din fişier:';
-$labels['importtarget'] = 'Adaugă contactele la';
+$labels['importtarget'] = 'Adaugă contactele noi în agenda:';
$labels['importreplace'] = 'Înlocuieşte întreaga agendă';
-$labels['importgroups'] = 'Importă atribuirile în grup';
-$labels['importgroupsall'] = 'Toate (creează grupurile dacă este necesar)';
-$labels['importgroupsexisting'] = 'Doar pentru grupurile existente';
$labels['importdesc'] = 'Puteți încărca contacte dintr-o agendă existentă.<br/>Momentan este suportat importul în formatul <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> sau în formatul CSV (comma-separated).';
$labels['done'] = 'Finalizat';
+
+// settings
$labels['settingsfor'] = 'Setări pentru';
$labels['about'] = 'Despre';
$labels['preferences'] = 'Preferinţe';
$labels['userpreferences'] = 'Preferinţe utilizator';
$labels['editpreferences'] = 'Modifică preferinţe utilizator';
+
$labels['identities'] = 'Identităţi';
$labels['manageidentities'] = 'Administrează identităţi pentru acest cont';
$labels['newidentity'] = 'Identitate nouă';
+
$labels['newitem'] = 'Obiect nou';
$labels['edititem'] = 'Editează obiect';
+
$labels['preferhtml'] = 'Format HTML';
$labels['defaultcharset'] = 'Set implicit de caractere';
$labels['htmlmessage'] = 'Mesaj HTML';
@@ -424,10 +473,11 @@ $labels['spellcheckignorenums'] = 'Ignoră cuvintele cu numere';
$labels['spellcheckignorecaps'] = 'Ignoră cuvintele din litere mari';
$labels['addtodict'] = 'Adaugă la dicţionar';
$labels['mailtoprotohandler'] = 'Îregistrează handler protocol pentru mailto: link-uri';
-$labels['standardwindows'] = 'Trateaza popupsurile ca ferestre standard';
+$labels['standardwindows'] = 'Handle popups as standard windows';
$labels['forwardmode'] = 'Trimitere mai departe mesaj';
$labels['inline'] = 'într-e linii';
$labels['asattachment'] = 'ca atașament';
+
$labels['folder'] = 'Dosar';
$labels['folders'] = 'Dosare';
$labels['foldername'] = 'Nume dosar';
@@ -448,20 +498,26 @@ $labels['foldertype'] = 'Tip dosar';
$labels['personalfolder'] = 'Dosar privat';
$labels['otherfolder'] = 'Dosarul altui utilizator';
$labels['sharedfolder'] = 'Dosar public';
+
$labels['sortby'] = 'Sortează după';
$labels['sortasc'] = 'Sortează ascendent';
$labels['sortdesc'] = 'Sortează descendent';
$labels['undo'] = 'Anulaţi/Revocați';
+
$labels['installedplugins'] = 'Instalare module';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versiune';
$labels['source'] = 'Sursă';
$labels['license'] = 'Licență';
$labels['support'] = 'Cere asistenţă';
+
+// units
$labels['B'] = 'O';
$labels['KB'] = 'KO';
$labels['MB'] = 'MO';
$labels['GB'] = 'GO';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Englezesc';
$labels['westerneuropean'] = 'Europa de Vest';
@@ -480,4 +536,5 @@ $labels['vietnamese'] = 'Vietnamez';
$labels['japanese'] = 'Japonez';
$labels['korean'] = 'Coreean';
$labels['chinese'] = 'Chinezesc';
+
?>
diff --git a/program/localization/ro_RO/messages.inc b/program/localization/ro_RO/messages.inc
index c3e74597f..78e0fcb65 100644
--- a/program/localization/ro_RO/messages.inc
+++ b/program/localization/ro_RO/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'A avut loc o EROARE!';
$messages['loginfailed'] = 'Autentificare eşuată';
$messages['cookiesdisabled'] = 'Browserul dumneavoastră nu acceptă cookies';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Contactul solicitat nu a fost găsit.';
$messages['contactsearchonly'] = 'Introdu nişte termeni de căutare pentru a găsi contactele';
$messages['sendingfailed'] = 'Nu s-a reuÅŸit trimiterea mesajului';
$messages['senttooquickly'] = 'Vă rugăm aşteptaţi $sec sec. înainte de a trimite acest mesaj';
+$messages['errorsavingsent'] = 'A intervenit o eroare în timp ce se efectua salvarea mesajului trimis';
+$messages['errorsaving'] = 'A intervenit o eroare în timp ce se efectua salvarea';
$messages['errormoving'] = 'Nu am putut muta mesajul (mesajele).';
$messages['errorcopying'] = 'Nu am putut copia mesajul (mesajele).';
$messages['errordeleting'] = 'Nu am putut ÅŸterge mesajul (mesajele).';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Resetez mesajul la parametrii iniţiali...';
$messages['messageopenerror'] = 'Nu s-a putut încărca mesajul din server';
$messages['fileuploaderror'] = 'Încărcarea pe server a eşuat';
$messages['filesizeerror'] = 'Fişierul încărcat depăşeşte dimensiunea de $size';
-$messages['copysuccess'] = 'Am copiat cu succes $nr contacte.';
-$messages['movesuccess'] = 'Am mutat cu succes $nr contacte.';
-$messages['copyerror'] = 'Nu am putut copia nici un contact.';
-$messages['moveerror'] = 'Nu am putut muta nici un contact.';
+$messages['copysuccess'] = '$nr adrese copiat(e) cu succes';
+$messages['copyerror'] = 'Nu s-a putut copia nicio adresă';
$messages['sourceisreadonly'] = 'Sursa acestei adrese este "read-only" (se poate doar citi)';
$messages['errorsavingcontact'] = 'Nu s-a putut salva adresa de contact';
$messages['movingmessage'] = 'Mutare mesaj....';
$messages['copyingmessage'] = 'Copiere mesaj...';
$messages['copyingcontact'] = 'Copiez contact(ele)...';
-$messages['movingcontact'] = 'Se muta contactul (contactele) ...';
$messages['deletingmessage'] = 'Åžterg mesaj(ele)...';
$messages['markingmessage'] = 'Marchez mesaj(ele)...';
$messages['addingmember'] = 'Adaug contact(ele) la grup...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Datele sunt importate, vă rugăm să aşteptaţi...'
$messages['importformaterror'] = 'Importul a eșuat! Fișierul încărcat nu este un fișier valid pentru import de date.';
$messages['importconfirm'] = '<b>$inserted contacte au fost importate cu succes, $skipped intrări au fost ignorate deoarece ele există deja: $names</b>';
$messages['importconfirmskipped'] = '<b>Am sărit peste $skipped înregistrări</b>';
-$messages['importmessagesuccess'] = 'Am importat cu succes $nr mesaje.';
-$messages['importmessageerror'] = 'Importarea a esuat. Fisierul incarca nu este un mesaj valid pentru email.';
$messages['opnotpermitted'] = 'Operaţiunea nu este permisă!';
$messages['nofromaddress'] = 'Nu există o adresă de e-mail în identitatea selectată';
$messages['editorwarning'] = 'Trecerea în mod text a editorului va cauza pierderea formatării textului. Doriţi să continuaţi?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'Eroare SMTP: $msg';
$messages['emailformaterror'] = 'Adresă de e-mail incorectă: $email';
$messages['toomanyrecipients'] = 'Prea mulţi destinatari. Reduceţi numărul de destinatari la $max.';
$messages['maxgroupmembersreached'] = 'Numărul de membri ai grupului depăşeşte maximul de $max.';
+$messages['internalerror'] = 'A avut loc o eroare internă. Încearcă mai târziu.';
$messages['contactdelerror'] = 'Nu am putut ÅŸterge contact(ele).';
$messages['contactdeleted'] = 'Contact(ele) au fost ÅŸterse cu succes.';
$messages['contactrestoreerror'] = 'Nu am putut restaura contact(ele) ÅŸterse.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Nu pot crea/muta dosarul în dosarul părinte
$messages['messagetoobig'] = 'Partea de mesaj este prea mare pentru a o procesa.';
$messages['attachmentvalidationerror'] = 'ATENȚIE! Acest atașament este suspect, fiindcă tipul lui nu coincide cu tipul declarat în mesaj. Dacă nu aveți încredere în expeditor, nu vă recomandăm să deschideți fișierul, fiindcă poate avea conținut malițios. <br/><br/><em>Așteptat: $expected; găsit: $detected</em>';
$messages['noscriptwarning'] = 'Atenție: Serviciul de webmail necesită Javascript! Pentru a-l utiliza vă rugăm activați Javascript în setările browserului.';
+
?>
diff --git a/program/localization/ru_RU/labels.inc b/program/localization/ru_RU/labels.inc
index 109793666..8a136aa77 100644
--- a/program/localization/ru_RU/labels.inc
+++ b/program/localization/ru_RU/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Добро пожаловать в $product!';
$labels['username'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ';
$labels['password'] = 'Пароль';
$labels['server'] = 'Сервер';
$labels['login'] = 'Войти';
+
+// taskbar
$labels['logout'] = 'Выход';
$labels['mail'] = 'Почта';
$labels['settings'] = 'ÐаÑтройки';
$labels['addressbook'] = 'Контакты';
+
+// mailbox names
$labels['inbox'] = 'ВходÑщие';
$labels['drafts'] = 'Черновики';
$labels['sent'] = 'Отправленные';
$labels['trash'] = 'Корзина';
$labels['junk'] = 'СПÐÐœ';
-$labels['show_real_foldernames'] = 'Показывать наÑтоÑщие Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñпециальных папок';
+
+// message listing
$labels['subject'] = 'Тема';
$labels['from'] = 'От';
$labels['sender'] = 'Отправитель';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Приоритет';
$labels['organization'] = 'ОрганизациÑ';
$labels['readstatus'] = 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ';
$labels['listoptions'] = 'ÐаÑтройки ÑпиÑка...';
+
$labels['mailboxlist'] = 'Папки';
$labels['messagesfromto'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ $from по $to из $count';
$labels['threadsfromto'] = 'ОбÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ñ $from по $to из $count';
$labels['messagenrof'] = 'Сообщение $nr из $count';
$labels['fromtoshort'] = '$from – $to из $count';
+
$labels['copy'] = 'Копировать';
$labels['move'] = 'ПеремеÑтить';
$labels['moveto'] = 'ПеремеÑтить в...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Загрузить';
$labels['open'] = 'Открыть';
$labels['showattachment'] = 'Показать';
$labels['showanyway'] = 'Ð’Ñе равно показать';
+
$labels['filename'] = 'Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°';
$labels['filesize'] = 'Размер файла';
+
$labels['addtoaddressbook'] = 'Добавить в контакты';
+
+// weekdays short
$labels['sun'] = 'Ð’Ñ';
$labels['mon'] = 'Пн';
$labels['tue'] = 'Ð’Ñ‚';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Ср';
$labels['thu'] = 'Чт';
$labels['fri'] = 'Пт';
$labels['sat'] = 'Сб';
+
+// weekdays long
$labels['sunday'] = 'ВоÑкреÑенье';
$labels['monday'] = 'Понедельник';
$labels['tuesday'] = 'Вторник';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Среда';
$labels['thursday'] = 'Четверг';
$labels['friday'] = 'ПÑтница';
$labels['saturday'] = 'Суббота';
+
+// months short
$labels['jan'] = 'Янв';
$labels['feb'] = 'Фев';
$labels['mar'] = 'Мар';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Сен';
$labels['oct'] = 'Окт';
$labels['nov'] = 'ÐоÑ';
$labels['dec'] = 'Дек';
+
+// months long
$labels['longjan'] = 'Январь';
$labels['longfeb'] = 'Февраль';
$labels['longmar'] = 'Март';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'СентÑбрь';
$labels['longoct'] = 'ОктÑбрь';
$labels['longnov'] = 'ÐоÑбрь';
$labels['longdec'] = 'Декабрь';
+
$labels['today'] = 'СегоднÑ';
+
+// toolbar buttons
$labels['refresh'] = 'Обновить';
$labels['checkmail'] = 'ДоÑтавить почту';
$labels['compose'] = 'ÐапиÑать Ñообщение';
@@ -121,7 +145,7 @@ $labels['lastmessage'] = 'Показать поÑледнее ÑообщеÐ
$labels['backtolist'] = 'К ÑпиÑку Ñообщений';
$labels['viewsource'] = 'ИÑходный текÑÑ‚';
$labels['mark'] = 'Пометить';
-$labels['markmessages'] = 'Пометить ÑообщениÑ';
+$labels['markmessages'] = 'Пометить Ñообщение';
$labels['markread'] = 'Как прочитанное';
$labels['markunread'] = 'Как непрочитанное';
$labels['markflagged'] = 'УÑтановить флаг';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Дополнительные дейÑтвиÑ...'
$labels['more'] = 'Еще';
$labels['back'] = 'Ðазад';
$labels['options'] = 'Параметры';
+
$labels['select'] = 'Выбрать';
$labels['all'] = 'Ð’Ñе';
$labels['none'] = 'ОтÑутÑтвует';
@@ -138,9 +163,9 @@ $labels['unread'] = 'Ðепрочитанные';
$labels['flagged'] = 'Помеченные';
$labels['unanswered'] = 'Ðеотвеченные';
$labels['withattachment'] = 'С вложением';
-$labels['deleted'] = 'Удаленные';
-$labels['undeleted'] = 'Ðе удаленные';
-$labels['invert'] = 'Инвертировать';
+$labels['deleted'] = 'Удаленное';
+$labels['undeleted'] = 'Ðе удалено';
+$labels['invert'] = 'Инвертное';
$labels['filter'] = 'Фильтр';
$labels['list'] = 'СпиÑок';
$labels['threads'] = 'ОбÑуждениÑ';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Развернуть вÑе';
$labels['expand-unread'] = 'Развернуть непрочитанные';
$labels['collapse-all'] = 'Свернуть вÑе';
$labels['threaded'] = 'ОбÑуждениÑ';
+
$labels['autoexpand_threads'] = 'Развернуть обÑуждениÑ';
$labels['do_expand'] = 'вÑе обÑуждениÑ';
$labels['expand_only_unread'] = 'только Ñ Ð½ÐµÐ¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ‹Ð¼Ð¸ ÑообщениÑми';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Колонки';
$labels['listsorting'] = 'Сортировать по';
$labels['listorder'] = 'ПорÑдок Ñортировки';
$labels['listmode'] = 'Режим проÑмотра';
+
$labels['folderactions'] = 'Операции над папкой...';
$labels['compact'] = 'Сжать';
$labels['empty'] = 'ОпуÑтошить';
-$labels['importmessages'] = 'Импорт Ñообщений';
+
$labels['quota'] = 'Квота';
$labels['unknown'] = 'неизвеÑтно';
$labels['unlimited'] = 'без ограничений';
+
$labels['quicksearch'] = 'БыÑтрый поиÑк';
$labels['resetsearch'] = 'СброÑ';
$labels['searchmod'] = 'Варианты поиÑка';
$labels['msgtext'] = 'Ð’ÑÑ‘ Ñообщение';
$labels['body'] = 'Тело пиÑьма';
-$labels['type'] = 'Тип';
-$labels['namex'] = 'ИмÑ';
+
$labels['openinextwin'] = 'Открыть в новом окне';
$labels['emlsave'] = 'Сохранить (.eml)';
$labels['changeformattext'] = 'Показать в формате обычного текÑта';
$labels['changeformathtml'] = 'Показать в HTML формате';
+
+// message compose
$labels['editasnew'] = 'Редактировать как новое';
$labels['send'] = 'Отправить';
$labels['sendmessage'] = 'Отправить ÑейчаÑ';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð°';
$labels['dsn'] = 'Уведомление о ÑоÑтоÑнии доÑтавки';
$labels['mailreplyintro'] = '$sender пиÑал $date:';
$labels['originalmessage'] = 'ИÑходное Ñообщение';
+
$labels['editidents'] = 'Изменить данные';
$labels['spellcheck'] = 'ОрфографиÑ';
$labels['checkspelling'] = 'Проверить орфографию';
$labels['resumeediting'] = 'Продолжить редактирование';
$labels['revertto'] = 'Отменить правки';
+
$labels['attach'] = 'Вложить';
$labels['attachments'] = 'ВложениÑ';
$labels['upload'] = 'Загрузить';
$labels['uploadprogress'] = '$percent ($current из $total)';
$labels['close'] = 'Закрыть';
$labels['messageoptions'] = 'ÐаÑтройки Ñообщений...';
+
$labels['low'] = 'Ðизкий';
-$labels['lowest'] = 'Ðизший';
+$labels['lowest'] = 'Ðижайш.';
$labels['normal'] = 'Ðорм.';
$labels['high'] = 'Ð’Ñ‹Ñокий';
$labels['highest'] = 'Ð’Ñ‹Ñоч.';
+
$labels['nosubject'] = '(без темы)';
$labels['showimages'] = 'Показать изображениÑ';
$labels['alwaysshow'] = 'Ð’Ñегда показывать изображениÑв пиÑьмах от $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Это черновик.';
$labels['andnmore'] = 'ещё $nr...';
$labels['togglemoreheaders'] = 'Загрузить ещё заголовки Ñообщений';
$labels['togglefullheaders'] = 'Показать оригинальные заголовки ÑообщениÑ';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ТекÑÑ‚';
$labels['savesentmessagein'] = 'Сохранить в';
$labels['dontsave'] = 'не ÑохранÑÑ‚ÑŒ';
$labels['maxuploadsize'] = 'МакÑимальный размер файла $size';
+
$labels['addcc'] = 'КопиÑ';
$labels['addbcc'] = 'Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ';
$labels['addreplyto'] = 'Кому ответить';
$labels['addfollowupto'] = 'Добавить Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Отправитель Ñтого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñил уведомление о прочтении. Отправить уведомление?';
$labels['receiptread'] = 'Уведомление о прочтении';
$labels['yourmessage'] = 'Это уведомление о прочтении вашего ÑообщениÑ';
$labels['receiptnote'] = 'Это уведомление означает только, что Ñообщение было открыто получателем, и не гарантирует того, что оно было прочитано и (или) понÑто.';
+
+// address boook
$labels['name'] = 'Отображаемое имÑ';
$labels['firstname'] = 'ИмÑ';
$labels['surname'] = 'ФамилиÑ';
@@ -262,6 +301,7 @@ $labels['search'] = 'ПоиÑк';
$labels['advsearch'] = 'РаÑширенный поиÑк';
$labels['advanced'] = 'Дополнительно';
$labels['other'] = 'Другое';
+
$labels['typehome'] = 'Дом';
$labels['typework'] = 'Работа';
$labels['typeother'] = 'Другое';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Помощник';
$labels['typehomepage'] = 'ДомашнÑÑ Ñтраница';
$labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профиль';
+
$labels['addfield'] = 'Добавить поле...';
-$labels['addcontact'] = 'Добавить новый контакт';
+$labels['addcontact'] = 'Добавить выбранные контакты в ÑпиÑок контактов';
$labels['editcontact'] = 'Редактировать контакт';
$labels['contacts'] = 'Контакты';
$labels['contactproperties'] = 'СвойÑтва контакта';
$labels['personalinfo'] = 'Ð›Ð¸Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ';
+
$labels['edit'] = 'Правка';
$labels['cancel'] = 'Отмена';
$labels['save'] = 'Сохранить';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Переименовать';
$labels['addphoto'] = 'Добавить';
$labels['replacephoto'] = 'Заменить';
$labels['uploadphoto'] = 'Загрузить фотографию';
+
$labels['newcontact'] = 'Создать новый контакт';
$labels['deletecontact'] = 'Удалить выбранные контакты';
$labels['composeto'] = 'Создать Ñообщение Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… контактов';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Создать группу контактов';
$labels['grouprename'] = 'Переименовать группу';
$labels['groupdelete'] = 'Удалить группу';
$labels['groupremoveselected'] = 'Удалить выбранные контакты из группы';
-$labels['previouspage'] = 'Показать предыдущую Ñтраницу';
+
+$labels['previouspage'] = 'Показать предыдущий';
$labels['firstpage'] = 'Показать первую Ñтраницу';
$labels['nextpage'] = 'Показать Ñледующую Ñтраницу';
$labels['lastpage'] = 'Показать поÑледнюю Ñтраницу';
+
$labels['group'] = 'Группа';
$labels['groups'] = 'Группы';
-$labels['listgroup'] = 'СпиÑок членов группы';
$labels['personaladrbook'] = 'ПерÑональные адреÑа';
+
$labels['searchsave'] = 'Сохранить запроÑ';
$labels['searchdelete'] = 'Удалить запроÑ';
+
$labels['import'] = 'Импортировать';
$labels['importcontacts'] = 'Импортировать контакты';
$labels['importfromfile'] = 'Импортировать из файла:';
-$labels['importtarget'] = 'Добавить контакты в';
+$labels['importtarget'] = 'Добавить новые контакты в адреÑную книгу:';
$labels['importreplace'] = 'Заменить вÑÑŽ адреÑную книгу';
-$labels['importgroups'] = 'РаÑпределение по группам при импорте.';
-$labels['importgroupsall'] = 'Ð’Ñе (Ñоздать группы при необходимоÑти)';
-$labels['importgroupsexisting'] = 'Только Ð´Ð»Ñ ÑущеÑтвующих групп';
$labels['importdesc'] = 'Ð’Ñ‹ можете загрузить контакты из ÑущеÑтвующей адреÑной книги. <br/>Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ñ‹ поддерживаем импорт адреÑов в формате визитной карточки <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> или CSV (данные разделённые запÑтой).';
$labels['done'] = 'Завершено';
+
+// settings
$labels['settingsfor'] = 'ÐаÑтройки длÑ';
$labels['about'] = 'О программе';
$labels['preferences'] = 'ÐаÑтройки';
$labels['userpreferences'] = 'ÐаÑтройки пользователÑ';
$labels['editpreferences'] = 'Редактировать наÑтройки пользователÑ';
+
$labels['identities'] = 'Профили';
$labels['manageidentities'] = 'Управление профилÑми';
$labels['newidentity'] = 'Ðовый профиль';
+
$labels['newitem'] = 'Ðовый';
$labels['edititem'] = 'Правка';
+
$labels['preferhtml'] = 'Предпочитать HTML';
$labels['defaultcharset'] = 'Ðабор Ñимволов по-умолчанию';
$labels['htmlmessage'] = 'Сообщение HTML';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'ПропуÑкать Ñлова Ñ Ñ†Ð¸Ñ„Ñ€Ð°
$labels['spellcheckignorecaps'] = 'ПропуÑкать Ñлова из пропиÑных букв';
$labels['addtodict'] = 'Добавить в Ñловарь';
$labels['mailtoprotohandler'] = 'ЗарегиÑтрировать обработчик Ð´Ð»Ñ ÑÑылок mailto:';
-$labels['standardwindows'] = 'Обрабатывать вÑплывающие окна как обычные';
$labels['forwardmode'] = 'ПереÑылка Ñообщений';
$labels['inline'] = 'в текÑте';
$labels['asattachment'] = 'как вложение';
+
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Тип каталога';
$labels['personalfolder'] = 'Приватный каталог';
$labels['otherfolder'] = 'Каталог другого пользователÑ';
$labels['sharedfolder'] = 'СовмеÑтный каталог';
+
$labels['sortby'] = 'Сортировать по';
$labels['sortasc'] = 'ВозраÑтанию';
$labels['sortdesc'] = 'Убыванию';
$labels['undo'] = 'Отмена';
+
$labels['installedplugins'] = 'УÑтановленные дополнениÑ';
$labels['plugin'] = 'Дополнение';
$labels['version'] = 'ВерÑиÑ';
$labels['source'] = 'ИÑточник';
$labels['license'] = 'ЛицензиÑ';
$labels['support'] = 'Поддержка';
+
+// units
$labels['B'] = 'Б';
$labels['KB'] = 'КБ';
$labels['MB'] = 'МБ';
$labels['GB'] = 'ГБ';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'ÐнглийÑкий';
$labels['westerneuropean'] = 'ЗападноевропейÑкий';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'ВьетнамÑкий';
$labels['japanese'] = 'ЯпонÑкий';
$labels['korean'] = 'КорейÑкий';
$labels['chinese'] = 'КитайÑкий';
+
?>
diff --git a/program/localization/ru_RU/messages.inc b/program/localization/ru_RU/messages.inc
index 2509ba49b..f9c8c433a 100644
--- a/program/localization/ru_RU/messages.inc
+++ b/program/localization/ru_RU/messages.inc
@@ -15,24 +15,26 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Произошла ошибка!';
-$messages['loginfailed'] = 'ÐÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° входа.';
-$messages['cookiesdisabled'] = 'Ваш браузер не принимает cookie.';
-$messages['sessionerror'] = 'Ваша ÑеÑÑÐ¸Ñ ÑƒÑтарела.';
+$messages['loginfailed'] = 'ÐÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° входа';
+$messages['cookiesdisabled'] = 'Ваш броузер не принимает cookie';
+$messages['sessionerror'] = 'Ваша ÑеÑÑÐ¸Ñ ÑƒÑтарела';
$messages['storageerror'] = 'Ðеудачное Ñоединение Ñ IMAP Ñервером';
$messages['servererror'] = 'Ошибка Ñервера!';
$messages['servererrormsg'] = 'Ошибка Ñервера: $msg';
$messages['dberror'] = 'Ошибка базы данных!';
$messages['requesttimedout'] = 'Превышено Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа';
-$messages['errorreadonly'] = 'Ðевозможно выполнить операцию. Папка доÑтупна только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ.';
-$messages['errornoperm'] = 'Ðевозможно выполнить операцию. ДоÑтуп запрещён.';
+$messages['errorreadonly'] = 'Ðевозможно выполнить операцию. Папка доÑтупна только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ';
+$messages['errornoperm'] = 'Ðевозможно выполнить операцию. ДоÑтуп запрещён';
$messages['erroroverquota'] = 'Ðевозможно выполнить операцию. Ðет Ñвободного меÑта на диÑке.';
$messages['erroroverquotadelete'] = 'Ðет Ñвободного меÑта на диÑке. ИÑпользуйте SHIFT+DEL Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑообщениÑ.';
$messages['invalidrequest'] = 'Ðеверный запроÑ! Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ Ñохранена.';
$messages['invalidhost'] = 'Ðеверное Ð¸Ð¼Ñ Ñервера.';
$messages['nomessagesfound'] = 'Сообщений не найдено';
$messages['loggedout'] = 'Ваша ÑеÑÑÐ¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°. Ð’Ñего доброго!';
-$messages['mailboxempty'] = 'Почтовый Ñщик пуÑÑ‚.';
+$messages['mailboxempty'] = 'Почтовый Ñщик пуÑÑ‚';
$messages['refreshing'] = 'Обновление...';
$messages['loading'] = 'Загрузка...';
$messages['uploading'] = 'Файл загружаетÑÑ…';
@@ -40,30 +42,28 @@ $messages['uploadingmany'] = 'Загрузка файлов...';
$messages['loadingdata'] = 'Загрузка данных...';
$messages['checkingmail'] = 'Проверка новых Ñообщений...';
$messages['sendingmessage'] = 'Отправка ÑообщениÑ...';
-$messages['messagesent'] = 'Сообщение отправлено.';
+$messages['messagesent'] = 'Сообщение отправлено';
$messages['savingmessage'] = 'Сохранение ÑообщениÑ...';
-$messages['messagesaved'] = 'Сохранено в Черновиках.';
-$messages['successfullysaved'] = 'Сохранено.';
-$messages['savingresponse'] = 'Сохранение текÑта ответа...';
-$messages['deleteresponseconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить Ñтот текÑÑ‚ ответа?';
-$messages['addedsuccessfully'] = 'Контакт добавлен в адреÑную книгу.';
-$messages['contactexists'] = 'Контакт Ñ Ñтим адреÑом e-mail уже ÑущеÑтвует.';
+$messages['messagesaved'] = 'Сохранено в Черновиках';
+$messages['successfullysaved'] = 'Сохранено';
+$messages['addedsuccessfully'] = 'Контакт добавлен в ÑпиÑок контактов';
+$messages['contactexists'] = 'Контакт Ñ Ñтим адреÑом e-mail уже ÑущеÑтвует';
$messages['contactnameexists'] = 'Контакт Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует.';
$messages['blockedimages'] = 'Ð’ целÑÑ… безопаÑноÑти загрузка изображений заблокирована.';
$messages['encryptedmessage'] = 'Сообщение зашифровано и не может быть показано. ОбратитеÑÑŒ к админиÑтратору Ñервера.';
-$messages['nocontactsfound'] = 'Контакты не найдены.';
-$messages['contactnotfound'] = 'Требуемый контакт не найден.';
+$messages['nocontactsfound'] = 'Контакты не найдены';
+$messages['contactnotfound'] = 'Требуемый контакт не найден';
$messages['contactsearchonly'] = 'Введите уÑÐ»Ð¾Ð²Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка контактов';
-$messages['sendingfailed'] = 'Ðе удалоÑÑŒ отправить Ñообщение.';
-$messages['senttooquickly'] = 'Ð’Ñ‹ должны подождать $sec Ñек. Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ ÑообщениÑ.';
-$messages['errorsavingsent'] = 'Произошла ошибка при Ñохранении отправленного ÑообщениÑ.';
-$messages['errorsaving'] = 'Ð’ процеÑÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾ÑˆÐ»Ð° ошибка.';
-$messages['errormoving'] = 'Ðе удалоÑÑŒ перемеÑтить Ñообщение(Ñ).';
-$messages['errorcopying'] = 'Ðе удалоÑÑŒ Ñкопировать Ñообщение(Ñ).';
-$messages['errordeleting'] = 'Ðе удалоÑÑŒ удалить Ñообщение(Ñ).';
-$messages['errormarking'] = 'Ðе удалоÑÑŒ пометить Ñообщение(Ñ).';
+$messages['sendingfailed'] = 'Ðе удалоÑÑŒ отправить Ñообщение';
+$messages['senttooquickly'] = 'Ð’Ñ‹ должны подождать $sec Ñек. Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ ÑообщениÑ';
+$messages['errorsavingsent'] = 'Произошла ошибка при Ñохранении отправленного ÑообщениÑ';
+$messages['errorsaving'] = 'Ð’ процеÑÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾ÑˆÐ»Ð° ошибка';
+$messages['errormoving'] = 'Ðе удалоÑÑŒ перемеÑтить Ñообщение';
+$messages['errorcopying'] = 'Ðе удалоÑÑŒ Ñкопировать Ñообщение';
+$messages['errordeleting'] = 'Ðе удалоÑÑŒ удалить Ñообщение';
+$messages['errormarking'] = 'Ðевозможно пометить Ñообщение';
$messages['deletecontactconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить выделенные контакты?';
-$messages['deletegroupconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить выделенную группу?';
+$messages['deletegroupconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить группу?';
$messages['deletemessagesconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить выбранные ÑообщениÑ?';
$messages['deletefolderconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить Ñту папку?';
$messages['purgefolderconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить вÑе ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² Ñтой папке?';
@@ -73,103 +73,99 @@ $messages['folderdeleting'] = 'Удаление папки...';
$messages['foldermoving'] = 'Перемещение папки...';
$messages['foldersubscribing'] = 'ПодпиÑать папку...';
$messages['folderunsubscribing'] = 'ОтпиÑать папку...';
-$messages['formincomplete'] = 'Заполнены не вÑе Ð¿Ð¾Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹.';
-$messages['noemailwarning'] = 'ПожалуйÑта, введите корректный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.';
-$messages['nonamewarning'] = 'ПожалуйÑта, введите имÑ.';
-$messages['nopagesizewarning'] = 'ПожалуйÑта, введите размер Ñтраницы.';
-$messages['nosenderwarning'] = 'ПожалуйÑта, введите Ð°Ð´Ñ€ÐµÑ Ñлектронной почты отправителÑ.';
-$messages['norecipientwarning'] = 'ПожалуйÑта, введите Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одного получателÑ.';
+$messages['formincomplete'] = 'Заполнены не вÑе полÑ';
+$messages['noemailwarning'] = 'ПожалуйÑта, введите корректный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты';
+$messages['nonamewarning'] = 'ПожалуйÑта, введите имÑ';
+$messages['nopagesizewarning'] = 'ПожалуйÑта, введите размер Ñтраницы';
+$messages['nosenderwarning'] = 'ПожалуйÑта, введите Ð°Ð´Ñ€ÐµÑ Ñлектронной почты отправителÑ';
+$messages['norecipientwarning'] = 'ПожалуйÑта, введите Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ';
$messages['nosubjectwarning'] = 'Поле Тема не заполнено. Хотите заполнить его ÑейчаÑ?';
$messages['nobodywarning'] = 'Отправить Ñообщение без текÑта?';
$messages['notsentwarning'] = 'Сообщение не было отправлено. Ð’Ñ‹ хотите отказатьÑÑ Ð¾Ñ‚ отправки?';
-$messages['noldapserver'] = 'ПожалуйÑта, выберите LDAP Ñервер Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка.';
+$messages['noldapserver'] = 'ПожалуйÑта, выберите LDAP Ñервер Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка';
$messages['nosearchname'] = 'ПожалуйÑта, введите Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ð°Ð´Ñ€ÐµÑ E-Mail';
$messages['notuploadedwarning'] = 'Ð’Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ¶ÐµÐ½Ñ‹ не полноÑтью. Подождите или отмените загрузку.';
$messages['searchsuccessful'] = 'Ðайденных Ñообщений - $nr';
$messages['contactsearchsuccessful'] = '$nr контактов найдено.';
-$messages['searchnomatch'] = 'Ðичего не найдено.';
+$messages['searchnomatch'] = 'Сообщений не найдено';
$messages['searching'] = 'ПоиÑк...';
$messages['checking'] = 'Проверка...';
-$messages['nospellerrors'] = 'ОрфографичеÑких ошибок не найдено.';
-$messages['folderdeleted'] = 'Папка удалена.';
+$messages['nospellerrors'] = 'ОрфографичеÑких ошибок не найдено';
+$messages['folderdeleted'] = 'Папка удалена';
$messages['foldersubscribed'] = 'Папка подпиÑана';
$messages['folderunsubscribed'] = 'Папка отпиÑана';
-$messages['folderpurged'] = 'Папка очищена.';
-$messages['folderexpunged'] = 'Папка Ñжата.';
-$messages['deletedsuccessfully'] = 'Удалено.';
+$messages['folderpurged'] = 'Папка удалена';
+$messages['folderexpunged'] = 'Папка очищена';
+$messages['deletedsuccessfully'] = 'Удалено';
$messages['converting'] = 'Удаление Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑообщениÑ...';
-$messages['messageopenerror'] = 'Ðевозможно загрузить Ñообщение Ñ Ñервера.';
-$messages['fileuploaderror'] = 'Ошибка загрузки файла.';
-$messages['filesizeerror'] = 'Загруженный файл больше макÑимального размера в $size.';
-$messages['copysuccess'] = 'УÑпешно Ñкопировано $nr контактов.';
-$messages['movesuccess'] = 'УÑпешно перемещено $nr контактов.';
-$messages['copyerror'] = 'Контакты не Ñкопированы.';
-$messages['moveerror'] = 'Контакты не перемещены.';
-$messages['sourceisreadonly'] = 'Данный иÑточник адреÑов только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ.';
-$messages['errorsavingcontact'] = 'Ðевозможно Ñохранить Ð°Ð´Ñ€ÐµÑ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð°.';
-$messages['movingmessage'] = 'Перемещение ÑообщениÑ(й)…';
-$messages['copyingmessage'] = 'Копирование ÑообщениÑ(й)...';
+$messages['messageopenerror'] = 'Ðевозможно загрузить Ñообщение Ñ Ñервера';
+$messages['fileuploaderror'] = 'Ðевозможно загрузить файл';
+$messages['filesizeerror'] = 'Загруженный файл больше макÑимального размера в $size';
+$messages['copysuccess'] = 'Скопировано $nr адреÑов';
+$messages['copyerror'] = 'Ðевозможно Ñкопировать адреÑа';
+$messages['sourceisreadonly'] = 'Данный иÑточник адреÑов только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ';
+$messages['errorsavingcontact'] = 'Ðевозможно Ñохранить Ð°Ð´Ñ€ÐµÑ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð°';
+$messages['movingmessage'] = 'Перемещение Ñообщений…';
+$messages['copyingmessage'] = 'Копирование Ñообщений...';
$messages['copyingcontact'] = 'Копирование контакта(ов)...';
-$messages['movingcontact'] = 'Перемещение контакта(ов)...';
-$messages['deletingmessage'] = 'Удаление ÑообщениÑ(й)...';
-$messages['markingmessage'] = 'Выделение ÑообщениÑ(й)...';
+$messages['deletingmessage'] = 'Удаление Ñообщений...';
+$messages['markingmessage'] = 'Выделение Ñообщений...';
$messages['addingmember'] = 'Добавление контакта(ов) в группу...';
$messages['removingmember'] = 'Удаление контакта(ов) из группы...';
-$messages['receiptsent'] = 'Уведомление о прочтении отправлено.';
-$messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено.';
+$messages['receiptsent'] = 'Уведомление о прочтении отправлено';
+$messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено';
$messages['deleteidentityconfirm'] = 'Ð’Ñ‹ на Ñамом деле хотите удалить Ñту ÑущноÑÑ‚ÑŒ?';
-$messages['nodeletelastidentity'] = 'Ð’Ñ‹ не можете удалить Ñтот профиль, он у Ð²Ð°Ñ Ð¿Ð¾Ñледний.';
-$messages['forbiddencharacter'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸ Ñодержит недопуÑтимые Ñимволы.';
-$messages['selectimportfile'] = 'Выберите файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸.';
-$messages['addresswriterror'] = 'Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð°Ð´Ñ€ÐµÑÐ½Ð°Ñ ÐºÐ½Ð¸Ð³Ð° недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи.';
-$messages['contactaddedtogroup'] = 'Контакты добавлены в Ñту группу.';
-$messages['contactremovedfromgroup'] = 'Контакты удалены из Ñтой группы.';
+$messages['nodeletelastidentity'] = 'Ð’Ñ‹ не можете удалить Ñтот профиль, он у Ð²Ð°Ñ Ð¿Ð¾Ñледний';
+$messages['forbiddencharacter'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸ Ñодержит недопуÑтимые Ñимволы';
+$messages['selectimportfile'] = 'Выберите файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸';
+$messages['addresswriterror'] = 'Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð°Ð´Ñ€ÐµÑÐ½Ð°Ñ ÐºÐ½Ð¸Ð³Ð° недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи';
+$messages['contactaddedtogroup'] = 'Контакты добавлены в группу';
+$messages['contactremovedfromgroup'] = 'Контакты удалены из группы';
$messages['nogroupassignmentschanged'] = 'РаÑпределение по группам не изменено.';
$messages['importwait'] = 'Импортирование, пожалуйÑта, подождите...';
$messages['importformaterror'] = 'Ошибка импорта! Загруженный файл имеет неизвеÑтный формат данных.';
-$messages['importconfirm'] = '<b>УÑпешно импортировано $inserted контактов</b>';
-$messages['importconfirmskipped'] = '<b>Пропущено $skipped ÑущеÑтвующих запиÑей</b>';
-$messages['importmessagesuccess'] = '$nr Ñообщений уÑпешно импортировано.';
-$messages['importmessageerror'] = 'Сбой импорта! Загруженный файл не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ почтового Ñщика';
+$messages['importconfirm'] = '<b>УÑпешно импортировано $inserted контакт(ов), пропущено $skipped ÑущеÑтвующих</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Пропущенные $skipped ÑущеÑтвующие запиÑи</b>';
$messages['opnotpermitted'] = 'ДейÑтвие запрещено!';
-$messages['nofromaddress'] = 'Ð’ выбранном профиле не хватает адреÑа Ñлектронной почты.';
+$messages['nofromaddress'] = 'Ð’ выбранном профиле не хватает адреÑа Ñлектронной почты';
$messages['editorwarning'] = 'При переключении в редактор проÑтого текÑта вÑе форматирование будет потерÑно. Продолжить?';
-$messages['httpreceivedencrypterror'] = 'Ðа Ñервере возникла Ð½ÐµÐ¸Ð·Ð±ÐµÐ¶Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Срочно ÑвÑжитеÑÑŒ Ñ Ð’Ð°ÑˆÐ¸Ð¼ админиÑтратором. <b>Ваше Ñообщение не может быть отправлено.</b>';
-$messages['smtpconnerror'] = 'SMTP ошибка ($code): Сбой ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером.';
-$messages['smtpautherror'] = 'SMTP ошибка ($code): Ошибка авторизации.';
-$messages['smtpfromerror'] = 'SMTP ошибка ($code): Ðевозможно уÑтановить Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ "$from" ($msg)';
-$messages['smtptoerror'] = 'SMTP ошибка ($code): Ðевозможно добавить Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ "$to" ($msg)';
-$messages['smtprecipientserror'] = 'SMTP ошибка: Ðевозможно обработать ÑпиÑок получателей.';
-$messages['smtperror'] = 'SMTP ошибка: $msg';
+$messages['httpreceivedencrypterror'] = 'Ðа Ñервере возникла Ð½ÐµÐ¸Ð·Ð±ÐµÐ¶Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Срочно ÑвÑжитеÑÑŒ Ñ Ð’Ð°ÑˆÐ¸Ð¼ админиÑтратором. <b>Ваше Ñообщение может быть не отправлено.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Соединение Ñ Ñервером Ñброшено';
+$messages['smtpautherror'] = 'SMTP Error ($code): Ошибка авторизации';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Ðевозможно уÑтановить Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ "$from" ($msg)';
+$messages['smtptoerror'] = 'SMTP Error ($code): Ðевозможно добавить Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ "$to" ($msg)';
+$messages['smtprecipientserror'] = 'SMTP Error: Ðевозможно обработать ÑпиÑок получателей';
+$messages['smtperror'] = 'SMTP Error ($code): $msg';
$messages['emailformaterror'] = 'Ðеверный адреÑ: $email';
-$messages['toomanyrecipients'] = 'Слишком много получателей. Уменьшите их количеÑтво до $max.';
-$messages['maxgroupmembersreached'] = 'Размер группы больше макÑимально разрешенного - $max.';
-$messages['internalerror'] = 'Произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Попробуйте ещё раз.';
-$messages['contactdelerror'] = 'Ðе возможно удалить контакт(Ñ‹).';
-$messages['contactdeleted'] = 'Контакт(Ñ‹) уÑпешно удален(Ñ‹).';
+$messages['toomanyrecipients'] = 'Слишком много получателей, уменьшите их количеÑтво до $max.';
+$messages['maxgroupmembersreached'] = 'Размер группы больше макÑимально разрешенного - $max';
+$messages['internalerror'] = 'Произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Попробуйте ещё раз';
+$messages['contactdelerror'] = 'Ðе могу удалить контакт(Ñ‹)';
+$messages['contactdeleted'] = 'Контакт(Ñ‹) уÑпешно удален(Ñ‹)';
$messages['contactrestoreerror'] = 'Ðе удалоÑÑŒ воÑÑтановить удалённый(е) контакт(Ñ‹).';
-$messages['contactrestored'] = 'Контакт(Ñ‹) уÑпешно воÑÑтановлен(Ñ‹).';
-$messages['groupdeleted'] = 'Группа уÑпешно удалена.';
-$messages['grouprenamed'] = 'Группа уÑпешно переименована.';
-$messages['groupcreated'] = 'Группа уÑпешно Ñоздана.';
+$messages['contactrestored'] = 'Контакт(Ñ‹) уÑпешно воÑÑтановлены.';
+$messages['groupdeleted'] = 'Группа уÑпешно удалена';
+$messages['grouprenamed'] = 'Группа уÑпешно переименована';
+$messages['groupcreated'] = 'Группа уÑпешно Ñоздана';
$messages['savedsearchdeleted'] = 'Сохранённый Ð·Ð°Ð¿Ñ€Ð¾Ñ ÑƒÑпешно удалён.';
$messages['savedsearchdeleteerror'] = 'Ðе удалоÑÑŒ удалить Ñохранённый запроÑ.';
$messages['savedsearchcreated'] = 'Сохранённый Ð·Ð°Ð¿Ñ€Ð¾Ñ ÑƒÑпешно Ñоздан.';
$messages['savedsearchcreateerror'] = 'Ðе удалоÑÑŒ Ñоздать Ñохранённый запроÑ.';
-$messages['messagedeleted'] = 'Сообщение(Ñ) уÑпешно удалено(Ñ‹).';
-$messages['messagemoved'] = 'Сообщение(Ñ) уÑпешно перемещено(Ñ‹).';
-$messages['messagecopied'] = 'Сообщение(Ñ) уÑпешно Ñкопировано(Ñ‹).';
-$messages['messagemarked'] = 'Сообщение(Ñ) уÑпешно выделено(Ñ‹).';
-$messages['autocompletechars'] = 'Введите, как минимум, $min Ñимволов Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.';
+$messages['messagedeleted'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно удалены';
+$messages['messagemoved'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно перемещены';
+$messages['messagecopied'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно Ñкопированы';
+$messages['messagemarked'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно выделены';
+$messages['autocompletechars'] = 'Введите, как минимум, $min Ñимволов Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ';
$messages['autocompletemore'] = 'ПоиÑк возвратил Ñлишком много результатов. ПожалуйÑта, уточните.';
-$messages['namecannotbeempty'] = 'Ð˜Ð¼Ñ Ð½Ðµ может быть пуÑтым.';
-$messages['nametoolong'] = 'Слишком длинное имÑ.';
-$messages['folderupdated'] = 'Папка обновлена.';
-$messages['foldercreated'] = 'Папка Ñоздана.';
-$messages['invalidimageformat'] = 'Ðеверный формат изображениÑ.';
-$messages['mispellingsfound'] = 'Ð’ Ñообщении обнаружены орфографичеÑкие ошибки.';
+$messages['namecannotbeempty'] = 'Ð˜Ð¼Ñ Ð½Ðµ может быть пуÑтым';
+$messages['nametoolong'] = 'Слишком длинное имÑ';
+$messages['folderupdated'] = 'Папка обновлена';
+$messages['foldercreated'] = 'Папка Ñоздана';
+$messages['invalidimageformat'] = 'Ðеверный формат изображениÑ';
+$messages['mispellingsfound'] = 'Ð’ Ñообщении обнаружены орфографичеÑкие ошибки';
$messages['parentnotwritable'] = 'Ðе удаетÑÑ Ñоздать/перемеÑтить папку в выбранную родительÑкую папку. Ðет прав доÑтупа.';
$messages['messagetoobig'] = 'ЧаÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñлишком велика Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸.';
-$messages['attachmentvalidationerror'] = 'Ð’ÐИМÐÐИЕ! Это вложение ÑвлÑетÑÑ Ð¿Ð¾Ð´Ð¾Ð·Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼, потому что его тип не Ñовпадает Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼, объÑвленным в Ñообщении. ЕÑли Ð’Ñ‹ не доверÑете отправителю, не открывайте его в браузере, поÑкольку оно может заключать в Ñебе вредоноÑное Ñодержимое.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['attachmentvalidationerror'] = 'Ð’ÐИМÐÐИЕ! Это приложение ÑвлÑетÑÑ Ð¿Ð¾Ð´Ð¾Ð·Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹, потому что его тип не Ñовпадает Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼, объÑвленным в Ñообщении. ЕÑли вы не доверÑете отправителю, вы не должны открывать его в браузере, поÑкольку он может Ñодержать вредоноÑный Ñодержание.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'Внимание: Данному ÑервиÑу веб-почты требуетÑÑ Javascript! Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы его иÑпользовать необходимо включить поддержку Javascript в наÑтройках вашего браузера.';
+
?>
diff --git a/program/localization/si_LK/labels.inc b/program/localization/si_LK/labels.inc
index 9baa37028..d8cd71662 100644
--- a/program/localization/si_LK/labels.inc
+++ b/program/localization/si_LK/labels.inc
@@ -15,40 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product වෙත පිළිගනිමු';
$labels['username'] = 'පරිà·à·“ලක නà·à¶¸à¶º';
$labels['password'] = 'මුරපදය';
$labels['server'] = 'පද්ධතිය';
$labels['login'] = 'පිවිසුම';
+
+// taskbar
$labels['logout'] = 'පිටවීම';
$labels['mail'] = 'විද්â€à¶ºà·”ත් තà·à¶´à·à¶½';
$labels['settings'] = 'à·ƒà·à¶šà·ƒà·”ම්';
$labels['addressbook'] = 'ලිපින පොත';
+
+// mailbox names
$labels['inbox'] = 'Inbox';
$labels['drafts'] = 'කටු සටහන්';
$labels['sent'] = 'යà·à·€à·–';
$labels['trash'] = 'ඉවතලන බඳුන';
$labels['junk'] = 'සුන්බුන්';
+
+// message listing
$labels['subject'] = 'මà·à¶­à·˜à¶šà·à·€';
$labels['from'] = 'වෙතින්';
+$labels['sender'] = 'Sender';
$labels['to'] = 'වෙත';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'පිළිතුරු සඳහà·';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'දිනය';
$labels['size'] = 'ප්â€à¶»à¶¸à·à¶«à¶º';
$labels['priority'] = 'ප්â€à¶»à¶¸à·”ඛත්වය';
$labels['organization'] = 'සංවිධà·à¶±à¶º';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'බහà·à¶½à·”ම්';
$labels['messagesfromto'] = '$from වෙතින් $to වෙත පණිවිඩ $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'පණිවිඩ $count න් $nr';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'පිටපත් කරන්න';
$labels['move'] = 'ගෙනයන්න';
$labels['moveto'] = 'ගෙන යන්න...';
$labels['download'] = 'බà·à¶œà¶­ කරන්න';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ගොනුවේ නම';
$labels['filesize'] = 'ගොනුවේ ප්â€à¶»à¶¸à·à¶«à¶º';
+
$labels['addtoaddressbook'] = 'ලිපින පොතට එක් කරන්න';
+
+// weekdays short
$labels['sun'] = 'ඉ';
$labels['mon'] = 'à·ƒ';
$labels['tue'] = 'අ';
@@ -56,6 +81,8 @@ $labels['wed'] = 'බ';
$labels['thu'] = 'බ්â€à¶»';
$labels['fri'] = 'සි';
$labels['sat'] = 'සෙ';
+
+// weekdays long
$labels['sunday'] = 'ඉරිදà·';
$labels['monday'] = 'සඳුදà·';
$labels['tuesday'] = 'අඟහරුවà·à¶¯à·';
@@ -63,6 +90,8 @@ $labels['wednesday'] = 'බදà·à¶¯à·';
$labels['thursday'] = 'බ්â€à¶»à·„ස්පතින්දà·';
$labels['friday'] = 'සිකුරà·à¶¯à·';
$labels['saturday'] = 'සෙනසුරà·à¶¯à·';
+
+// months short
$labels['jan'] = 'ජන';
$labels['feb'] = 'පෙබ';
$labels['mar'] = 'මà·à¶»à·Š';
@@ -75,6 +104,8 @@ $labels['sep'] = 'à·ƒà·à¶´à·Š';
$labels['oct'] = 'ඔක්';
$labels['nov'] = 'නොවà·';
$labels['dec'] = 'දෙසà·';
+
+// months long
$labels['longjan'] = 'ජනවà·à¶»à·’';
$labels['longfeb'] = 'පෙබරවà·à¶»à·’';
$labels['longmar'] = 'මà·à¶»à·Šà¶­à·”';
@@ -87,14 +118,22 @@ $labels['longsep'] = 'à·ƒà·à¶´à·Šà¶­à·à¶¸à·Šà¶¶à¶»à·Š';
$labels['longoct'] = 'ඔක්තà·à¶¸à·Šà¶¶à¶»à·Š';
$labels['longnov'] = 'නොවà·à¶¸à·Šà¶¶à¶»à·Š';
$labels['longdec'] = 'දෙසà·à¶¸à·Šà¶¶à¶»à·Š';
+
$labels['today'] = 'අද';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'අඵත් පණිවිඩ සඳහ෠පිරික්සීම';
$labels['compose'] = 'පණිවිඩයක් සෑදීම';
$labels['writenewmessage'] = 'අඵත් පණිවිඩයක්';
$labels['reply'] = 'පිළිතුරු දෙන්න';
$labels['replytomessage'] = 'පණිවිඩයට පිළිතුරු';
$labels['replytoallmessage'] = 'එවන්නà·à¶§ සහ à·ƒà·à¶¸à¶§ පිළිතුරු';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
$labels['forward'] = 'ඉදිරියට';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'පණිවිඩය ඉදිරියට';
$labels['deletemessage'] = 'පණිවිඩය මකන්න';
$labels['movemessagetotrash'] = 'පණිවිඩය ලටපට වෙත ගෙන යන්න';
@@ -109,76 +148,142 @@ $labels['mark'] = 'සලකුණු කරන්න';
$labels['markmessages'] = 'පණිවිඩ සලකුණු කරන්න';
$labels['markread'] = 'කියවු ලෙස';
$labels['markunread'] = 'නොකියවු ලෙස';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
$labels['moreactions'] = 'තවත් ක්â€à¶»à·’යà·...';
$labels['more'] = 'තවත්';
$labels['back'] = 'ආපසු';
$labels['options'] = 'විකල්ප';
+
$labels['select'] = 'තà·à¶»à¶±à·Šà¶±';
$labels['all'] = 'සියල්ල';
$labels['none'] = 'කිසිවක් නà·à¶­';
$labels['currpage'] = 'දà·à¶±à¶§ ඇති පිටුව';
$labels['unread'] = 'නොකියවූ';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'මක෠දà·à¶¸à·–';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
$labels['filter'] = 'පෙරන්න';
$labels['list'] = 'ලà·à¶ºà·’ස්තුව';
+$labels['threads'] = 'Threads';
$labels['expand-all'] = 'සියල්ල දිගහරින්න';
+$labels['expand-unread'] = 'Expand Unread';
$labels['collapse-all'] = 'සියල්ල හකුළන්න';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
$labels['fromto'] = 'වෙතින්/වෙත';
+$labels['flag'] = 'Flag';
$labels['attachment'] = 'ඇමුණුම';
$labels['nonesort'] = 'කිසිවක් නà·à¶­';
$labels['sentdate'] = 'යà·à·€à·– දිනය';
$labels['arrival'] = 'ලගà·à·€à·– දිනය';
$labels['asc'] = 'ආරà·à·„ණ';
$labels['desc'] = 'අවරà·à·„ණ';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
$labels['folderactions'] = 'බහà·à¶½à·”ම් ක්â€à¶»à·’යà·...';
$labels['compact'] = 'සංයුක්ත';
$labels['empty'] = 'හිස්';
+
+$labels['quota'] = 'Disk usage';
$labels['unknown'] = 'නොදනී';
$labels['unlimited'] = 'අසීමිත';
+
$labels['quicksearch'] = 'ඉක්මන් සෙවුම';
$labels['resetsearch'] = 'සෙවුම යලි පිහිටවීම';
+$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'සම්පූර්ණ පණිවිඩය';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'නව කවුළුවක විවෘත කරන්න';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'පණිවිඩය යවන්න';
$labels['savemessage'] = 'කටු සටහනක් ලෙස සුරකින්න';
$labels['addattachment'] = 'ගොනුවක් අමුණන්න';
$labels['charset'] = 'අකුර෠කට්ටලය';
$labels['editortype'] = 'සම්පà·à¶¯à¶± ආකà·à¶»à¶º';
$labels['returnreceipt'] = 'නà·à·€à¶­ ලබන්නà·';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'අක්â€à·‚ර වින්â€à¶ºà·à·ƒà¶º පරික්â€à·‚à·à¶šà¶»à¶±à·Šà¶±';
$labels['resumeediting'] = 'සම්පà·à¶¯à¶± නà·à·€à¶­ ඇරඹීම';
$labels['revertto'] = 'ආපසු ඒම';
+
$labels['attach'] = 'අමුණන්න';
$labels['attachments'] = 'ඇමුණුම්';
$labels['upload'] = 'ඇතුල් කරීම';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'වසන්න';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'අඩු';
$labels['lowest'] = 'අඩුම';
$labels['normal'] = 'à·ƒà·à¶¸à·à¶±à·Šâ€à¶º';
$labels['high'] = 'ඉහළ';
$labels['highest'] = 'ඉහළම';
+
$labels['nosubject'] = '(මà·à¶­à·˜à¶šà·à·€ නොමà·à¶­)';
$labels['showimages'] = 'රූප පෙන්වන්න';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'පà·à·„à·à¶¯à·’ලි අකුරු';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Cc එක් කරන්න';
$labels['addbcc'] = 'Bcc එක් කරන්න';
$labels['addreplyto'] = '\'පිළිතුරු සඳහà·\' එක් කරන්න';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'මෙම පණිවුඩය එවන්න෠ඔබ එය කියවු බව අසයි. එය දà·à¶±à·Šà·€à·“මට ඔබ කà·à¶¸à¶­à·’ද?';
$labels['receiptread'] = 'ලà·à¶¶à·“ම් ලදුපත (කියවීම)';
$labels['yourmessage'] = 'මෙය ඔබගේ පණිවුඩයේ ලà·à¶¶à·“ම් ලදුපතයි';
$labels['receiptnote'] = 'සටහන: ලà·à¶¶à·“ම් ලදුපත මගින් මෙම පණිවුඩය කියවූ බව හ෠තේරුම් ගත් බව ගම්â€à¶º නොවේ. පණිවුඩය ලබන්නà·à¶§ පෙන්නුම් කල බවටට à·ƒà·à¶šà·Šà·‚ියක් පමණි';
+
+// address boook
$labels['name'] = 'ප්â€à¶»à¶¯à¶»à·Šà·à¶±à¶º වන නම';
$labels['firstname'] = 'මුල් නම';
$labels['surname'] = 'අවසන් නම';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'සුරතල් නම';
$labels['jobtitle'] = 'රà·à¶šà·’ය෠තනතුර';
$labels['department'] = 'දෙපà·à¶»à·Šà¶­à¶¸à·šà¶±à·Šà¶­à·”à·€';
$labels['gender'] = 'ස්ත්â€à¶»à·’/පුරුෂ භà·à·€à¶º';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'විද්â€à¶ºà·”ත් තà·à¶´à·‘ල';
$labels['phone'] = 'දුරකථනය';
$labels['address'] = 'ලිපිනය';
+$labels['street'] = 'Street';
$labels['locality'] = 'නගරය';
+$labels['zipcode'] = 'ZIP Code';
$labels['region'] = 'ප්â€à¶»à·à¶±à·Šà¶­à¶º/පළà·à¶­';
$labels['country'] = 'රට';
$labels['birthday'] = 'උපන්දිනය';
@@ -190,87 +295,187 @@ $labels['male'] = 'පුරුෂ';
$labels['female'] = 'ස්ත්â€à¶»à·“';
$labels['manager'] = 'කළමණà·à¶šà¶»à·”';
$labels['assistant'] = 'සහà·à¶ºà¶š';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
$labels['search'] = 'සොයන්න';
+$labels['advsearch'] = 'Advanced Search';
$labels['advanced'] = 'සංකීර්ණâ€';
$labels['other'] = 'වෙනත්';
+
$labels['typehome'] = 'නිවස';
$labels['typework'] = 'රක්ෂà·à·€';
$labels['typeother'] = 'වෙනත්';
$labels['typemobile'] = 'ජංගම';
$labels['typemain'] = 'ප්â€à¶»à¶°à·à¶±';
$labels['typehomefax'] = 'ගෘහස්ථ à·†à·à¶šà·Šà·ƒà·Š';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
$labels['typepager'] = 'පේජරය';
$labels['typevideo'] = 'වීඩියà·';
$labels['typeassistant'] = 'සහà·à¶ºà¶š';
+$labels['typehomepage'] = 'Home Page';
$labels['typeblog'] = 'බ්ලොග්';
$labels['typeprofile'] = 'පà·à¶­à·’කඩ';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'නව සබඳතà·à·€à¶º එක් කරන්න';
$labels['editcontact'] = 'ලිපිනය වෙනස් කිරීම';
$labels['contacts'] = 'සබඳතà·';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'පුද්ගලික තොරතුරු';
+
$labels['edit'] = 'සංස්කරණය';
$labels['cancel'] = 'අවලංගු කරන්න';
$labels['save'] = 'සුරකින්න';
$labels['delete'] = 'මකන්න';
$labels['rename'] = 'නම වෙනස් කරන්න';
$labels['addphoto'] = 'එක් කරන්න';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'අඵත් ලිපින පතක් සෑදීම';
$labels['deletecontact'] = 'තà·à¶»à·à¶œà¶­à·Š ලිපින මකà·à¶¯à¶¸à¶±à·Šà¶±';
$labels['composeto'] = 'පනිවුඩයක් සෑදීම';
$labels['contactsfromto'] = '$from ගෙන් $to ලිපින $count';
$labels['print'] = 'මුද්â€à¶»à¶«à¶º කරන්න';
$labels['export'] = 'අපනයනය';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'පෙර පිටුව පෙන්වන්න';
$labels['firstpage'] = 'පළමුවන පිටුව පෙන්වන්න';
$labels['nextpage'] = 'මීළඟ පිටුව පෙන්වන්න';
$labels['lastpage'] = 'අවසà·à¶± පිටුව පෙන්වන්න';
+
$labels['group'] = 'කණ්ඩà·à¶ºà¶¸';
$labels['groups'] = 'කණ්ඩà·à¶ºà¶¸à·Š';
$labels['personaladrbook'] = 'පුද්ගලික ලිපිනය';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'ආනයනය කරන්න';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'අවසà·à¶±à¶ºà·’';
+
+// settings
$labels['settingsfor'] = 'සඳහ෠සà·à¶šà·ƒà·”ම්';
$labels['about'] = 'පිළිබඳ';
$labels['preferences'] = 'අභිමතය';
$labels['userpreferences'] = 'පරිà·à·“ලක අභිමතය';
$labels['editpreferences'] = 'පරිà·à·“ලක අභිමතය වෙනස් කිරීම්';
+
$labels['identities'] = 'අනන්â€à¶ºà¶­à·à·€à¶±à·Š';
$labels['manageidentities'] = 'මෙම ගිණුමෙ අනන්නයතà·à·€ à·„à·à·ƒà·’රවීම';
$labels['newidentity'] = 'අඵත් අනන්නයතà·à·€';
+
$labels['newitem'] = 'අඵත් අයිතම';
$labels['edititem'] = 'අයිතම වෙනස් කිරීම්';
+
$labels['preferhtml'] = 'HTML විදහ෠පෙන්වීම';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML පණිවිඩය';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'සුරුබුහුටි දින';
$labels['setdefault'] = 'පළමු තත්වයට';
$labels['autodetect'] = 'ස්වයංක්â€à¶»à·“ය';
$labels['language'] = 'භà·à·‚à·à·€';
$labels['timezone'] = 'කà·à¶½ කලà·à¶´à¶º';
+$labels['pagesize'] = 'Rows per page';
$labels['signature'] = 'අත්සන';
$labels['dstactive'] = 'දිව෠එළිය ඉතිරි කිරීම';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML පණිවිඩයක් සෑදීම';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML අත්සන';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'පූර්වදර්à·à¶± කොටස පෙන්නන්න';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
$labels['uisettings'] = 'පරිà·à·“ලක අතුරුමුහුණත';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
$labels['askuser'] = 'මගෙන් විමසන්න';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'නොසලක෠හරින්න';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
$labels['always'] = 'à·ƒà·à¶¸à·€à·’ට';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'ස්වයංක්â€à¶»à·“යව කටු සටහන සුරකින්න';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'කිසි විටෙකත් නà·à¶­à·’';
$labels['immediately'] = 'à·„à·à¶šà·’ ඉක්මනින්';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Full RFC 2047 (වෙනත්)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'අංà·à¶º';
$labels['maintenance'] = 'නඩත්තු කිරීම';
$labels['newmessage'] = 'අලුත් පණිවිඩයක්';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
$labels['autoaddsignature'] = 'ස්වයංක්â€à¶»à·“යව අත්සන ඇතුලත් කරන්න';
$labels['newmessageonly'] = 'අලුත් පණිවිඩය පමණක්';
+$labels['replyandforwardonly'] = 'replies and forwards only';
$labels['insertsignature'] = 'අත්සන ඇතුලත් කරන්න';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
$labels['afternseconds'] = 'තත්පර $nකට පසු';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
$labels['spellcheckignoresyms'] = 'සලකුණු සහිත වචන නොසලක෠හරින්න';
$labels['spellcheckignorenums'] = 'අංක සහිත වචන නොසලක෠හරින්න';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'à·à¶¶à·Šà¶¯ කà·à·‚යට එක් කරන්න';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'බහà·à¶½à·”ම';
$labels['folders'] = 'බහà·à¶½à·”ම්';
$labels['foldername'] = 'බහà·à¶½à·”මේ නම';
@@ -282,27 +487,42 @@ $labels['managefolders'] = 'බහà·à¶½à·”ම් කළමනà·à¶šà¶»à¶«à¶º à
$labels['specialfolders'] = 'විà·à·šà·‚ බහà·à¶½à·”ම්';
$labels['properties'] = 'වත්කම්';
$labels['folderproperties'] = 'බහà·à¶½à·”මේ වත්කම්';
+$labels['parentfolder'] = 'Parent folder';
$labels['location'] = 'ස්ථà·à¶±à¶º';
$labels['info'] = 'තොරතුරු';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
$labels['foldertype'] = 'බහà·à¶½à·”ම් වර්ගය';
$labels['personalfolder'] = 'පුද්ගලික බහà·à¶½à·”ම';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'පොදු බහà·à¶½à·”ම';
+
$labels['sortby'] = 'වර්ග කරන්න';
$labels['sortasc'] = 'ආරà·à·„ණ වර්ග කිරීම';
$labels['sortdesc'] = 'අවරà·à·„ණ වර්ග කිරීම';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'ප්ලගිනය';
$labels['version'] = 'අනුවà·à¶¯à¶º';
$labels['source'] = 'මූලà·à·à·Šâ€à¶»à¶º';
$labels['license'] = 'බලපත්â€à¶»à¶º';
$labels['support'] = 'සහය ලබà·à¶œà¶±à·Šà¶±';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'යුනිකේත';
$labels['english'] = 'ඉංග්â€à¶»à·“සි';
$labels['westerneuropean'] = 'බටහිර යුරà·à¶´à·“ය';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
$labels['baltic'] = 'බà·à¶½à·Šà¶§à·’ක්';
+$labels['cyrillic'] = 'Cyrillic';
$labels['arabic'] = 'අරà·à¶¶à·’';
$labels['greek'] = 'ග්â€à¶»à·“ක';
$labels['hebrew'] = 'හීබෲ';
@@ -314,4 +534,5 @@ $labels['vietnamese'] = 'වියට්නà·à¶¸';
$labels['japanese'] = 'ජපන්';
$labels['korean'] = 'කොරියà·à¶±à·”';
$labels['chinese'] = 'චීන';
+
?>
diff --git a/program/localization/si_LK/messages.inc b/program/localization/si_LK/messages.inc
index 0c6fa1156..c3828bc64 100644
--- a/program/localization/si_LK/messages.inc
+++ b/program/localization/si_LK/messages.inc
@@ -15,15 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'දà·à·‚යක් මතුවිය!';
$messages['loginfailed'] = 'ඇතුල්වීම අසà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['cookiesdisabled'] = 'ඔබේ බෞසරය කුකී බà·à¶» ගන්නේ නà·à¶­';
$messages['sessionerror'] = 'ඔබේ à·€à·à¶»à¶º අවලංගු හ෠කà·à¶½à¶º ඉකුත් වී ඇත';
+$messages['storageerror'] = 'Connection to storage server failed.';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
$messages['dberror'] = 'දත්ත ගබඩà·à·€à·š දà·à·‚ය!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'ලියුම් පෙට්ටියේ පනිවුඩ නà·à¶­';
$messages['loggedout'] = 'ඔබගේ à·€à·à¶»à¶º à·ƒà·à¶»à·Šà¶®à¶šà·€ අවසන් විය. අයුබොවන්!';
$messages['mailboxempty'] = 'ලියුම් පෙට්ටිය හිස්';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'පූරනය...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'දත්ත පූරනය...';
$messages['checkingmail'] = 'අලුත් පණිවිඩ පරීක්ෂ෠කරමින්...';
$messages['sendingmessage'] = 'පණිවිඩය යවමින්...';
@@ -33,56 +48,124 @@ $messages['messagesaved'] = 'පනිවුඩය කටු සටහනේ ත
$messages['successfullysaved'] = 'සුරà·à¶šà·“ම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['addedsuccessfully'] = 'ලිපිනය à·ƒà·à¶»à·Šà¶®à¶šà·€ ලිපින පොතට එකතු කරන ලදී.';
$messages['contactexists'] = 'ඉහත ලිපිනය සහිත විද්යුත් තà·à¶´à·à¶½à·Š ලිපිනයක් ලිපින පොතේ ඇත.';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'ඔබගෙ පොද්ගලිකත්වය හේතුවෙන්, දුරස්ථ රූප අවහිර කර ඇත.';
$messages['encryptedmessage'] = 'මෙම පනිවුඩය රහස් කේතනය කර ඇති බà·à·€à·’න් පෙන්විය නොහà·à¶š. සමà·à·€à¶±à·Šà¶±!';
$messages['nocontactsfound'] = 'ලිපින සොය෠ගත නොහà·à¶š';
$messages['contactnotfound'] = 'ඉල්ලූ ලිපිනය සොයà·à¶œà¶­ නොහà·à¶š';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'පණිවිඩය යà·à·€à·“ම අසà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['senttooquickly'] = 'කරුණà·à¶šà¶» මෙම පණිවිඩය යà·à·€à·“මට පෙර තත්පර $secක් රà·à¶¯à·“ සිටින්න.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'පණිවිඩය සුරà·à¶šà·“මේදී දà·à·‚යක් මතුවිය.';
$messages['errormoving'] = 'පනිවුඩය ගෙන යà·à¶¸à¶§ නොහà·à¶š';
$messages['errorcopying'] = 'පණිවිඩ(ය) පිටපත් කල නොහà·à¶š.';
$messages['errordeleting'] = 'පණිවිඩ(ය) මක෠දà·à¶¸à·“මට නොහà·à¶š.';
$messages['errormarking'] = 'පණිවිඩ(ය) සලකුණු කල නොහà·à¶š.';
$messages['deletecontactconfirm'] = 'තà·à¶»à· ඇති ලිපින ඔබට මක෠දà·à¶¸à·“මට à·ƒà·à¶¶à·€à·’න්ම වුවමනà·à¶¯?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'තà·à¶»à· ඇති පණිවිඩ(ය) ඔබට මක෠දà·à¶¸à·“මට à·ƒà·à¶¶à·€à·’න්ම වුවමනà·à¶¯?';
$messages['deletefolderconfirm'] = 'ඔබට මෙම බහà·à¶½à·”ම මක෠දà·à¶¸à·“මට à·ƒà·à¶¶à·€à·’න්ම වුවමනà·à¶¯?';
$messages['purgefolderconfirm'] = 'මෙම බහà·à¶½à¶¸à·š ඇති සියලුම පණිවිඩ ඔබට මක෠දà·à¶¸à·“මට à·ƒà·à¶¶à·€à·’න්ම වුවමනà·à¶¯?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'බහà·à¶½à·”ම මකà·à¶¯à¶¸à¶¸à·’න්...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'පà·à¶»à¶¸à¶º සම්පූර්ණයෙන් පුරව෠නොමà·à¶­.';
$messages['noemailwarning'] = 'කරුණà·à¶šà¶» වලංගු විද්යුත් ලිපිනයක් ඇතුලත් කරන්න.';
$messages['nonamewarning'] = 'කරුණà·à¶šà¶» නම ඇතුලත් කරන්න.';
$messages['nopagesizewarning'] = 'කරුණà·à¶šà¶» පිටුවේ ප්â€à¶»à¶¸à·à¶«à¶º ඇතුලත් කරන්න.';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'කරුණà·à¶šà¶» යටත් පිරිසෙයින් එක් ලබන්නෙකු හ෠ඇතුලත් කරන්න';
$messages['nosubjectwarning'] = '"මà·à¶­à·˜à¶šà·à·€" හිස්. මà·à¶­à·˜à¶šà·à·€à¶šà·Š ඇතුලත් කිරීමට ඔබ කà·à¶¸à¶­à·’ද?';
$messages['nobodywarning'] = 'මෙම හිස් පනිවුඩය යවන්නද?';
$messages['notsentwarning'] = 'පණිවිඩය යà·à·€à·“මට නොහà·à¶šà·’ විය. ඔබට එය බà·à·„à·à¶» කිරීමට වුවමනà·à¶¯?';
$messages['noldapserver'] = 'සෙවුම සඳහ෠කරුණà·à¶šà¶» ldap සම්බන්ධතà·à·€à¶ºà¶šà·Š තà·à¶»à· ගන්න';
$messages['nosearchname'] = 'කරුණà·à¶šà¶» ලිපිනයෙහි නම හ෠විද්යුත් තà·à¶´à·à¶½à·Š ලිපිනය ඇතුලත් කරන්න';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr පනිවුඩය හමු විය';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'සෙවුමට අදà·à¶½ ගà·à¶½à¶´à·“මක් නොමà·à¶­.';
$messages['searching'] = 'සොයමින්...';
$messages['checking'] = 'පරික්â€à·‚à·à¶šà¶»à¶¸à·’න්...';
$messages['nospellerrors'] = 'වියà·à¶šà¶»à¶± දොෂ නොමà·à¶­';
$messages['folderdeleted'] = 'බහà·à¶½à·”ම à·ƒà·à¶»à·Šà¶®à¶šà·€ මක෠දමන ලදී.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'à·ƒà·à¶»à·Šà¶®à¶šà·€ මකà·à¶¯à¶¸à¶± ලදී.';
$messages['converting'] = 'පනිවුඩයෙන් ආකෘතීකරණය ඉවත් කිරීම';
$messages['messageopenerror'] = 'පනිවුඩය පූරනය කිරීමට නොහà·à¶š';
$messages['fileuploaderror'] = 'ගොනුව ඇතුලත් කිරීමට නොහà·à¶š';
$messages['filesizeerror'] = 'ඇතුලත් කල ගොනුවෙ ප්රමà·à¶«à¶º උපරිම අගය $size ඉක්මව෠ඇත';
+$messages['copysuccess'] = '$nr ලිපිනය à·ƒà·à¶»à·Šà¶®à¶šà·€ පිටපත් කරන ලදී';
+$messages['copyerror'] = 'Could not copy any addresses.';
$messages['sourceisreadonly'] = 'මෙම ලිපින මූලà·à·à·Šà¶»à¶º කියවීම සඳහ෠පමනි';
$messages['errorsavingcontact'] = 'ලිපිනය තà·à¶±à·Šà¶´à¶­à·Š කීරීමට නොහà·à¶š';
$messages['movingmessage'] = 'පණිවිඩ(ය) ගෙනයමින්...';
$messages['copyingmessage'] = 'පණිවිඩ(ය) පිටපත් කරමින්...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
$messages['deletingmessage'] = 'පණිවිඩ(ය) මක෠දමමින්...';
$messages['markingmessage'] = 'පණිවිඩ(ය) සලකුණු කරමින්...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
$messages['errorsendingreceipt'] = 'කියවීම් භà·à¶» ගà·à¶±à·“ම යà·à·€à·“මට නොහà·à¶š';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'අවසà·à¶± අනන්â€à¶ºà¶­à·à·€à¶º මක෠දà·à¶¸à·’ය නොහà·à¶š';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'ආනයනය කරමින්, කරුණà·à¶šà¶» රà·à¶¯à·“ සිටින්න...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'අවලංගු විද්â€à¶ºà·”ත් තà·à¶´à·à¶½à·Š ලිපිනය: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
$messages['messagedeleted'] = 'පණිවිඩ(ය) මක෠දà·à¶¸à·“ම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['messagemoved'] = 'පණිවිඩ(ය) ගෙනයෑම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['messagecopied'] = 'පණිවිඩ(ය) පිටපත් කිරීම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['messagemarked'] = 'පණිවිඩ(ය) සලකුණු කිරීම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
$messages['namecannotbeempty'] = 'නම හිස්ව තà·à¶¶à·’ය නොහà·à¶š.';
$messages['nametoolong'] = 'නම දිග à·€à·à¶©à·’ය.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/sk_SK/labels.inc b/program/localization/sk_SK/labels.inc
index 93bca166f..10673382a 100644
--- a/program/localization/sk_SK/labels.inc
+++ b/program/localization/sk_SK/labels.inc
@@ -15,24 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Vitajte v $product';
-$labels['username'] = 'Meno používateľa';
+$labels['username'] = 'Prihlasovacie meno';
$labels['password'] = 'Heslo';
$labels['server'] = 'Server';
$labels['login'] = 'Prihlásiť';
+
+// taskbar
$labels['logout'] = 'Odhlásiť';
-$labels['mail'] = 'E-mail';
+$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Nastavenia';
-$labels['addressbook'] = 'Adresár kontaktov';
+$labels['addressbook'] = 'Kontakty';
+
+// mailbox names
$labels['inbox'] = 'DoruÄená poÅ¡ta';
-$labels['drafts'] = 'Koncepty';
+$labels['drafts'] = 'Rozpísané';
$labels['sent'] = 'Odoslané';
$labels['trash'] = 'Kôš';
$labels['junk'] = 'Nevyžiadaná pošta';
-$labels['show_real_foldernames'] = 'Pri osobitných prieÄinkoch zobrazovaÅ¥ reálne názvy';
+
+// message listing
$labels['subject'] = 'Predmet';
$labels['from'] = 'Odosielateľ';
-$labels['sender'] = 'Odosielateľ';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Adresát';
$labels['cc'] = 'Kópia';
$labels['bcc'] = 'Tajná kópia';
@@ -44,21 +53,27 @@ $labels['priority'] = 'Priorita';
$labels['organization'] = 'Organizácia';
$labels['readstatus'] = 'Čítať stav';
$labels['listoptions'] = 'Nastavenia zoznamu...';
+
$labels['mailboxlist'] = 'PrieÄinky';
$labels['messagesfromto'] = 'Správy od $from do $to z $count';
$labels['threadsfromto'] = 'Konverzácie od $from do $to z $count';
$labels['messagenrof'] = 'Správa $nr z $count';
$labels['fromtoshort'] = '$from – $to z $count';
+
$labels['copy'] = 'Kopírovať';
$labels['move'] = 'Presunúť';
$labels['moveto'] = 'presunúť do...';
$labels['download'] = 'stiahnuť';
-$labels['open'] = 'Otvoriť';
-$labels['showattachment'] = 'Zobraziť';
-$labels['showanyway'] = 'Zobraziť aj napriek tomu';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Meno súboru';
$labels['filesize'] = 'Veľkosť súboru';
+
$labels['addtoaddressbook'] = 'Pridať do adresára';
+
+// weekdays short
$labels['sun'] = 'Ne';
$labels['mon'] = 'Po';
$labels['tue'] = 'Ut';
@@ -66,6 +81,8 @@ $labels['wed'] = 'St';
$labels['thu'] = 'Å t';
$labels['fri'] = 'Pi';
$labels['sat'] = 'So';
+
+// weekdays long
$labels['sunday'] = 'Nedeľa';
$labels['monday'] = 'Pondelok';
$labels['tuesday'] = 'Utorok';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Streda';
$labels['thursday'] = 'Å tvrtok';
$labels['friday'] = 'Piatok';
$labels['saturday'] = 'Sobota';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Január';
$labels['longfeb'] = 'Február';
$labels['longmar'] = 'Marec';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Október';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'Dnes';
+
+// toolbar buttons
$labels['refresh'] = 'Obnoviť';
$labels['checkmail'] = 'Skontrolovať nové správy';
$labels['compose'] = 'Vytvoriť správu';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Ďalšie akcie...';
$labels['more'] = 'Ďalšie';
$labels['back'] = 'Dozadu';
$labels['options'] = 'Možnosti';
+
$labels['select'] = 'Výber';
$labels['all'] = 'VÅ¡etky';
$labels['none'] = 'NiÄ';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'Aktuálna stránka';
$labels['unread'] = 'NepreÄítané';
$labels['flagged'] = 'OznaÄené';
$labels['unanswered'] = 'NeoznaÄené';
-$labels['withattachment'] = 'S prílohou';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Zmazané';
$labels['undeleted'] = 'Nevymazané';
$labels['invert'] = 'Prevrátiť';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Rozbaliť všetko';
$labels['expand-unread'] = 'RozbaliÅ¥ nepreÄítané';
$labels['collapse-all'] = 'Zbaliť všetko';
$labels['threaded'] = 'Spájať do konverzácií';
+
$labels['autoexpand_threads'] = 'Rozbaliť konverzácie';
$labels['do_expand'] = 'všetky konverzácie';
$labels['expand_only_unread'] = 'len s nepreÄítanými správami';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Zoznam stĺpcov';
$labels['listsorting'] = 'Triedenie stĺpcov';
$labels['listorder'] = 'Usporiadanie';
$labels['listmode'] = 'Režim zobrazenia zoznamu';
+
$labels['folderactions'] = 'Akcie so zložkou...';
$labels['compact'] = 'ZhustiÅ¥ prieÄinok';
$labels['empty'] = 'Vyprázdniť';
-$labels['importmessages'] = 'Importovať správy';
+
$labels['quota'] = 'Zaplnenie schránky';
$labels['unknown'] = 'neznáme';
$labels['unlimited'] = 'neobmedzené';
+
$labels['quicksearch'] = 'Rýchle vyhľadávanie';
$labels['resetsearch'] = 'VyÄistiÅ¥ vyhľadávanie';
$labels['searchmod'] = 'Parametre hľadanie';
$labels['msgtext'] = 'Celá správa';
-$labels['body'] = 'Telo';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Meno';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Otvoriť v novom okne';
$labels['emlsave'] = 'Stiahnuť';
-$labels['changeformattext'] = 'ZobraziÅ¥ vo formáte Äistého textu';
-$labels['changeformathtml'] = 'Zobraziť vo formáte HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Upraviť ako novú';
$labels['send'] = 'Odoslať';
$labels['sendmessage'] = 'Odoslať správu';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Potvrdenie o doruÄení';
$labels['dsn'] = 'DoruÄenie oznámenia o stave';
$labels['mailreplyintro'] = '$date odosielateľ napísal:';
$labels['originalmessage'] = 'Pôvodná správa';
+
$labels['editidents'] = 'Editovať identity';
$labels['spellcheck'] = 'Pravopis';
$labels['checkspelling'] = 'Skontrolovať pravopis';
$labels['resumeediting'] = 'PokraÄovaÅ¥ v úpravách';
$labels['revertto'] = 'Vrátiť sa na';
-$labels['responses'] = 'Odpovede';
-$labels['insertresponse'] = 'VložiÅ¥ odpoveÄ';
-$labels['manageresponses'] = 'Spravovať odpovede';
-$labels['savenewresponse'] = 'UložiÅ¥ novú odpoveÄ';
-$labels['editresponses'] = 'Upraviť odpovede';
-$labels['editresponse'] = 'UpraviÅ¥ odpoveÄ';
-$labels['responsename'] = 'Meno';
-$labels['responsetext'] = 'Text odpovede';
+
$labels['attach'] = 'Priložiť';
$labels['attachments'] = 'Prílohy';
$labels['upload'] = 'Nahrať';
$labels['uploadprogress'] = '$percent ($current z $total)';
$labels['close'] = 'Zatvoriť';
$labels['messageoptions'] = 'Nastavenia správy...';
+
$labels['low'] = 'Nízka';
$labels['lowest'] = 'Najnižšia';
$labels['normal'] = 'Normálna';
$labels['high'] = 'Vysoká';
$labels['highest'] = 'Najvyššia';
+
$labels['nosubject'] = '(bez predmetu)';
$labels['showimages'] = 'Ukázať obrázky';
$labels['alwaysshow'] = 'Vždy zobraziť obrázky od $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Toto je rozpísaná správa';
$labels['andnmore'] = '$nr viac...';
$labels['togglemoreheaders'] = 'Zobraziť viac záhlaví správ';
$labels['togglefullheaders'] = 'Prepnúť zobrazenie nespracovaných záhlaví správ';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Čistý text';
$labels['savesentmessagein'] = 'Ukladať odoslané správy do';
$labels['dontsave'] = 'Neukladať';
$labels['maxuploadsize'] = 'Maximálna povolená veľkosť súboru je $size';
+
$labels['addcc'] = 'Pridať kópiu';
$labels['addbcc'] = 'Pridať skrytú kopiu';
$labels['addreplyto'] = 'PridaÅ¥ odpoveÄ';
$labels['addfollowupto'] = 'PridaÅ¥ pokraÄovaÅ¥ na';
+
+// mdn
$labels['mdnrequest'] = 'Odosielateľ tejto správy chce byť upozornený na to, že ste správu obdržali. Chcete potvrdiť prijatie správy?';
$labels['receiptread'] = 'Potvrdenie o prijatí správy';
$labels['yourmessage'] = 'Toto je potvrdenie o prijatí Vašej správy';
$labels['receiptnote'] = 'Poznámka: Toto potvrdenie negarantuje, že správa bola príjemcom preÄítaná a porozumel jej obsahu.';
+
+// address boook
$labels['name'] = 'Názov';
$labels['firstname'] = 'Meno';
$labels['surname'] = 'Priezvisko';
@@ -270,6 +301,7 @@ $labels['search'] = 'Hľadať';
$labels['advsearch'] = 'Rozšírené vyhľadávanie';
$labels['advanced'] = 'Rozšírené';
$labels['other'] = 'Ostatné';
+
$labels['typehome'] = 'Domov';
$labels['typework'] = 'Práca';
$labels['typeother'] = 'Ostatné';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'Domovská stránka';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Pridať položku...';
$labels['addcontact'] = 'Pridať nový kontakt';
$labels['editcontact'] = 'Upraviť kontakt';
$labels['contacts'] = 'Kontakty';
$labels['contactproperties'] = 'Vlastnosti kontaktu';
$labels['personalinfo'] = 'Osobné informácie';
+
$labels['edit'] = 'Upraviť';
$labels['cancel'] = 'Zrušiť';
$labels['save'] = 'Uložiť';
@@ -298,54 +332,60 @@ $labels['rename'] = 'Premenovať';
$labels['addphoto'] = 'Pridať';
$labels['replacephoto'] = 'Nahradiť';
$labels['uploadphoto'] = 'Nahrať fotku';
+
$labels['newcontact'] = 'Vytvoriť nový kontakt';
$labels['deletecontact'] = 'Zmazať zvolené kontakty';
$labels['composeto'] = 'Vytvoriť správu pre';
$labels['contactsfromto'] = 'Kontakty od $from do $to z $count';
$labels['print'] = 'TlaÄ';
$labels['export'] = 'Export';
-$labels['exportall'] = 'Exportovať všetko';
-$labels['exportsel'] = 'Exportovať vybrané';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Exportovať kontakty vo formáte vCard';
$labels['newcontactgroup'] = 'Vytvoriť novú skupinu kontaktov';
$labels['grouprename'] = 'Premenovať skupinu';
$labels['groupdelete'] = 'Zmazať skupinu';
$labels['groupremoveselected'] = 'Odstrániť vybrané kontakty zo skupiny';
+
$labels['previouspage'] = 'Predchádzajúca stránka';
$labels['firstpage'] = 'Prvá stránka';
$labels['nextpage'] = 'Nasledujúca stránka';
$labels['lastpage'] = 'Posledná stránka';
+
$labels['group'] = 'Skupina';
$labels['groups'] = 'Skupiny';
-$labels['listgroup'] = 'Zoznam Älenov skupiny';
$labels['personaladrbook'] = 'Osobné adresy';
+
$labels['searchsave'] = 'Uložiť vyhľadávanie';
$labels['searchdelete'] = 'Zmazať vyhľadávanie';
+
$labels['import'] = 'Import';
$labels['importcontacts'] = 'Importovať kontakty';
$labels['importfromfile'] = 'Importovať zo súboru:';
-$labels['importtarget'] = 'Pridať kontakty do';
+$labels['importtarget'] = 'Pridať nové kontakty do adresára:';
$labels['importreplace'] = 'Nahradiť celý zoznam kontaktov';
-$labels['importgroups'] = 'Importovať priradenia do skupín';
-$labels['importgroupsall'] = 'Všetky (vytvoriť skupiny, ak je to potrebné)';
-$labels['importgroupsexisting'] = 'Len pre existujúce skupiny';
-$labels['importdesc'] = 'Môžete vložiÅ¥ kontakty zo svojho existujúceho adresára.<br/>Momentálne je možné importovanie adries z formátu <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> alebo CSV (údaje oddeľované Äiarkou).';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Hotovo';
+
+// settings
$labels['settingsfor'] = 'Nastavenia pre';
$labels['about'] = 'O programe';
$labels['preferences'] = 'Vlastnosti';
$labels['userpreferences'] = 'Používateľské nastavenia';
$labels['editpreferences'] = 'Upraviť používateľské nastavenia';
+
$labels['identities'] = 'Profily';
$labels['manageidentities'] = 'SpravovaÅ¥ profily pre tento úÄet';
$labels['newidentity'] = 'Nový profil';
+
$labels['newitem'] = 'Nová položka';
$labels['edititem'] = 'Upraviť položku';
+
$labels['preferhtml'] = 'Uprednostniť HTML zobrazenie';
$labels['defaultcharset'] = 'Predvolené kódovanie';
$labels['htmlmessage'] = 'HTML správa';
-$labels['messagepart'] = 'Časť';
-$labels['digitalsig'] = 'Digitálny podpis';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Formát dátumu';
$labels['timeformat'] = 'Formát Äasu';
$labels['prettydate'] = 'Krajší dátum';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'Vytvoriť HTML správu';
$labels['htmlonreply'] = 'len v odpovedi na HTML správy';
$labels['htmlonreplyandforward'] = 'pri preposielaní alebo odpovedi na HTML správu';
$labels['htmlsignature'] = 'HTML podpis';
-$labels['showemail'] = 'Zobrazovať e-mailovú adresu so zobrazeným menom';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Ukázať náhľad';
$labels['skin'] = 'Vzhľad';
$labels['logoutclear'] = 'Vyprázdniť kôš pri odhlásení';
@@ -387,7 +427,7 @@ $labels['always'] = 'vždy';
$labels['showinlineimages'] = 'Zobraziť pripojené obrázky pod správou';
$labels['autosavedraft'] = 'Automaticky uložiť koncept';
$labels['everynminutes'] = 'každých $n minút';
-$labels['refreshinterval'] = 'Obnoviť (skontrolovať nové správy a podobne)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nikdy';
$labels['immediately'] = 'ihneÄ';
$labels['messagesdisplaying'] = 'Zobrazovanie správ';
@@ -422,7 +462,7 @@ $labels['afternseconds'] = 'po $n sekundách';
$labels['reqmdn'] = 'Vždy požadovaÅ¥ doruÄenku';
$labels['reqdsn'] = 'Vždy vyžadovaÅ¥ potvrdenie o doruÄení správy';
$labels['replysamefolder'] = 'UmietniÅ¥ odpoveÄ do adresára, kde je umiestnená správa, na ktorú sa odpovedalo';
-$labels['defaultabook'] = 'Predvolený adresár';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'Vynechať alternatívnu emailovú adresu pri automatickom dopĺňaní';
$labels['listnamedisplay'] = 'Zobraziť kontakt ako';
$labels['spellcheckbeforesend'] = 'Skontrolovať pravopis pred odoslaním správy';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'IgnorovaÅ¥ slová s Äíslami';
$labels['spellcheckignorecaps'] = 'Ignorovať slová písané veľkými písmenami';
$labels['addtodict'] = 'Pridať do slovníka';
$labels['mailtoprotohandler'] = 'Zaregistrovať handler pre odkazy „mailto:“';
-$labels['standardwindows'] = 'S vyskakovacími oknami pracovať ako so štandardnými oknami';
$labels['forwardmode'] = 'Preposielanie správ';
$labels['inline'] = 'v tele spávy';
$labels['asattachment'] = 'ako príloha';
+
$labels['folder'] = 'PrieÄinok';
$labels['folders'] = 'PrieÄinky';
$labels['foldername'] = 'Názov prieÄinku';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Typ prieÄinka';
$labels['personalfolder'] = 'Súkromný prieÄinok';
$labels['otherfolder'] = 'Iné užívateľove adresáre';
$labels['sharedfolder'] = 'Verejný adresár';
+
$labels['sortby'] = 'Triediť podľa';
$labels['sortasc'] = 'Triediť vzostupne';
$labels['sortdesc'] = 'Triediť zostupne';
$labels['undo'] = 'Vrátiť';
+
$labels['installedplugins'] = 'Nainštalované zásuvné moduly';
$labels['plugin'] = 'Zásuvný modul';
$labels['version'] = 'Verzia';
$labels['source'] = 'Zdroj';
$labels['license'] = 'Licencia';
$labels['support'] = 'Získať podporu';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'AngliÄtina';
$labels['westerneuropean'] = 'Západná Európa';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'VietnamÄina';
$labels['japanese'] = 'JaponÄina';
$labels['korean'] = 'KorejÄina';
$labels['chinese'] = 'Čínština';
+
?>
diff --git a/program/localization/sk_SK/messages.inc b/program/localization/sk_SK/messages.inc
index 71d5d52c1..a6f319db6 100644
--- a/program/localization/sk_SK/messages.inc
+++ b/program/localization/sk_SK/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Vyskytla sa chyba!';
$messages['loginfailed'] = 'Chybné prihlásenie';
$messages['cookiesdisabled'] = 'Váš internetový prehliadaÄ nepodporuje cookies, ktoré sú potrebné pre prihlásenie';
@@ -26,14 +28,14 @@ $messages['dberror'] = 'Databázová chyba!';
$messages['requesttimedout'] = 'Čas požiadavky vypršal';
$messages['errorreadonly'] = 'Nemožno vykonaÅ¥ operáciu. Adresár je len na Äítanie';
$messages['errornoperm'] = 'Nemožno vykonať operáciu. Prístup odmietnutý';
-$messages['erroroverquota'] = 'Nemožno vykonať operáciu. Na disku nie je dostatok voľného miesta.';
-$messages['erroroverquotadelete'] = 'Na disku nie je dostatok voľného miesta. Vymažte nejakú správu pomocou klávesov SHIFT+DEL.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Chybný požiadavek. Žiadne údaje neboli uložené.';
$messages['invalidhost'] = 'Neplatný názov servera';
$messages['nomessagesfound'] = 'Vo Vašej schránke nie je žiadna správa';
$messages['loggedout'] = 'Odhlásenie prebehlo úspešne. Dovidenia.';
$messages['mailboxempty'] = 'Schránka je prázdna';
-$messages['refreshing'] = 'Obnovuje sa...';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'NaÄítava sa...';
$messages['uploading'] = 'Nahrávám súbor...';
$messages['uploadingmany'] = 'Nahrávam súbory...';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Správa bola úspešne odoslaná';
$messages['savingmessage'] = 'Správa sa ukladá...';
$messages['messagesaved'] = 'Správa bola uložená medzi Rozpísané správy';
$messages['successfullysaved'] = 'Úspešne uložená';
-$messages['savingresponse'] = 'Ukladanie textu odpovede...';
-$messages['deleteresponseconfirm'] = 'Naozaj chcete vymazať text odpovede?';
$messages['addedsuccessfully'] = 'Kontakt bol pridaný do adresára';
$messages['contactexists'] = 'Kontakt s touto e-mailovou adresou už existuje';
$messages['contactnameexists'] = 'Kontakt s rovnakým menom už existuje.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'Požadovaný kontakt nebol nájdený';
$messages['contactsearchonly'] = 'Zadaj nejaký vyhľadávací výraz pre hľadanie kontaktov.';
$messages['sendingfailed'] = 'Odosielanie správy zlyhalo';
$messages['senttooquickly'] = 'PoÄkajte $sec sekúnd pred odoslaním tejto správy';
-$messages['errorsavingsent'] = 'PoÄas ukladania odoslanej správy nastala chyba.';
-$messages['errorsaving'] = 'PoÄas ukladania nastala chyba.';
+$messages['errorsavingsent'] = 'Pri ukladaní odoslanej správy nastala chyba';
+$messages['errorsaving'] = 'Vyskytla sa chyba pri ukladaní';
$messages['errormoving'] = 'Správa sa nedá presunúť';
$messages['errorcopying'] = 'Správa sa nedá skopírovať';
$messages['errordeleting'] = 'Správa sa nedá zmazať';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Odstraňuje sa formátovanie správy...';
$messages['messageopenerror'] = 'Nedá sa naÄítaÅ¥ správa zo servera';
$messages['fileuploaderror'] = 'NaÄítanie súboru nebolo úspeÅ¡né';
$messages['filesizeerror'] = 'NaÄítavaný súbor prekroÄil maximálnu veľkosÅ¥ $size';
-$messages['copysuccess'] = 'PoÄet úspeÅ¡ne skopírovaných kontaktov: $nr.';
-$messages['movesuccess'] = 'PoÄet úspeÅ¡ne presunutých kontaktov: $nr.';
-$messages['copyerror'] = 'Kontakty nie je možné kopírovať.';
-$messages['moveerror'] = 'Kontakty nemožno presúvať.';
+$messages['copysuccess'] = 'Úspešne sa skopírovalo $nr adries';
+$messages['copyerror'] = 'Nedá sa kopírovať žiadna adresa';
$messages['sourceisreadonly'] = 'Tento zdroj adries je len na Äítanie';
$messages['errorsavingcontact'] = 'Nedá sa uložiť adresa kontaktu';
$messages['movingmessage'] = 'Správa sa presúva...';
$messages['copyingmessage'] = 'Správa sa kopíruje...';
$messages['copyingcontact'] = 'Kopírujem kontakt(y)';
-$messages['movingcontact'] = 'Presúvanie kontaktu (kontaktov)...';
$messages['deletingmessage'] = 'Mažem správu(y)...';
$messages['markingmessage'] = 'OznaÄujem správu(y)...';
$messages['addingmember'] = 'Pridávam kontakt(y) do skupiny...';
@@ -126,11 +123,9 @@ $messages['contactaddedtogroup'] = 'Kontakty boli úspešne presunuty do tejto s
$messages['contactremovedfromgroup'] = 'Kontakty boli úspešne odstráneny z tejto skupiny';
$messages['nogroupassignmentschanged'] = 'Priradenia do skupín neboli zmenené.';
$messages['importwait'] = 'Prebieha import, poÄkajte ...';
-$messages['importformaterror'] = 'Import nebol úspešný! Odoslaný súbor nie je platným súborom, z ktorého je možné vykonať import údajov.';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>ÚspeÅ¡ne sa naÄítalo $inserted kontaktov, preskoÄilo sa $skipped existujúcich záznamov</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>PreskoÄených $skipped existujúcich záznamov</b>';
-$messages['importmessagesuccess'] = 'PoÄet úspeÅ¡ne naimportovaných správ: $nr';
-$messages['importmessageerror'] = 'Importovanie bolo neúspeÅ¡né! Odoslaný súbor nie je platným súborom pre správu alebo poÅ¡tový prieÄinok';
$messages['opnotpermitted'] = 'Operácia nie je povolená!';
$messages['nofromaddress'] = 'Zvolená identita neobsahuje e-mailovú adresu';
$messages['editorwarning'] = 'Prepnutie na editor obyÄajného textu spôsobí stratu formátovania. Chcete napriek tomu pokraÄovaÅ¥?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'Chyba SMTP: $msg';
$messages['emailformaterror'] = 'Neplatná e-mailová adresa: $email';
$messages['toomanyrecipients'] = 'PríliÅ¡ veľa príjemcov. ZmenÅ¡ite poÄet príjemcov na $max.';
$messages['maxgroupmembersreached'] = 'PoÄet Älenov skupiny dosiahol maxima z $max';
-$messages['internalerror'] = 'Došlo k internej chybe systému. Prosím skúste to ešte raz.';
+$messages['internalerror'] = 'Došlo k internej chybe. Skúste to znova';
$messages['contactdelerror'] = 'Nemôžem vymazať kontakt(y)';
$messages['contactdeleted'] = 'Kontakt(y) bol vymazaný';
$messages['contactrestoreerror'] = 'Nemôžem obnoviť zmazané kontakty';
@@ -170,6 +165,7 @@ $messages['invalidimageformat'] = 'Zlý formát obrázku';
$messages['mispellingsfound'] = 'V správe boli nájdené pravopisné chyby';
$messages['parentnotwritable'] = 'Nemôžem vytvoriť/presunúť adresár do zvoleného nadradeného adresára. Nemáte oprávnenia na zmenu.';
$messages['messagetoobig'] = 'Časť správy je príliš veľká na spracovanie.';
-$messages['attachmentvalidationerror'] = 'UPOZORNENIE! Táto príloha je podozrivá, pretože jej typ sa nezhoduje s typom uvedeným v správe. Ak odosielateľovi prílohy nedôverujete, nemali by ste prílohu otváraÅ¥. Môže totiž obsahovaÅ¥ Å¡kodlivý obsah.<br/><br/><em>OÄakávaná hodnota: $expected; nájdená hodnota: $detected</em>';
-$messages['noscriptwarning'] = 'Upozornenie: Táto webmailová služba vyžaduje Javascript! Ak ju chcete používaÅ¥, prosím aktivujte Javascript v nastaveniach svojho prehliadaÄa.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/sl_SI/labels.inc b/program/localization/sl_SI/labels.inc
index f1e9010d4..6b9ba2d41 100644
--- a/program/localization/sl_SI/labels.inc
+++ b/program/localization/sl_SI/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Dobrodošli v $product';
$labels['username'] = 'Uporabniško ime';
$labels['password'] = 'Geslo';
$labels['server'] = 'Strežnik';
$labels['login'] = 'Prijava';
+
+// taskbar
$labels['logout'] = 'Odjava';
$labels['mail'] = 'E-Pošta';
$labels['settings'] = 'Osebne nastavitve';
$labels['addressbook'] = 'Stiki';
+
+// mailbox names
$labels['inbox'] = 'Prejeto';
$labels['drafts'] = 'Osnutki';
$labels['sent'] = 'Poslano';
$labels['trash'] = 'Smeti';
$labels['junk'] = 'Nezaželena sporoÄila';
-$labels['show_real_foldernames'] = 'Prikaži prava imena za posebne mape';
+
+// message listing
$labels['subject'] = 'Zadeva';
$labels['from'] = 'Pošiljatelj';
$labels['sender'] = 'Pošiljatelj';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioriteta';
$labels['organization'] = 'Organizacija';
$labels['readstatus'] = 'Status';
$labels['listoptions'] = 'Možnosti prikaza...';
+
$labels['mailboxlist'] = 'Mape';
$labels['messagesfromto'] = 'SporoÄila $from do $to od $count';
$labels['threadsfromto'] = 'Nit $from do $to od $count';
$labels['messagenrof'] = 'SporoÄilo $nr od $count';
$labels['fromtoshort'] = '$from – $to od $count';
+
$labels['copy'] = 'Kopiraj';
$labels['move'] = 'Premakni';
$labels['moveto'] = 'Premakni v...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Prenesi';
$labels['open'] = 'Odpri';
$labels['showattachment'] = 'Prikaži';
$labels['showanyway'] = 'Prikaži';
+
$labels['filename'] = 'Ime datoteke';
$labels['filesize'] = 'Velikost datoteke';
+
$labels['addtoaddressbook'] = 'Dodaj med stike';
+
+// weekdays short
$labels['sun'] = 'ned';
$labels['mon'] = 'pon';
$labels['tue'] = 'tor';
@@ -66,6 +81,8 @@ $labels['wed'] = 'sre';
$labels['thu'] = 'Äet';
$labels['fri'] = 'pet';
$labels['sat'] = 'sob';
+
+// weekdays long
$labels['sunday'] = 'nedelja';
$labels['monday'] = 'ponedeljek';
$labels['tuesday'] = 'torek';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'sreda';
$labels['thursday'] = 'Äetrtek';
$labels['friday'] = 'petek';
$labels['saturday'] = 'sobota';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'dec';
+
+// months long
$labels['longjan'] = 'januar';
$labels['longfeb'] = 'februar';
$labels['longmar'] = 'marec';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'september';
$labels['longoct'] = 'oktober';
$labels['longnov'] = 'november';
$labels['longdec'] = 'december';
+
$labels['today'] = 'Danes';
+
+// toolbar buttons
$labels['refresh'] = 'Osveži';
$labels['checkmail'] = 'Preglej nova sporoÄila';
$labels['compose'] = 'Sestavi sporoÄilo';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'VeÄ možnosti...';
$labels['more'] = 'VeÄ';
$labels['back'] = 'Nazaj';
$labels['options'] = 'Možnosti';
+
$labels['select'] = 'Izberi';
$labels['all'] = 'Vse';
$labels['none'] = 'Brez';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'Trenutna stran';
$labels['unread'] = 'Neprebrano';
$labels['flagged'] = 'OznaÄeno';
$labels['unanswered'] = 'NeoznaÄeno';
-$labels['withattachment'] = 'S priponko';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Izbrisano';
$labels['undeleted'] = 'Ni izbrisano';
$labels['invert'] = 'Zamenjaj';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Razširi vse';
$labels['expand-unread'] = 'Razširi neprebrano';
$labels['collapse-all'] = 'Zloži vse';
$labels['threaded'] = 'Nitno';
+
$labels['autoexpand_threads'] = 'Razširi niti';
$labels['do_expand'] = 'vse niti';
$labels['expand_only_unread'] = 'samo niti z neprebranimi sporoÄili';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Seznam stolpcev';
$labels['listsorting'] = 'Urejanje stolpcev';
$labels['listorder'] = 'Vrstni red';
$labels['listmode'] = 'NaÄin prikaza seznama';
+
$labels['folderactions'] = 'Upravljanje map...';
$labels['compact'] = 'Stisni';
$labels['empty'] = 'Izprazni';
-$labels['importmessages'] = 'Uvozi sporoÄila';
+
$labels['quota'] = 'Poraba prostora';
$labels['unknown'] = 'neznana';
$labels['unlimited'] = 'neomejena';
+
$labels['quicksearch'] = 'Hitri iskalnik';
$labels['resetsearch'] = 'PrekliÄi iskanje';
$labels['searchmod'] = 'Spremembe iskanja';
$labels['msgtext'] = 'Celotno sporoÄilo';
$labels['body'] = 'Vsebina sporoÄila';
-$labels['type'] = 'Tip';
-$labels['namex'] = 'Ime';
+
$labels['openinextwin'] = 'Odpri v novem oknu';
$labels['emlsave'] = 'Prenos datoteke (.eml)';
-$labels['changeformattext'] = 'Prikaži kot golo besedilo';
-$labels['changeformathtml'] = 'Prikaži v formatu HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Uredi kot novo';
$labels['send'] = 'Pošlji';
$labels['sendmessage'] = 'PoÅ¡lji sporoÄilo';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Potrdilo prejemnika';
$labels['dsn'] = 'Status dostave sporoÄila';
$labels['mailreplyintro'] = '$date, je $sender napisal';
$labels['originalmessage'] = 'Izvorno sporoÄilo';
+
$labels['editidents'] = 'Uredi identitete';
$labels['spellcheck'] = 'ÄŒrkovanje';
$labels['checkspelling'] = 'Preglej pravopis';
$labels['resumeediting'] = 'Nadaljuj z urejanjem';
$labels['revertto'] = 'Razveljavi';
-$labels['responses'] = 'Odgovori';
-$labels['insertresponse'] = 'Vnesi odgovor';
-$labels['manageresponses'] = 'Uredi odgovore';
-$labels['savenewresponse'] = 'Shrani nove odgovore';
-$labels['editresponses'] = 'Uredi odgovore';
-$labels['editresponse'] = 'Uredi odgovor';
-$labels['responsename'] = 'Ime';
-$labels['responsetext'] = 'Tekst za odgovor';
+
$labels['attach'] = 'Pripni';
$labels['attachments'] = 'Priponke';
$labels['upload'] = 'Naloži';
$labels['uploadprogress'] = '$percent ($current od $total)';
$labels['close'] = 'Zapri';
$labels['messageoptions'] = 'Možnosti';
+
$labels['low'] = 'Nizka';
$labels['lowest'] = 'Najnižja';
$labels['normal'] = 'ObiÄajna';
$labels['high'] = 'Visoka';
$labels['highest'] = 'Najvišja';
+
$labels['nosubject'] = '(brez naslova)';
$labels['showimages'] = 'Prikaži slike';
$labels['alwaysshow'] = 'Vedno prikaži slike od $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'To je osnutek sporoÄila.';
$labels['andnmore'] = '$nr veÄ...';
$labels['togglemoreheaders'] = 'Prikaži veÄ glav sporoÄila';
$labels['togglefullheaders'] = 'Preklopi na neobdelan zapis glave sporoÄila';
+
$labels['htmltoggle'] = 'Obogateno besedilo (HTML)';
$labels['plaintoggle'] = 'Samo besedilo';
$labels['savesentmessagein'] = 'Shrani poslana sporoÄila v';
$labels['dontsave'] = 'Ne shrani';
$labels['maxuploadsize'] = 'NajveÄja dovoljena velikost datoteke je $size';
+
$labels['addcc'] = 'Dodaj Kp';
$labels['addbcc'] = 'Dodaj Skp';
$labels['addreplyto'] = 'Dodaj naslov za odgovor';
$labels['addfollowupto'] = 'Dodaj naslov za odgovor';
+
+// mdn
$labels['mdnrequest'] = 'PoÅ¡iljatelj tega sporoÄila je zaprosil za potrdilo o branju. Želite o tem obvestiti poÅ¡iljatelja?';
$labels['receiptread'] = 'Potrdilo o branju';
$labels['yourmessage'] = 'To je potrdilo o branju.';
$labels['receiptnote'] = 'Pozor: to je samo potrdilo, da je bilo vaÅ¡e sporoÄilo prikazano na prejemnikovem raÄunalniku. To Å¡e ne pomeni, da je prejemnik prebral ali razumel vsebino vaÅ¡ega sporoÄila.';
+
+// address boook
$labels['name'] = 'Ime za prikaz';
$labels['firstname'] = 'Ime';
$labels['surname'] = 'Priimek';
@@ -270,6 +301,7 @@ $labels['search'] = 'Iskanje';
$labels['advsearch'] = 'Napredno iskanje';
$labels['advanced'] = 'Napredno';
$labels['other'] = 'Ostalo';
+
$labels['typehome'] = 'Doma';
$labels['typework'] = 'Služba';
$labels['typeother'] = 'Ostalo';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'PomoÄ';
$labels['typehomepage'] = 'DomaÄa stran';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Dodaj polje...';
$labels['addcontact'] = 'Dodaj izbrane stike v imenik';
$labels['editcontact'] = 'Uredi vizitko';
$labels['contacts'] = 'Stiki';
$labels['contactproperties'] = 'Lastnosti stika';
$labels['personalinfo'] = 'Osebni podatki';
+
$labels['edit'] = 'Uredi';
$labels['cancel'] = 'PrekliÄi';
$labels['save'] = 'Shrani';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Preimenuj';
$labels['addphoto'] = 'Dodaj';
$labels['replacephoto'] = 'Zamenjaj';
$labels['uploadphoto'] = 'Naloži sliko';
+
$labels['newcontact'] = 'Dodaj vizitko';
$labels['deletecontact'] = 'Izbriši izbrane vizitke';
$labels['composeto'] = 'Sestavi sporoÄilo za';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Ustvari novo skupino stikov';
$labels['grouprename'] = 'Preimenuj skupino';
$labels['groupdelete'] = 'Izbriši skupino';
$labels['groupremoveselected'] = 'Odstrani izbrane stike iz skupine';
+
$labels['previouspage'] = 'Prejšnja stran';
$labels['firstpage'] = 'Prva stran';
$labels['nextpage'] = 'Naslednja stran';
$labels['lastpage'] = 'Zadnja stran';
+
$labels['group'] = 'Skupina';
$labels['groups'] = 'Skupine';
-$labels['listgroup'] = 'IzpiÅ¡i seznam Älanov skupine';
$labels['personaladrbook'] = 'Stiki';
+
$labels['searchsave'] = 'Shrani iskanje';
$labels['searchdelete'] = 'Izbriši iskanje';
+
$labels['import'] = 'Uvozi';
$labels['importcontacts'] = 'Uvozi stike';
$labels['importfromfile'] = 'Uvozi iz datoteke:';
-$labels['importtarget'] = 'Dodaj stike v';
+$labels['importtarget'] = 'Dodaj nove stike v imenik:';
$labels['importreplace'] = 'Zamenjaj celoten imenik';
-$labels['importgroups'] = 'Vnesi skupinske zadolžitve';
-$labels['importgroupsall'] = 'Vse (ustvari skupine, Äe je potrebno)';
-$labels['importgroupsexisting'] = 'Samo za obstojeÄe skupine';
$labels['importdesc'] = 'Stike lahko naložite iz obstojeÄega imenika. <br/>Trenutno je podprt uvoz stikov v zapisu <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ali v CSV (z vejico loÄene vrednosti) zapisu.';
$labels['done'] = 'DokonÄano';
+
+// settings
$labels['settingsfor'] = 'Nastavitve za';
$labels['about'] = 'Vizitka';
$labels['preferences'] = 'Nastavitve';
$labels['userpreferences'] = 'Uporabniške nastavitve';
$labels['editpreferences'] = 'Uredi uporabniške nastavitve';
+
$labels['identities'] = 'Identitete';
$labels['manageidentities'] = 'Upravljaj identitete za ta raÄun';
$labels['newidentity'] = 'Nova identiteta';
+
$labels['newitem'] = 'Nov predmet';
$labels['edititem'] = 'Uredi predmet';
+
$labels['preferhtml'] = 'Prednostno HTML';
$labels['defaultcharset'] = 'Privzeto kodiranje znakov';
$labels['htmlmessage'] = 'HTML sporoÄilo';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'Sestavi sporoÄila z obogatenim besedilom';
$labels['htmlonreply'] = 'le pri odgovoru na sporoÄila z obogatenim besedilom';
$labels['htmlonreplyandforward'] = 'le pri posredovanju ali odgovoru na sporoÄila z obogatenim besedilom';
$labels['htmlsignature'] = 'Podpis z obogatenim besedilom';
-$labels['showemail'] = 'Prikaži e-naslove poleg imen';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Prikaži predogled';
$labels['skin'] = 'Tema uporabniškega vmesnika';
$labels['logoutclear'] = 'Izprazni mapo Smeti ob odjavi';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ne upoštevaj besed, ki vsebujejo številke';
$labels['spellcheckignorecaps'] = 'Ne upoÅ¡tevaj besed, ki vsebujejo samo velike Ärke';
$labels['addtodict'] = 'Dodaj v slovar';
$labels['mailtoprotohandler'] = 'Registriraj upravljavca protokola za e-naslov: povezave';
-$labels['standardwindows'] = 'Prikaži pojavna okna kot obiÄajna';
$labels['forwardmode'] = 'Posredovanje sporoÄil';
$labels['inline'] = 'medvrstiÄno';
$labels['asattachment'] = 'Kot priponka';
+
$labels['folder'] = 'Mapa';
$labels['folders'] = 'Mape';
$labels['foldername'] = 'Ime mape';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Tip mape';
$labels['personalfolder'] = 'Zasebna mapa';
$labels['otherfolder'] = 'Mapa drugega uporabnika';
$labels['sharedfolder'] = 'Javna mapa';
+
$labels['sortby'] = 'Uredi po';
$labels['sortasc'] = 'Uredi naraÅ¡ÄajoÄe';
$labels['sortdesc'] = 'Uredi padajoÄe';
$labels['undo'] = 'PrekliÄi';
+
$labels['installedplugins'] = 'NameÅ¡Äeni vtiÄniki';
$labels['plugin'] = 'VtiÄnik';
$labels['version'] = 'RazliÄica';
$labels['source'] = 'Vir';
$labels['license'] = 'Licenca';
$labels['support'] = 'Podpora';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Angleško';
$labels['westerneuropean'] = 'Zahodnoevropsko';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamsko';
$labels['japanese'] = 'Japonsko';
$labels['korean'] = 'Korejsko';
$labels['chinese'] = 'Kitajsko';
+
?>
diff --git a/program/localization/sl_SI/messages.inc b/program/localization/sl_SI/messages.inc
index 3d1ea677c..081d912c1 100644
--- a/program/localization/sl_SI/messages.inc
+++ b/program/localization/sl_SI/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Prišlo je do napake!';
$messages['loginfailed'] = 'Prijava ni uspela';
$messages['cookiesdisabled'] = 'Vaš spletni brskalnik ne sprejema piškotkov.';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'SporoÄilo je bilo uspeÅ¡no poslano.';
$messages['savingmessage'] = 'Shranjevanje sporoÄila...';
$messages['messagesaved'] = 'SporoÄilo je bilo shranjeno v Osnutke';
$messages['successfullysaved'] = 'Uspešno shranjeno.';
-$messages['savingresponse'] = 'Shranjevanje odgovora...';
-$messages['deleteresponseconfirm'] = 'Ste prepriÄani, da želite izbrisati ta odgovor?';
$messages['addedsuccessfully'] = 'Stik je bil uspešno dodan v imenik.';
$messages['contactexists'] = 'Stik s tem elektronskim naslovom že obstaja.';
$messages['contactnameexists'] = 'Stik s tem imenom že obstaja';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Odstranjevanje nastavitev oblikovanja...';
$messages['messageopenerror'] = 'SporoÄila ni bilo mogoÄe prenesti iz strežnika';
$messages['fileuploaderror'] = 'Prenos datoteke je spodletel';
$messages['filesizeerror'] = 'Naložena datoteka presega najveÄjo dovoljeno velikost $size';
-$messages['copysuccess'] = 'Uspešno ste kopirali $nr stikov.';
-$messages['movesuccess'] = 'Uspešno ste premaknili $nr stikov.';
-$messages['copyerror'] = 'Stikov ni bilo mogoÄe kopirati.';
-$messages['moveerror'] = 'Stikov ni bilo mogoÄe premakniti.';
+$messages['copysuccess'] = '$nr naslovov je bilo uspešno prenešenih';
+$messages['copyerror'] = 'Nobenih naslovov ni bilo mogoÄe kopirati';
$messages['sourceisreadonly'] = 'Ta naslov je na voljo samo za branje';
$messages['errorsavingcontact'] = 'Stika ni bilo mogoÄe shraniti';
$messages['movingmessage'] = 'Premikanje sporoÄila...';
$messages['copyingmessage'] = 'Kopiranje sporoÄila...';
$messages['copyingcontact'] = 'Kopiranje stika/ov';
-$messages['movingcontact'] = 'Premikanje stika(ov)...';
$messages['deletingmessage'] = 'Brisanje sporoÄil/a';
$messages['markingmessage'] = 'OznaÄevanje sporoÄil/a';
$messages['addingmember'] = 'Dodajanje stika/ov v skupino...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Uvažanje poteka...';
$messages['importformaterror'] = 'Uvoz ni uspel! Uvožena datoteka ni pravega formata.';
$messages['importconfirm'] = '<b>Uspešno uvoženi $inserted stiki, $skipped stikov že obstaja v imeniku</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>PreskoÄeni že obstojeÄi vnosi $skipped </b>';
-$messages['importmessagesuccess'] = 'UpeÅ¡no ste uvozili $nr sporoÄil.';
-$messages['importmessageerror'] = 'Uvoz je spodletel. Naložena datoteka ni veljavno sporoÄilo ali poÅ¡tna datoteka';
$messages['opnotpermitted'] = 'Operacija ni dovoljena.';
$messages['nofromaddress'] = 'V izbrani identiteti manjka elektronski naslov.';
$messages['editorwarning'] = 'Preklop v sploÅ¡en urejevalnik onemogoÄa uporabo izbranih nastavitev oblikovanja. Želite nadaljevati?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Podmape v tej mapi ni bilo mogoÄe ustvariti/p
$messages['messagetoobig'] = 'SporoÄilo je preveliko za obdelavo.';
$messages['attachmentvalidationerror'] = 'OPOZORILO! Priponka vsebuje sumljivo vsebino, saj tip priponke ne ustreza tipu, doloÄenemu v sporoÄilu. ÄŒe ne zaupate poÅ¡iljatelju, priponke v brskalniku ne odpirajte, saj lahko vsebuje zlonamerno vsebino. <br/><br/><em>PriÄakovano: $expected; Najdeno: $detected</em>';
$messages['noscriptwarning'] = 'Opozorilo: Ta spletna stran zahteva Javascript! Za uporabo jo vkljuÄite v nastavitvah vaÅ¡ega brskalnika.';
+
?>
diff --git a/program/localization/sq_AL/labels.inc b/program/localization/sq_AL/labels.inc
index fa822a728..ba9b559d8 100644
--- a/program/localization/sq_AL/labels.inc
+++ b/program/localization/sq_AL/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Mirëseerdhe te $product';
$labels['username'] = 'Përdoruesi';
$labels['password'] = 'Fjalëkalimi';
$labels['server'] = 'Serveri';
$labels['login'] = 'Hyr';
+
+// taskbar
$labels['logout'] = 'Dil';
$labels['mail'] = 'Mesazhet';
$labels['settings'] = 'Konfigurimi Personal';
$labels['addressbook'] = 'Libri i Adresave';
+
+// mailbox names
$labels['inbox'] = 'Ardhjet';
$labels['drafts'] = 'Drafte';
$labels['sent'] = 'Dërguar';
$labels['trash'] = 'Fshirë';
$labels['junk'] = 'Reklama';
+
+// message listing
$labels['subject'] = 'Tema';
$labels['from'] = 'Dërguesi';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Marrësi';
$labels['cc'] = 'Kopje';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Reply-To';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Data';
$labels['size'] = 'Madhësia';
$labels['priority'] = 'Përparësia';
$labels['organization'] = 'Organizata';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Kutitë';
$labels['messagesfromto'] = 'Mesazhet $from në $to nga $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Mesazhi $nr nga $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Kopje';
+$labels['move'] = 'Move';
$labels['moveto'] = 'ço te...';
$labels['download'] = 'shkarko';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Emër skedari';
$labels['filesize'] = 'Madhësi skedari';
+
$labels['addtoaddressbook'] = 'Shto në librin e adresave';
+
+// weekdays short
$labels['sun'] = 'Dje';
$labels['mon'] = 'Hën';
$labels['tue'] = 'Mar';
@@ -55,6 +81,8 @@ $labels['wed'] = 'Mër';
$labels['thu'] = 'Enj';
$labels['fri'] = 'Pre';
$labels['sat'] = 'Sht';
+
+// weekdays long
$labels['sunday'] = 'e djelë';
$labels['monday'] = 'e hënë';
$labels['tuesday'] = 'e martë';
@@ -62,12 +90,50 @@ $labels['wednesday'] = 'e mërkurë';
$labels['thursday'] = 'e enjte';
$labels['friday'] = 'e premte';
$labels['saturday'] = 'e shtunë';
+
+// months short
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'May';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+
+// months long
+$labels['longjan'] = 'January';
+$labels['longfeb'] = 'February';
+$labels['longmar'] = 'March';
+$labels['longapr'] = 'April';
+$labels['longmay'] = 'May';
+$labels['longjun'] = 'June';
+$labels['longjul'] = 'July';
+$labels['longaug'] = 'August';
+$labels['longsep'] = 'September';
+$labels['longoct'] = 'October';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'December';
+
$labels['today'] = 'sot';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Shiko për mesazhe të reja';
$labels['compose'] = 'Shkruaj një mesazh';
$labels['writenewmessage'] = 'Krijo një mesazh të ri';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Ktheji përgjigje mesazhit';
$labels['replytoallmessage'] = 'Ktheji përgjigje dërguesit dhe të gjithë marrësve';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Pasoje mesazhin';
$labels['deletemessage'] = 'Fshije mesazhin';
$labels['movemessagetotrash'] = 'Hidhe mesazhin në kosh';
@@ -78,94 +144,338 @@ $labels['nextmessage'] = 'Shfaq mesazhin pasardhës';
$labels['lastmessage'] = 'Shfaq mesazhin e fundit';
$labels['backtolist'] = 'Kthehu te lista e mesazheve';
$labels['viewsource'] = 'Shfaq tekstin';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'Shëno mesazhet';
$labels['markread'] = 'Si të lexuara';
$labels['markunread'] = 'Si të palexuara';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'Zgjidh';
$labels['all'] = 'Të gjitha';
$labels['none'] = 'Asnjë';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Palexuar';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'Asnjë';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'Zvogëlo';
$labels['empty'] = 'Boshatis';
+
$labels['quota'] = 'Përdorimi i diskut';
$labels['unknown'] = 'i panjohur';
$labels['unlimited'] = 'i pakufizuar';
+
$labels['quicksearch'] = 'Kërkim i shpejtë';
$labels['resetsearch'] = 'Pastro kërkimin';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Dërgoje mesazhin tani';
$labels['savemessage'] = 'Ruaje si draft';
$labels['addattachment'] = 'Bashkangjit një skedar';
$labels['charset'] = 'Bashkësi shkronjash';
$labels['editortype'] = 'Lloj editori';
$labels['returnreceipt'] = 'Njoftim marrje';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Kontroll gabimesh';
$labels['resumeediting'] = 'Vazhdo editimin';
$labels['revertto'] = 'Ktheje te';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Bashkangjitjet';
$labels['upload'] = 'Ngarko';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Mbyll';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'I ulët';
$labels['lowest'] = 'Më i ulëti';
$labels['normal'] = 'Normal';
$labels['high'] = 'I lartë';
$labels['highest'] = 'Më i larti';
+
$labels['nosubject'] = '(pa subjekt)';
$labels['showimages'] = 'Shfaq imazhet';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'TEXT';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Shto Cc';
$labels['addbcc'] = 'Shto Bcc';
$labels['addreplyto'] = 'Shto Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Dërguesi i këtij mesazhi ka kërkuar që të njoftohet kur ju të lexoni këtë mesazh. Dëshironi ta njoftoni dërguesin?';
$labels['receiptread'] = 'Njoftim Leximi';
$labels['yourmessage'] = 'Ky është një njoftim leximi për mesazhin tuaj';
$labels['receiptnote'] = 'Shënim: Ky njoftim tregon vetëm që mesazhi u shfaq në kompjuterin e marrësit. Nuk ka siguri që marrësi e ka lexuar ose e ka kuptuar përmbajtjen e mesazhit.';
+
+// address boook
$labels['name'] = 'Emri që thirret';
$labels['firstname'] = 'Emri';
$labels['surname'] = 'Mbiemri';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'E-Mail';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'Shto një kontakt të ri';
$labels['editcontact'] = 'Ndrysho kontaktin';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Ndrysho';
$labels['cancel'] = 'Anullo';
$labels['save'] = 'Ruaj';
$labels['delete'] = 'Fshi';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Krijo nje kartë të re kontakti';
$labels['deletecontact'] = 'Fshi kontaktet e zgjedhura';
$labels['composeto'] = 'Shkruaj email për';
$labels['contactsfromto'] = 'Kontaktet $from në $to nga $count';
$labels['print'] = 'Shtyp';
$labels['export'] = 'Eksporto';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Shfaq grupin e mëparshëm';
$labels['firstpage'] = 'Shfaq grupin e parë';
$labels['nextpage'] = 'Shfaq grupin tjetër';
$labels['lastpage'] = 'Shfaq grupin e fundit';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Grupet';
$labels['personaladrbook'] = 'Adresat Personale';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'Konfigurimet për';
+$labels['about'] = 'About';
$labels['preferences'] = 'Preferencat';
$labels['userpreferences'] = 'Preferencat e përdoruesit';
$labels['editpreferences'] = 'Ndrysho preferencat e përdoruesit';
+
$labels['identities'] = 'Identitetet';
$labels['manageidentities'] = 'Manaxho identitetet per këtë llogari';
$labels['newidentity'] = 'Identitet i ri';
+
$labels['newitem'] = 'Element i ri';
$labels['edititem'] = 'Ndrysho element';
+
$labels['preferhtml'] = 'Shfaq HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Mesazh HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Data të këndshme';
$labels['setdefault'] = 'Bëje identitet kryesor';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Gjuha';
$labels['timezone'] = 'Brezi orar';
$labels['pagesize'] = 'Rreshtat për faqe';
$labels['signature'] = 'Nënshkrim';
$labels['dstactive'] = 'Ndryshim ore';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Shkruaj mesazhe HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Nënshkrimi HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Shiko si duket';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'Ruaje automatikisht si draft';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'kurrë';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Kutia';
$labels['folders'] = 'Kutitë';
$labels['foldername'] = 'Emër kutie';
@@ -174,7 +484,55 @@ $labels['messagecount'] = 'Mesazhe';
$labels['create'] = 'Krijo';
$labels['createfolder'] = 'Krijo kuti të re';
$labels['managefolders'] = 'Sistemo kutitë';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Rradhit sipas';
$labels['sortasc'] = 'Rradhitje rritëse';
$labels['sortdesc'] = 'Rradhitje zbritëse';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/sq_AL/messages.inc b/program/localization/sq_AL/messages.inc
index d4b981318..56bb9feb2 100644
--- a/program/localization/sq_AL/messages.inc
+++ b/program/localization/sq_AL/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Hyrja dështoi';
$messages['cookiesdisabled'] = 'Shfletuesi juaj nuk i pranon sheqerkat';
$messages['sessionerror'] = 'Sesioni juaj është i pavlefshëm ose i ka kaluar afati';
$messages['storageerror'] = 'Lidhja me serverin IMAP dështoi';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Nuk ka mesazhe në këtë kuti postare';
$messages['loggedout'] = 'Sesionin e mbyllët me sukses. Mirupafshim!';
$messages['mailboxempty'] = 'Kutia postare është bosh';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Po ngarkohet...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Po ngarkohen të dhëna...';
$messages['checkingmail'] = 'Po shoh për mesazhe të reja...';
$messages['sendingmessage'] = 'Po dërgoj mesazhin...';
@@ -32,42 +48,124 @@ $messages['messagesaved'] = 'Mesazhi u ruajt te kutia Drafte';
$messages['successfullysaved'] = 'U ruajt me sukses';
$messages['addedsuccessfully'] = 'Kontakti u shtua me sukses në librin e adresave';
$messages['contactexists'] = 'Këtë adresë e-mail e ka një kontakt tjetër';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Për të mbrojtur fshehtësinë tuaj, imazhet e largëta të këtij mesazhi janë bllokuar.';
$messages['encryptedmessage'] = 'Ky është një mesazh i koduar dhe nuk mund te shfaqet. Më vjen keq!';
$messages['nocontactsfound'] = 'Nuk ka kontakte';
$messages['contactnotfound'] = 'Kontakti që kërkoni nuk gjendet';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Dërgimi i mesazhit dështoi';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Pati nje problem gjatë ruajtjes';
$messages['errormoving'] = 'Nuk e lëviza dot mesazhin';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Nuk e fshiva dot mesazhin';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Me të vërtetë doni ti fshini kontaktet e zgjedhura?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Me të vërtetë doni ti fshini mesazhet e zgjedhura?';
$messages['deletefolderconfirm'] = 'Me të vërtetë doni ta fshini këtë kuti?';
$messages['purgefolderconfirm'] = 'Me të vërtetë doni ti fshini të gjitha mesazhet në këtë kuti?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Formulari nuk ishte i gjithi i plotësuar';
$messages['noemailwarning'] = 'Ju lutem jepni një adresë email të rregullt';
$messages['nonamewarning'] = 'Ju lutem jepni një emër';
$messages['nopagesizewarning'] = 'Ju lutem jepni nje madhësi për faqen';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Ju lutem shënoni të paktën një marrës';
$messages['nosubjectwarning'] = 'Fusha e temës është bosh. Dëshironi të shënoni një temë tani?';
$messages['nobodywarning'] = 'Ta dërgoj mesazhin pa tekst?';
$messages['notsentwarning'] = 'Mesazhi nuk u dërgua. Doni ta hidhni poshtë mesazhin?';
$messages['noldapserver'] = 'Ju lutem jepni një server ldap për të kërkuar';
$messages['nosearchname'] = 'Ju lutem jepni një adresë email ose një emër kontakti';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'U gjetën $nr mesazhe';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Kërkimi nuk gjeti gjë';
$messages['searching'] = 'Po kërkoj...';
$messages['checking'] = 'Po kontrolloj...';
$messages['nospellerrors'] = 'Nuk u gjetën gabime';
$messages['folderdeleted'] = 'Kutia u fshi me sukses';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'U fshi me sukses';
$messages['converting'] = 'Po i heq formatimin mesazhit...';
$messages['messageopenerror'] = 'Nuk marr dot mesazhe nga serveri';
$messages['fileuploaderror'] = 'Ngarkimi i skedarit dështoi';
$messages['filesizeerror'] = 'Skedari i ngarkuar e kalon madhësinë kufi prej $size';
+$messages['copysuccess'] = 'U kopjuan me sukses $nr adresa';
+$messages['copyerror'] = 'Nuk munda të kopjoj adresat';
$messages['sourceisreadonly'] = 'Ky burim adrese është vetëm i lexueshëm';
$messages['errorsavingcontact'] = 'Nuk e ruajta dot adresën e kontaktit';
$messages['movingmessage'] = 'Po lëviz mesazhin...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'U dërgua me sukses një njoftim leximi';
$messages['errorsendingreceipt'] = 'Nuk mund të dërgohet njoftimi';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Ju nuk mund ta fshini këtë identitet sepse nuk ju ka mbetur tjetër.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/sr_CS/labels.inc b/program/localization/sr_CS/labels.inc
index e2d40b1b6..130d3a7a6 100644
--- a/program/localization/sr_CS/labels.inc
+++ b/program/localization/sr_CS/labels.inc
@@ -15,44 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Добродошли на $product';
$labels['username'] = 'КориÑничко име';
$labels['password'] = 'Лозинка';
$labels['server'] = 'Сервер';
$labels['login'] = 'Пријава';
+
+// taskbar
$labels['logout'] = 'Одјава';
$labels['mail'] = 'Сандуче';
$labels['settings'] = 'Подешавања';
$labels['addressbook'] = 'Именик';
+
+// mailbox names
$labels['inbox'] = 'Примљене';
$labels['drafts'] = 'U pripremi';
$labels['sent'] = 'ПоÑлате';
$labels['trash'] = 'Канта';
$labels['junk'] = 'Смеће';
+
+// message listing
$labels['subject'] = 'ÐаÑлов';
$labels['from'] = 'Од';
+$labels['sender'] = 'Sender';
$labels['to'] = 'За';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Одговори';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Датум';
$labels['size'] = 'Величина';
$labels['priority'] = 'Приоритет';
$labels['organization'] = 'Организација';
$labels['readstatus'] = 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ñ€ÑƒÐºÐµ';
$labels['listoptions'] = 'ИзлиÑтај опције...';
+
$labels['mailboxlist'] = 'ФаÑцикле';
$labels['messagesfromto'] = 'Поруке $from до $to од укупно $count';
$labels['threadsfromto'] = 'Страница $from до $to од $count';
$labels['messagenrof'] = 'Порука број $nr од $count';
$labels['fromtoshort'] = '$from – $to од $count';
+
$labels['copy'] = 'Копирај';
$labels['move'] = 'Пребаци';
$labels['moveto'] = 'Пребаци у...';
$labels['download'] = 'Преузми (Ñкидање)';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Име датотекеe';
$labels['filesize'] = 'Величина датотеке';
+
$labels['addtoaddressbook'] = 'Додај у именик';
+
+// weekdays short
$labels['sun'] = 'Ðед';
$labels['mon'] = 'Пон';
$labels['tue'] = 'Уто';
@@ -60,6 +81,8 @@ $labels['wed'] = 'Сре';
$labels['thu'] = 'Чет';
$labels['fri'] = 'Пет';
$labels['sat'] = 'Суб';
+
+// weekdays long
$labels['sunday'] = 'Ðедеља';
$labels['monday'] = 'Понедељак';
$labels['tuesday'] = 'Уторак';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'Среда';
$labels['thursday'] = 'Четвртак';
$labels['friday'] = 'Петак';
$labels['saturday'] = 'Субота';
+
+// months short
$labels['jan'] = 'Јан';
$labels['feb'] = 'Феб';
$labels['mar'] = 'Мар';
@@ -79,6 +104,8 @@ $labels['sep'] = 'Сеп';
$labels['oct'] = 'Окт';
$labels['nov'] = 'Ðов';
$labels['dec'] = 'Дец';
+
+// months long
$labels['longjan'] = 'Јануар';
$labels['longfeb'] = 'Фебруар';
$labels['longmar'] = 'Март';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'Септембар';
$labels['longoct'] = 'Октобар';
$labels['longnov'] = 'Ðовембар';
$labels['longdec'] = 'Децембар';
+
$labels['today'] = 'ДанаÑ';
+
+// toolbar buttons
$labels['refresh'] = 'ОÑвежи';
$labels['checkmail'] = 'Провера нових порука';
$labels['compose'] = 'Ðова порука';
@@ -102,6 +132,7 @@ $labels['replytoallmessage'] = 'Одговори пошиљаоцу и Ñвим
$labels['replyall'] = 'Одговори Ñвима';
$labels['replylist'] = 'ЛиÑта за одговоре';
$labels['forward'] = 'ПроÑледи';
+$labels['forwardinline'] = 'Forward inline';
$labels['forwardattachment'] = 'ПроÑледи као прилог';
$labels['forwardmessage'] = 'ПроÑледи поруку';
$labels['deletemessage'] = 'Избриши поруку';
@@ -123,6 +154,7 @@ $labels['moreactions'] = 'ОÑтале радње...';
$labels['more'] = 'Више';
$labels['back'] = 'Ðазад';
$labels['options'] = 'Опције';
+
$labels['select'] = 'Одабери';
$labels['all'] = 'Све';
$labels['none'] = 'Ðишта';
@@ -130,13 +162,20 @@ $labels['currpage'] = 'Тренутна Ñтраница';
$labels['unread'] = 'Ðепрочитане';
$labels['flagged'] = 'Означено';
$labels['unanswered'] = 'Ðеодговорено';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'ОбриÑано';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Уведи';
$labels['filter'] = 'Филтер';
$labels['list'] = 'ЛиÑта';
$labels['threads'] = 'Ðити';
$labels['expand-all'] = 'Прошири Ñве';
+$labels['expand-unread'] = 'Expand Unread';
$labels['collapse-all'] = 'Сажми Ñве';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
$labels['expand_only_unread'] = 'Ñамо Ñа непрочитаним порукама';
$labels['fromto'] = 'Од/За';
$labels['flag'] = 'ЗаÑтава';
@@ -148,19 +187,31 @@ $labels['asc'] = 'раÑтући';
$labels['desc'] = 'опадајући';
$labels['listcolumns'] = 'ЛиÑÑ‚ колона';
$labels['listsorting'] = 'Сортирање колонe';
+$labels['listorder'] = 'Sorting order';
$labels['listmode'] = 'ЛиÑÑ‚ режим приказивања';
+
$labels['folderactions'] = 'ПоÑтавке фаÑцикле';
$labels['compact'] = 'Компакција';
$labels['empty'] = 'ИÑпразни';
+
$labels['quota'] = 'Квота';
$labels['unknown'] = 'непозната';
$labels['unlimited'] = 'беÑконачна';
+
$labels['quicksearch'] = 'Брза претрага';
$labels['resetsearch'] = 'Прикажи Ñве поруке';
+$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Цела порука';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Отвори у новом прозору';
$labels['emlsave'] = 'Довнлоад (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Модификуј као ново';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Пошаљи поруку';
$labels['savemessage'] = 'Сачувај у Снимљене';
$labels['addattachment'] = 'Приложи датотеку';
@@ -170,37 +221,52 @@ $labels['returnreceipt'] = 'Потврда о приÑпећу';
$labels['dsn'] = 'Обавештење о ÑтатуÑу Ñлања поруке';
$labels['mailreplyintro'] = 'Дана $date, $sender је напиÑао:';
$labels['originalmessage'] = 'Оригинална порука';
+
$labels['editidents'] = 'Модификуј пÑеудониме';
$labels['spellcheck'] = 'Провера правопиÑа';
$labels['checkspelling'] = 'Провера правопиÑа';
$labels['resumeediting'] = 'Повратак у режим пиÑања';
$labels['revertto'] = 'Врати Ñе на';
+
$labels['attach'] = 'Приложи';
$labels['attachments'] = 'Прилози';
$labels['upload'] = 'Додај';
$labels['uploadprogress'] = '$percent ($current од $total)';
$labels['close'] = 'Затвори';
$labels['messageoptions'] = 'Опције поруке';
+
$labels['low'] = 'Ðизак';
$labels['lowest'] = 'Ðајнижи';
$labels['normal'] = 'Средњи';
$labels['high'] = 'ВиÑок';
$labels['highest'] = 'Ðајвиши';
+
$labels['nosubject'] = '(без наÑлова)';
$labels['showimages'] = 'Прикажи Ñлике';
$labels['alwaysshow'] = 'Увек покажи Ñлике од $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Обичан текÑÑ‚';
$labels['savesentmessagein'] = 'ПоÑлате поруке Ñачувај у';
$labels['dontsave'] = 'Ðе Ñачувај';
$labels['maxuploadsize'] = 'МакÑимална величина податка је $size';
+
$labels['addcc'] = 'Додај Cc';
$labels['addbcc'] = 'Додај Bcc';
$labels['addreplyto'] = 'Додај Одговор-за';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Пошиљалац ове поруке је замолио да буде обавештен када прочитате ову поруку. Да ли желите да обавеÑтите пошиљаоца?';
$labels['receiptread'] = 'Обавештење о приÑпећу (прочитана порука)';
$labels['yourmessage'] = 'Ово је обавештење о приÑпећу за вашу поруку';
$labels['receiptnote'] = 'Пажња: Ово обавештење Ñамо потврђује да је порука приказана на рачунару примаоца. Ðе поÑтоји гаранција да је прималац прочитао или разумео Ñадржај поруке.';
+
+// address boook
$labels['name'] = 'Пуно име';
$labels['firstname'] = 'Име';
$labels['surname'] = 'Презиме';
@@ -235,6 +301,7 @@ $labels['search'] = 'Тражи';
$labels['advsearch'] = 'Ðапредна претрага';
$labels['advanced'] = 'Ðапредно';
$labels['other'] = 'ОÑтало';
+
$labels['typehome'] = 'Кућа';
$labels['typework'] = 'ПоÑао';
$labels['typeother'] = 'ОÑтало';
@@ -249,12 +316,14 @@ $labels['typeassistant'] = 'ÐÑиÑтент';
$labels['typehomepage'] = 'Почетна Ñтраница';
$labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профил';
+
$labels['addfield'] = 'Додај поље';
$labels['addcontact'] = 'Додај нови контакт';
$labels['editcontact'] = 'Измени контакт';
$labels['contacts'] = 'Конакти';
$labels['contactproperties'] = 'СвојÑтва контакта';
$labels['personalinfo'] = 'Личне информације';
+
$labels['edit'] = 'Измени';
$labels['cancel'] = 'Откажи';
$labels['save'] = 'Сачувај';
@@ -263,43 +332,60 @@ $labels['rename'] = 'Преименуј';
$labels['addphoto'] = 'Додај';
$labels['replacephoto'] = 'Измени';
$labels['uploadphoto'] = 'ПоÑтави фотографију';
+
$labels['newcontact'] = 'Додај нови контакт';
$labels['deletecontact'] = 'Обриши одабране контакте';
$labels['composeto'] = 'Ðапиши поруку...';
$labels['contactsfromto'] = 'Контакти $from до $to од укупно $count';
$labels['print'] = 'Штампај';
$labels['export'] = 'Извези';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Извези конакте у vCard формату';
$labels['newcontactgroup'] = 'Креирај нову контакт групу';
$labels['grouprename'] = 'Преименуј групу';
$labels['groupdelete'] = 'Обриши групу';
$labels['groupremoveselected'] = 'Избриши изабране контакте из групе';
+
$labels['previouspage'] = 'Прикажи претходну Ñтрану';
$labels['firstpage'] = 'Прикажи први Ñкуп';
$labels['nextpage'] = 'Прикажи Ñледећу Ñтрану';
$labels['lastpage'] = 'Прикажи поÑледњи Ñкуп';
+
$labels['group'] = 'Група';
$labels['groups'] = 'Групе';
$labels['personaladrbook'] = 'Личне адреÑе';
+
$labels['searchsave'] = 'Сачувај претрагу';
$labels['searchdelete'] = 'Избриши претрагу';
+
$labels['import'] = 'Увези';
$labels['importcontacts'] = 'Увези контакте';
$labels['importfromfile'] = 'Увези из датотеке:';
+$labels['importtarget'] = 'Додај нове контакте у адреÑар';
$labels['importreplace'] = 'Измени цели адреÑар';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'Готово';
+
+// settings
$labels['settingsfor'] = 'Подешавања за';
$labels['about'] = 'Инфо';
$labels['preferences'] = 'Подешавања';
$labels['userpreferences'] = 'Општа подешавања';
$labels['editpreferences'] = 'Измена општих подешавања';
+
$labels['identities'] = 'Идентитети';
$labels['manageidentities'] = 'ПодеÑи идентитете за овај налог';
$labels['newidentity'] = 'Додај идентитет';
+
$labels['newitem'] = 'Ðова Ñтавка';
$labels['edititem'] = 'Измена Ñтавке';
+
$labels['preferhtml'] = 'ПредноÑÑ‚ дај ХТМЛ формату';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'ХТМЛ формат поруке';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Формат датума';
$labels['timeformat'] = 'Формат времена';
$labels['prettydate'] = 'Форматирани датум';
@@ -310,9 +396,13 @@ $labels['timezone'] = 'ВременÑка зона';
$labels['pagesize'] = 'Редова по Ñтрани';
$labels['signature'] = 'ПотпиÑ';
$labels['dstactive'] = 'Летње померање времена';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'СаÑтави HTML поруке';
$labels['htmlonreply'] = 'Ñамо при одговору на HTML поруку';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML потпиÑ';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Прикажи панел за преглед';
$labels['skin'] = 'ИнтерфејÑ';
$labels['logoutclear'] = 'Избриши Ñмеће при логовању';
@@ -320,13 +410,24 @@ $labels['logoutcompact'] = 'Компактно Ñандуче при логовÐ
$labels['uisettings'] = 'КориÑнички интерфејÑ';
$labels['serversettings'] = 'ПоÑтавке Ñервера';
$labels['mailboxview'] = 'Преглед Ñандучета';
+$labels['mdnrequests'] = 'On request for return receipt';
$labels['askuser'] = 'питај ме';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'игнориÑати';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
$labels['skipdeleted'] = 'Ðе приказуј избриÑане поруке';
$labels['deletealways'] = 'Ðко Ñлање поруке у отпад не уÑпе, обришите их';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
$labels['always'] = 'увек';
$labels['showinlineimages'] = 'Покажи приложене Ñлике иÑпод поруке';
$labels['autosavedraft'] = 'ÐутоматÑки чувај у Снимљене';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'никад';
$labels['immediately'] = 'одмах';
$labels['messagesdisplaying'] = 'прикажи поруке';
@@ -335,6 +436,7 @@ $labels['mimeparamfolding'] = 'имена прилога';
$labels['2231folding'] = 'Full RFC 2231 (тхундербирд )';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Full RFC 2047 (други)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'Ðапредне опције';
$labels['focusonnewmessage'] = 'ФокуÑирати прозор претраживача на новој поруци';
$labels['checkallfolders'] = 'Проверите Ñве фаÑцикле за нове поруке';
@@ -347,6 +449,7 @@ $labels['maintenance'] = 'Поправке';
$labels['newmessage'] = 'Ðова порука';
$labels['signatureoptions'] = 'Опције потпиÑа';
$labels['whenreplying'] = 'При одговору';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'Почни нову поруку преко оригинала';
$labels['replybottomposting'] = 'Почни нову поруку иÑпод оригинала';
$labels['replyremovesignature'] = 'При одговору одÑтрани оригинални Ð¿Ð¾Ñ‚Ð¿Ð¸Ñ Ð¸Ð· поруке';
@@ -359,12 +462,20 @@ $labels['afternseconds'] = 'након $n Ñекунди';
$labels['reqmdn'] = 'Увек затражи повратну Ñкрипту';
$labels['reqdsn'] = 'Увек затражи обавештење о ÑтатуÑу Ñлања поруке';
$labels['replysamefolder'] = 'Сачувај одговоре у фаÑциклу поруке на коју Ñе одговара';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
$labels['listnamedisplay'] = 'ЛиÑти контакате као';
$labels['spellcheckbeforesend'] = 'Проверите Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ð¿Ñ€Ðµ Ñлања поруке';
$labels['spellcheckoptions'] = 'Опције Провере правопиÑа';
$labels['spellcheckignoresyms'] = 'игнориши речи Ñа Ñимболима';
$labels['spellcheckignorenums'] = 'игнориши речи Ñа бројевима';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'Додај у речник';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'ФаÑцикла';
$labels['folders'] = 'ФаÑцикле';
$labels['foldername'] = 'Име фаÑцикле';
@@ -385,19 +496,26 @@ $labels['foldertype'] = 'типа фаÑцикле';
$labels['personalfolder'] = 'Приватна фаÑцикла';
$labels['otherfolder'] = 'ФаÑцикла Других КориÑникa';
$labels['sharedfolder'] = 'Јавна фаÑцикла';
+
$labels['sortby'] = 'Сортирај по';
$labels['sortasc'] = 'Сортирај раÑтуће';
$labels['sortdesc'] = 'Сортирај опадајуће';
$labels['undo'] = 'Унатраг';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Додаци';
$labels['version'] = 'Верзија';
$labels['source'] = 'Извор';
$labels['license'] = 'Лиценца';
$labels['support'] = 'подршка';
+
+// units
$labels['B'] = 'Б';
$labels['KB'] = 'КБ';
$labels['MB'] = 'МБ';
$labels['GB'] = 'ГБ';
+
+// character sets
$labels['unicode'] = 'Универзални код';
$labels['english'] = 'ЕнглеÑки';
$labels['westerneuropean'] = 'Западна Европа';
@@ -416,4 +534,5 @@ $labels['vietnamese'] = 'ВијетнамÑки';
$labels['japanese'] = 'ЈапанÑки';
$labels['korean'] = 'КореанÑки';
$labels['chinese'] = 'КинеÑки';
+
?>
diff --git a/program/localization/sr_CS/messages.inc b/program/localization/sr_CS/messages.inc
index 7a4c89356..32007e6f2 100644
--- a/program/localization/sr_CS/messages.inc
+++ b/program/localization/sr_CS/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Дошло је до грешке!';
$messages['loginfailed'] = 'ÐеуÑпешно пријављивање';
$messages['cookiesdisabled'] = 'Ваш интернет прегледач не подржава колачиће';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Грешка у бази података!';
$messages['requesttimedout'] = 'Захтев је иÑтекао';
$messages['errorreadonly'] = 'Ðе може да изврши операцију. ФаÑцикла Ñе може Ñамо читати.';
$messages['errornoperm'] = 'Извршење операције није могуће. Одбијен захтев за дозволу.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Погрешан захтев! Подаци ниÑу Ñачувани.';
$messages['invalidhost'] = 'Погрешно име Ñервера.';
$messages['nomessagesfound'] = 'Ðемате порука у Ñандучету.';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'Жељени контакт није нађен'
$messages['contactsearchonly'] = 'УнеÑите шта тражите да пронађете контакте';
$messages['sendingfailed'] = 'Грешка при Ñлању поруке';
$messages['senttooquickly'] = 'Молимо Ð’Ð°Ñ Ð´Ð° Ñачекате $sec Ñекунд(и) пре него пошаљете ову поруку';
+$messages['errorsavingsent'] = 'Приликом похрањивања поÑлате поруке деÑила Ñе грешка';
+$messages['errorsaving'] = 'Грешка при Ñнимању поруке';
$messages['errormoving'] = 'Грешка при премештању поруке';
$messages['errorcopying'] = 'Копирање поруке није било уÑпешно';
$messages['errordeleting'] = 'Грешка при бриÑању поруке';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Уклањање форматирања из пору
$messages['messageopenerror'] = 'Порука Ñе не може учитати Ñа Ñервера';
$messages['fileuploaderror'] = 'Слање датотеке неуÑпешно';
$messages['filesizeerror'] = 'ПоÑлата датотека не може да прекорачи величину од $size';
+$messages['copysuccess'] = 'УÑпешно копирано $nr адреÑа';
+$messages['copyerror'] = 'Ðемогуће је иÑкопирати иједну адреÑу';
$messages['sourceisreadonly'] = 'Овај извор адреÑе је Ñамо за читање';
$messages['errorsavingcontact'] = 'ÐеуÑпело Ñнимање адреÑе контакта';
$messages['movingmessage'] = 'Премештам поруку...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'SMTP Error ($code): $msg';
$messages['emailformaterror'] = 'Имејл адреÑа није валидна: $email';
$messages['toomanyrecipients'] = 'Превише прималаца. Смањите број прималаца на $max.';
$messages['maxgroupmembersreached'] = 'Број чланова гупе прелази макÑимум од $max';
+$messages['internalerror'] = 'ДеÑила Ñе интерна грешка. Молимо покушајте поново';
$messages['contactdelerror'] = 'БриÑање контакта неуÑпешно';
$messages['contactdeleted'] = 'БриÑање контакта уÑпешно';
$messages['contactrestoreerror'] = 'Ðе може да врати обриÑане контакте.';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'Ðе може да направи/премеÑ
$messages['messagetoobig'] = 'Део Ñа поруком је превелик за обраду.';
$messages['attachmentvalidationerror'] = 'УПОЗОРЕЊЕ! Овај прилог је Ñумњив зато што Ñе његов тип не поклапа Ñа типом објављеним у поруци. Уколико немате поверења у пошиљаоца, не отварајте је у прегледачу зато што може Ñадржати злонамерни Ñадржај.<br/><br/><em>Очекивао: $expected; нашао: $detected</em>';
$messages['noscriptwarning'] = 'Упозорење: ова поштанÑка уÑлуга захтева ЈаваÑкрипт! Да биÑте је кориÑтили, укључите ЈаваÑкрипт у подешавањима вашег прегледача.';
+
?>
diff --git a/program/localization/sv_SE/labels.inc b/program/localization/sv_SE/labels.inc
index 8116afeff..f61433527 100644
--- a/program/localization/sv_SE/labels.inc
+++ b/program/localization/sv_SE/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Välkommen till $product';
$labels['username'] = 'Användarnamn';
$labels['password'] = 'Lösenord';
$labels['server'] = 'Server';
$labels['login'] = 'Logga in';
+
+// taskbar
$labels['logout'] = 'Logga ut';
$labels['mail'] = 'Meddelanden';
$labels['settings'] = 'Inställningar';
$labels['addressbook'] = 'Adressbok';
+
+// mailbox names
$labels['inbox'] = 'Inkorg';
$labels['drafts'] = 'Utkast';
$labels['sent'] = 'Skickat';
$labels['trash'] = 'Papperskorg';
$labels['junk'] = 'Skräp';
-$labels['show_real_foldernames'] = 'Visa verkliga namn på särskilda kataloger';
+
+// message listing
$labels['subject'] = 'Ämne';
$labels['from'] = 'Avsändare';
$labels['sender'] = 'Avsändare';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organisation';
$labels['readstatus'] = 'Lässtatus';
$labels['listoptions'] = 'Listalternativ...';
+
$labels['mailboxlist'] = 'Kataloger';
$labels['messagesfromto'] = 'Meddelande $from till $to av $count';
$labels['threadsfromto'] = 'Tråd $from till $to av $count';
$labels['messagenrof'] = 'Meddelande $nr av $count';
$labels['fromtoshort'] = '$from – $to av $count';
+
$labels['copy'] = 'Kopiera';
$labels['move'] = 'Flytta';
$labels['moveto'] = 'Flytta till:';
@@ -56,9 +67,13 @@ $labels['download'] = 'Ladda ner';
$labels['open'] = 'Öppna';
$labels['showattachment'] = 'Visa';
$labels['showanyway'] = 'Visa det ändå';
+
$labels['filename'] = 'Filnamn';
$labels['filesize'] = 'Filstorlek';
+
$labels['addtoaddressbook'] = 'Lägg till i adressbok';
+
+// weekdays short
$labels['sun'] = 'sön';
$labels['mon'] = 'mån';
$labels['tue'] = 'tis';
@@ -66,6 +81,8 @@ $labels['wed'] = 'ons';
$labels['thu'] = 'tor';
$labels['fri'] = 'fre';
$labels['sat'] = 'lör';
+
+// weekdays long
$labels['sunday'] = 'söndag';
$labels['monday'] = 'måndag';
$labels['tuesday'] = 'tisdag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'onsdag';
$labels['thursday'] = 'torsdag';
$labels['friday'] = 'fredag';
$labels['saturday'] = 'lördag';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'dec';
+
+// months long
$labels['longjan'] = 'januari';
$labels['longfeb'] = 'februari';
$labels['longmar'] = 'mars';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'september';
$labels['longoct'] = 'oktober';
$labels['longnov'] = 'november';
$labels['longdec'] = 'december';
+
$labels['today'] = 'idag';
+
+// toolbar buttons
$labels['refresh'] = 'Uppdatera';
$labels['checkmail'] = 'Hämta nya meddelanden';
$labels['compose'] = 'Nytt meddelande';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Fler åtgärder';
$labels['more'] = 'Fler';
$labels['back'] = 'Tillbaka';
$labels['options'] = 'Alternativ';
+
$labels['select'] = 'Välj';
$labels['all'] = 'Alla';
$labels['none'] = 'Ingen';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Visa alla';
$labels['expand-unread'] = 'Visa olästa';
$labels['collapse-all'] = 'Dölj alla';
$labels['threaded'] = 'Trådat';
+
$labels['autoexpand_threads'] = 'Visa trådade meddelanden';
$labels['do_expand'] = 'Alla trådar';
$labels['expand_only_unread'] = 'Trådar med olästa meddelanden';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Kolumner';
$labels['listsorting'] = 'Sortering';
$labels['listorder'] = 'Ordning';
$labels['listmode'] = 'Visningsläge';
+
$labels['folderactions'] = 'Hantera kataloger';
$labels['compact'] = 'Packa';
$labels['empty'] = 'Töm';
-$labels['importmessages'] = 'Importera meddelanden';
+
$labels['quota'] = 'Diskutrymme';
$labels['unknown'] = 'okänt';
$labels['unlimited'] = 'obegränsat';
+
$labels['quicksearch'] = 'Snabbsök';
$labels['resetsearch'] = 'Återställ sökning';
$labels['searchmod'] = 'Sökalternativ';
$labels['msgtext'] = 'Hela meddelandet';
$labels['body'] = 'Innehåll';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Namn';
+
$labels['openinextwin'] = 'Öppna i nytt fönster';
$labels['emlsave'] = 'Spara (.eml)';
$labels['changeformattext'] = 'Visa i text-format';
$labels['changeformathtml'] = 'Visa i HTML-format';
+
+// message compose
$labels['editasnew'] = 'Redigera som nytt';
$labels['send'] = 'Skicka';
$labels['sendmessage'] = 'Skicka meddelande';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Mottagarkvitto';
$labels['dsn'] = 'Leveransstatusmeddelande';
$labels['mailreplyintro'] = '$date skrev $sender:';
$labels['originalmessage'] = 'Ursprungligt meddelande';
+
$labels['editidents'] = 'Ändra identiteter';
$labels['spellcheck'] = 'Rättstava';
$labels['checkspelling'] = 'Kontrollera stavning';
$labels['resumeediting'] = 'Ã…teruppta redigering';
$labels['revertto'] = 'Återgå till';
-$labels['responses'] = 'Responser';
-$labels['insertresponse'] = 'Infoga respons';
-$labels['manageresponses'] = 'Hantera responser';
-$labels['savenewresponse'] = 'Spara ny respons';
-$labels['editresponses'] = 'Ändra responser';
-$labels['editresponse'] = 'Ändra respons';
-$labels['responsename'] = 'Namn';
-$labels['responsetext'] = 'Responstext';
+
$labels['attach'] = 'Bifoga';
$labels['attachments'] = 'Bilagor';
$labels['upload'] = 'Bifoga';
$labels['uploadprogress'] = '$percent ($current av $total)';
$labels['close'] = 'Stäng';
$labels['messageoptions'] = 'Meddelandealternativ';
+
$labels['low'] = 'LÃ¥g';
$labels['lowest'] = 'Lägst';
$labels['normal'] = 'Normal';
$labels['high'] = 'Hög';
$labels['highest'] = 'Högst';
+
$labels['nosubject'] = '(inget ämne)';
$labels['showimages'] = 'Visa bilder';
$labels['alwaysshow'] = 'Visa alltid bilder från $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Detta meddelande är ett utkast.';
$labels['andnmore'] = '$nr fler...';
$labels['togglemoreheaders'] = 'Visa fler meddelandehuvuden';
$labels['togglefullheaders'] = 'Växla meddelandehuvuden';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Text';
$labels['savesentmessagein'] = 'Spara kopia i';
$labels['dontsave'] = 'Spara inte';
$labels['maxuploadsize'] = 'Tillåten filstorlek är $size';
+
$labels['addcc'] = 'Kopia';
$labels['addbcc'] = 'Dold kopia';
$labels['addreplyto'] = 'Svar till';
$labels['addfollowupto'] = 'Uppföljning till';
+
+// mdn
$labels['mdnrequest'] = 'Avsändaren har begärt mottagarkvitto för det här meddelandet. Vill du skicka ett mottagarkvitto?';
$labels['receiptread'] = 'Mottagarkvitto (läst)';
$labels['yourmessage'] = 'Det här är ett mottagarkvitto för ditt meddelande';
$labels['receiptnote'] = 'Notera: Mottagarkvittot innebär bara att meddelandet visats på mottagarens dator. Därmed finns ingen garanti att mottagaren har läst och förstått meddelandet.';
+
+// address boook
$labels['name'] = 'Namn';
$labels['firstname'] = 'Förnamn';
$labels['surname'] = 'Efternamn';
@@ -270,6 +301,7 @@ $labels['search'] = 'Sök';
$labels['advsearch'] = 'Avancerad sökning';
$labels['advanced'] = 'Avancerad';
$labels['other'] = 'Annat';
+
$labels['typehome'] = 'Hem';
$labels['typework'] = 'Arbete';
$labels['typeother'] = 'Annat';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Webbsida';
$labels['typeblog'] = 'Blogg';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Lägg till fält...';
$labels['addcontact'] = 'Lägg till ny kontakt';
$labels['editcontact'] = 'Ändra kontakt';
$labels['contacts'] = 'Kontakter';
$labels['contactproperties'] = 'Kontaktegenskaper';
$labels['personalinfo'] = 'Personlig information';
+
$labels['edit'] = 'Redigera';
$labels['cancel'] = 'Avbryt';
$labels['save'] = 'Spara';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Ändra namn';
$labels['addphoto'] = 'Lägg till';
$labels['replacephoto'] = 'Ersätt';
$labels['uploadphoto'] = 'Ladda upp foto';
+
$labels['newcontact'] = 'Ny kontakt';
$labels['deletecontact'] = 'Ta bort vald kontakt';
$labels['composeto'] = 'Nytt meddelande till';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Ny kontaktgrupp';
$labels['grouprename'] = 'Ändra gruppnamn';
$labels['groupdelete'] = 'Ta bort grupp';
$labels['groupremoveselected'] = 'Ta bort markerade kontakter från gruppen';
+
$labels['previouspage'] = 'Visa föregående sida';
$labels['firstpage'] = 'Visa första sidan';
$labels['nextpage'] = 'Visa nästa sida';
$labels['lastpage'] = 'Visa sista sidan';
+
$labels['group'] = 'Grupp';
$labels['groups'] = 'Kontaktgrupper';
-$labels['listgroup'] = 'Visa gruppmedlemmar';
$labels['personaladrbook'] = 'Personliga adresser';
+
$labels['searchsave'] = 'Lägg till sökning';
$labels['searchdelete'] = 'Ta bort sökning';
+
$labels['import'] = 'Importera';
$labels['importcontacts'] = 'Importera kontakter';
$labels['importfromfile'] = 'Importera från fil:';
-$labels['importtarget'] = 'Lägg till kontakter i';
+$labels['importtarget'] = 'Lägg till nya kontakter till adressbok:';
$labels['importreplace'] = 'Ersätt samtliga kontakter i adressboken';
-$labels['importgroups'] = 'Importera grupptillhörigheter';
-$labels['importgroupsall'] = 'Alla (skapa grupper om nödvändigt)';
-$labels['importgroupsexisting'] = 'Endast till befintliga grupper';
$labels['importdesc'] = 'Kontakter kan importeras från en befintlig adressbok.<br/>Programmet stödjer inläsning av kontakter i formatet <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> eller formatet CSV (kommaseparerad data).';
$labels['done'] = 'Klart';
+
+// settings
$labels['settingsfor'] = 'Inställningar för';
$labels['about'] = 'Om';
$labels['preferences'] = 'Inställningar';
$labels['userpreferences'] = 'Användarinställningar';
$labels['editpreferences'] = 'Ändra användarinställningar';
+
$labels['identities'] = 'Identiteter';
$labels['manageidentities'] = 'Hantera identiteter';
$labels['newidentity'] = 'Ny identitet';
+
$labels['newitem'] = 'Ny information';
$labels['edititem'] = 'Ändra information';
+
$labels['preferhtml'] = 'Visa meddelanden i HTML-format';
$labels['defaultcharset'] = 'Förvald teckenkodning';
$labels['htmlmessage'] = 'HTML-meddelande';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorera ord med siffror';
$labels['spellcheckignorecaps'] = 'Ignorera ord med enbart stora bokstäver';
$labels['addtodict'] = 'Lägg till i ordlista';
$labels['mailtoprotohandler'] = 'Ange program för hantering av mailto-länkar';
-$labels['standardwindows'] = 'Hantera popup-rutor som standardfönster';
$labels['forwardmode'] = 'Vidarebefordra meddelande';
$labels['inline'] = 'Infogat';
$labels['asattachment'] = 'Bilaga';
+
$labels['folder'] = 'Katalog';
$labels['folders'] = 'Kataloger';
$labels['foldername'] = 'Katalognamn';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Katalogtyp';
$labels['personalfolder'] = 'Privat katalog';
$labels['otherfolder'] = 'Annan användares katalog';
$labels['sharedfolder'] = 'Publik katalog';
+
$labels['sortby'] = 'Sortera på';
$labels['sortasc'] = 'Sortera stigande';
$labels['sortdesc'] = 'Sortera fallande';
$labels['undo'] = 'Ã…ngra';
+
$labels['installedplugins'] = 'Installerade tillägg';
$labels['plugin'] = 'Tillägg';
$labels['version'] = 'Version';
$labels['source'] = 'Källkod';
$labels['license'] = 'Licens';
$labels['support'] = 'Hjälp';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engelsk';
$labels['westerneuropean'] = 'Västeuropeisk';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisk';
$labels['japanese'] = 'Japansk';
$labels['korean'] = 'Koreansk';
$labels['chinese'] = 'Kinesisk';
+
?>
diff --git a/program/localization/sv_SE/messages.inc b/program/localization/sv_SE/messages.inc
index 16bbd5a23..63dddc548 100644
--- a/program/localization/sv_SE/messages.inc
+++ b/program/localization/sv_SE/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ett fel uppstod!';
$messages['loginfailed'] = 'Inloggningen misslyckades';
$messages['cookiesdisabled'] = 'Din webbläsare accepterar inte cookies';
@@ -40,13 +42,11 @@ $messages['uploadingmany'] = 'Överför filer...';
$messages['loadingdata'] = 'Laddar data...';
$messages['checkingmail'] = 'Hämtar nya meddelanden...';
$messages['sendingmessage'] = 'Skickar meddelande...';
-$messages['messagesent'] = 'Meddelandet har skickats.';
+$messages['messagesent'] = 'Meddelandet har skickats';
$messages['savingmessage'] = 'Sparar meddelande...';
$messages['messagesaved'] = 'Meddelandet har sparats i Utkast';
-$messages['successfullysaved'] = 'Informationen har sparats.';
-$messages['savingresponse'] = 'Sparar responstext...';
-$messages['deleteresponseconfirm'] = 'Vill du verkligen ta bort denna responstext?';
-$messages['addedsuccessfully'] = 'Kontakten har lagts till i adressboken.';
+$messages['successfullysaved'] = 'Informationen har sparats';
+$messages['addedsuccessfully'] = 'Kontakten har lagts till i adressboken';
$messages['contactexists'] = 'En kontakt med den här adressen finns redan';
$messages['contactnameexists'] = 'En kontakt med det här namnet finns redan';
$messages['blockedimages'] = 'Externt länkade bilder i meddelandet har blockerats.';
@@ -85,52 +85,47 @@ $messages['notsentwarning'] = 'Meddelandet har inte skickats. Vill du avbryta me
$messages['noldapserver'] = 'Ange en LDAP-server för att söka';
$messages['nosearchname'] = 'Ange ett kontaktnamn eller en adress';
$messages['notuploadedwarning'] = 'Alla bilagor har inte överförts ännu. Vänta eller avbryt överföringen.';
-$messages['searchsuccessful'] = '$nr meddelanden hittades.';
-$messages['contactsearchsuccessful'] = '$nr kontakter hittades.';
+$messages['searchsuccessful'] = '$nr meddelanden hittades';
+$messages['contactsearchsuccessful'] = '$nr kontakter hittades';
$messages['searchnomatch'] = 'Sökningen gav inget resultat';
$messages['searching'] = 'Söker...';
$messages['checking'] = 'Kontrollerar...';
$messages['nospellerrors'] = 'Inget stavfel hittades';
-$messages['folderdeleted'] = 'Katalogen togs bort.';
-$messages['foldersubscribed'] = 'Prenumeration på katalog startad.';
-$messages['folderunsubscribed'] = 'Prenumeration på katalog avslutad.';
-$messages['folderpurged'] = 'Katalog rensad.';
-$messages['folderexpunged'] = 'Katalog tömd.';
-$messages['deletedsuccessfully'] = 'Lyckad borttagning.';
+$messages['folderdeleted'] = 'Katalogen togs bort';
+$messages['foldersubscribed'] = 'Prenumeration på katalog startad';
+$messages['folderunsubscribed'] = 'Prenumeration på katalog avslutad';
+$messages['folderpurged'] = 'Katalog rensad';
+$messages['folderexpunged'] = 'Katalog tömd';
+$messages['deletedsuccessfully'] = 'Lyckad borttagning';
$messages['converting'] = 'Tar bort formatering från meddelande...';
$messages['messageopenerror'] = 'Meddelandet kunde inte hämtas från servern';
$messages['fileuploaderror'] = 'Filuppladdning misslyckades';
$messages['filesizeerror'] = 'Den uppladdade filens storlek överstiger högsta tillåtna $size';
-$messages['copysuccess'] = '$nr kontakter har kopierats.';
-$messages['movesuccess'] = '$nr kontakter har flyttats.';
-$messages['copyerror'] = 'NÃ¥gra kontakter kunde inte kopieras.';
-$messages['moveerror'] = 'NÃ¥gra kontakter kunde inte flyttas.';
+$messages['copysuccess'] = '$nr adresser har kopierats';
+$messages['copyerror'] = 'NÃ¥gra adresser kunde inte kopieras';
$messages['sourceisreadonly'] = 'Denna adresskälla är skrivskyddad';
$messages['errorsavingcontact'] = 'Kontaktadressen kunde inte sparas';
$messages['movingmessage'] = 'Flyttar meddelande...';
$messages['copyingmessage'] = 'Kopierar meddelande...';
$messages['copyingcontact'] = 'Kopierar kontakter...';
-$messages['movingcontact'] = 'Flyttar kontakter...';
$messages['deletingmessage'] = 'Tar bort meddelande...';
$messages['markingmessage'] = 'Markerar meddelande...';
$messages['addingmember'] = 'Lägger till kontakter i gruppen...';
$messages['removingmember'] = 'Tar bort kontakter från gruppen...';
-$messages['receiptsent'] = 'Mottagarkvitto har skickats.';
+$messages['receiptsent'] = 'Mottagarkvitto har skickats';
$messages['errorsendingreceipt'] = 'Mottagarkvitto kunde inte skickas';
$messages['deleteidentityconfirm'] = 'Vill du verkligen ta bort denna identitet?';
$messages['nodeletelastidentity'] = 'Du kan inte ta bort identiteten, den är din sista.';
$messages['forbiddencharacter'] = 'Katalognamnet innehåller otillåtna tecken';
$messages['selectimportfile'] = 'Välj en fil att ladda upp';
$messages['addresswriterror'] = 'Angiven adressbok är skrivskyddad';
-$messages['contactaddedtogroup'] = 'Kontakterna har lagts till i gruppen.';
-$messages['contactremovedfromgroup'] = 'Kontakterna har tagits bort från gruppen.';
+$messages['contactaddedtogroup'] = 'Kontakterna har lagts till i gruppen';
+$messages['contactremovedfromgroup'] = 'Kontakterna har tagits bort från gruppen';
$messages['nogroupassignmentschanged'] = 'Ingen grupptillhörighet ändrades.';
$messages['importwait'] = 'Importerar, var god vänta...';
$messages['importformaterror'] = 'Importen misslyckades! Filen har inte korrekt dataformat.';
$messages['importconfirm'] = '<b>Lyckad import av $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Hoppade över $skipped befintliga poster</b>';
-$messages['importmessagesuccess'] = '$nr meddelanden har importerats.';
-$messages['importmessageerror'] = 'Importen misslyckades! Filen innehåller inte något meddelande eller någon brevlåda';
$messages['opnotpermitted'] = 'Otillåten operation!';
$messages['nofromaddress'] = 'Adress saknas i den valda identiteten';
$messages['editorwarning'] = 'Genom att växla till text-läge går formateringen förlorad. Vill du fortsätta?';
@@ -146,30 +141,31 @@ $messages['toomanyrecipients'] = 'Förmånga mottagare. Minska antalet till hög
$messages['maxgroupmembersreached'] = 'Antalet gruppmedlemmar får inte överstiga $max';
$messages['internalerror'] = 'Ett internt fel uppstod. Försök igen.';
$messages['contactdelerror'] = 'Kontakt kunde inte tas bort';
-$messages['contactdeleted'] = 'Kontakt borttagen.';
+$messages['contactdeleted'] = 'Kontakt borttagen';
$messages['contactrestoreerror'] = 'Borttagna kontakter kunde inte återskapas';
-$messages['contactrestored'] = 'Kontakter återskapade.';
-$messages['groupdeleted'] = 'Grupp borttagen.';
-$messages['grouprenamed'] = 'Gruppnamn ändrat.';
-$messages['groupcreated'] = 'Grupp skapad.';
-$messages['savedsearchdeleted'] = 'Sparad sökning borttagen.';
+$messages['contactrestored'] = 'Kontakter återskapade';
+$messages['groupdeleted'] = 'Grupp borttagen';
+$messages['grouprenamed'] = 'Gruppnamn ändrat';
+$messages['groupcreated'] = 'Grupp skapad';
+$messages['savedsearchdeleted'] = 'Sparad sökning borttagen';
$messages['savedsearchdeleteerror'] = 'Kunde inte ta bort sparad sökning';
-$messages['savedsearchcreated'] = 'Sparad sökning tillagd.';
+$messages['savedsearchcreated'] = 'Sparad sökning tillagd';
$messages['savedsearchcreateerror'] = 'Kunde inte lägga till sparad sökning';
-$messages['messagedeleted'] = 'Meddelande borttaget.';
-$messages['messagemoved'] = 'Meddelande flyttat.';
-$messages['messagecopied'] = 'Meddelande kopierat.';
-$messages['messagemarked'] = 'Meddelande markerat.';
+$messages['messagedeleted'] = 'Meddelande borttaget';
+$messages['messagemoved'] = 'Meddelande flyttat';
+$messages['messagecopied'] = 'Meddelande kopierat';
+$messages['messagemarked'] = 'Meddelande markerat';
$messages['autocompletechars'] = 'Ange minst $min tecken för automatisk komplettering';
$messages['autocompletemore'] = 'Flera passande informationsposter funna. Skriv fler tecken.';
$messages['namecannotbeempty'] = 'Namnet får inte vara tomt';
$messages['nametoolong'] = 'Namnet är för långt';
-$messages['folderupdated'] = 'Katalog uppdaterad.';
-$messages['foldercreated'] = 'Katalog skapad.';
+$messages['folderupdated'] = 'Katalog uppdaterad';
+$messages['foldercreated'] = 'Katalog skapad';
$messages['invalidimageformat'] = 'Ogiltigt bildfilsformat';
$messages['mispellingsfound'] = 'Stavfel hittades i meddelandet';
$messages['parentnotwritable'] = 'Katalogen kunde inte skapas eller flyttas. Åtkomsträttighet saknas.';
$messages['messagetoobig'] = 'Denna del av meddelandet är alltför stor för att hantera.';
$messages['attachmentvalidationerror'] = 'VARNING! Bilagan misstänks vara av annan typ än vad som anges i meddelandet. Om du inte litar på avsändaren ska du inte öppna bilagan.<br/><br/><em>Angiven typ: $expected; funnen typ: $detected</em>';
$messages['noscriptwarning'] = 'Varning: Denna webbmailtjänst fungerar inte utan Javascript! Aktivera Javascript i webbläsarens inställningar.';
+
?>
diff --git a/program/localization/ta_IN/labels.inc b/program/localization/ta_IN/labels.inc
index dd8c134ba..bc1db7d00 100644
--- a/program/localization/ta_IN/labels.inc
+++ b/program/localization/ta_IN/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'நலà¯à®µà®°à®µà¯';
$labels['username'] = 'பயனரà¯';
$labels['password'] = 'கடவà¯à®šà¯à®šà¯†à®¾à®²à¯';
$labels['server'] = 'சேவையகமà¯';
$labels['login'] = 'நà¯à®´à¯ˆ';
+
+// taskbar
$labels['logout'] = 'வெளியேறà¯';
$labels['mail'] = 'மினà¯à®©à®žà¯à®šà®²à¯';
$labels['settings'] = 'அமைபà¯à®ªà¯à®•à®³à¯';
$labels['addressbook'] = 'தொடரà¯à®ªà¯à®•à®³à¯';
+
+// mailbox names
$labels['inbox'] = 'அகபà¯à®ªà¯†à®Ÿà¯à®Ÿà®¿';
$labels['drafts'] = 'வரைவà¯à®•à®³à¯';
$labels['sent'] = 'அனà¯à®ªà¯à®ªà®¿à®¯ அஞà¯à®šà®²à¯';
$labels['trash'] = 'கà¯à®ªà¯à®ªà¯ˆ';
$labels['junk'] = 'எரிதமà¯';
+
+// message listing
$labels['subject'] = 'தலைபà¯à®ªà¯';
$labels['from'] = 'அனà¯à®ªà¯à®ªà¯à®©à®°à¯';
+$labels['sender'] = 'Sender';
$labels['to'] = 'பெறà¯à®©à®°à¯';
$labels['cc'] = 'நகலà¯';
$labels['bcc'] = 'மறை நகலà¯';
$labels['replyto'] = 'பதிலளி';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'தேதி';
$labels['size'] = 'அளவà¯';
$labels['priority'] = 'à®®à¯à®•à¯à®•à®¿à®¯à®¤à¯à®¤à¯à®µà®®à¯';
$labels['organization'] = 'நிறà¯à®µà®©à®®à¯';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'அடைவà¯à®•à®³à¯';
$labels['messagesfromto'] = 'செயà¯à®¤à®¿à®•à®³à¯ $countல௠$from லிரà¯à®¨à¯à®¤à¯ $to வரை';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = '$countல௠$nr வத௠செயà¯à®¤à®¿';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'நகலà¯';
+$labels['move'] = 'Move';
$labels['moveto'] = 'இதறà¯à®•à¯ அனà¯à®ªà¯à®ªà¯...';
$labels['download'] = 'பதிவிறகà¯à®•à¯';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'கோபà¯à®ªà¯ பெயரà¯';
$labels['filesize'] = 'கோபà¯à®ªà¯ அளவà¯';
+
$labels['addtoaddressbook'] = 'தொடரà¯à®ªà¯à®•à®³à¯à®•à¯à®•à¯ சேரà¯à®•à¯à®•à®µà¯à®®à¯';
+
+// weekdays short
$labels['sun'] = 'ஞாயிறà¯';
$labels['mon'] = 'திஙà¯à®•à®³à¯';
$labels['tue'] = 'செவà¯à®µà®¾à®¯à¯';
@@ -55,6 +81,8 @@ $labels['wed'] = 'பà¯à®¤à®©à¯';
$labels['thu'] = 'வியாழனà¯';
$labels['fri'] = 'வெளà¯à®³à®¿';
$labels['sat'] = 'சனி';
+
+// weekdays long
$labels['sunday'] = 'ஞாயிறà¯';
$labels['monday'] = 'திஙà¯à®•à®³à¯';
$labels['tuesday'] = 'செவà¯à®µà®¾à®¯à¯';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'பà¯à®¤à®©à¯';
$labels['thursday'] = 'வியாழனà¯';
$labels['friday'] = 'வெளà¯à®³à®¿';
$labels['saturday'] = 'சனி';
+
+// months short
$labels['jan'] = 'சனவரி';
$labels['feb'] = 'பிபà¯à®°à®µà®°à®¿';
$labels['mar'] = 'மாரà¯à®šà¯';
@@ -74,6 +104,8 @@ $labels['sep'] = 'செபà¯à®Ÿà®®à¯à®ªà®°à¯';
$labels['oct'] = 'அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯';
$labels['nov'] = 'நவமà¯à®ªà®°à¯';
$labels['dec'] = 'டிசமà¯à®ªà®°à¯';
+
+// months long
$labels['longjan'] = 'சனவரி';
$labels['longfeb'] = 'பிபà¯à®°à®µà®°à®¿';
$labels['longmar'] = 'மாரà¯à®šà¯';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'செபà¯à®Ÿà®®à¯à®ªà®°à¯';
$labels['longoct'] = 'அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯';
$labels['longnov'] = 'நவமà¯à®ªà®°à¯';
$labels['longdec'] = 'டிசமà¯à®ªà®°à¯';
+
$labels['today'] = 'இனà¯à®±à¯';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'பà¯à®¤à¯ அஞà¯à®šà®²à¯à®•à®³à¯ˆ பாரà¯à®•à¯à®•à®µà¯à®®à¯';
$labels['compose'] = 'அஞà¯à®šà®²à¯ எழà¯à®¤à¯';
$labels['writenewmessage'] = 'பà¯à®¤à¯ அஞà¯à®šà®²à¯ எழà¯à®¤à®µà¯à®®à¯';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'அனà¯à®ªà¯à®ªà¯à®©à®°à¯à®•à¯à®•à¯ பதிலளி';
$labels['replytoallmessage'] = 'அனà¯à®ªà¯à®ªà¯à®©à®°à¯ மறà¯à®±à¯à®®à¯ எலà¯à®²à®¾ பெறà¯à®©à®°à¯à®•à®³à¯à®•à¯à®•à¯à®®à¯ பதிலளி';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ à®®à¯à®©à¯à®…னà¯à®ªà¯à®ªà¯';
$labels['deletemessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நீகà¯à®•à¯';
$labels['movemessagetotrash'] = 'செயà¯à®¤à®¿à®¯à¯ˆ கà¯à®ªà¯à®ªà¯ˆà®•à¯à®•à¯ நகரà¯à®¤à¯à®¤à¯';
@@ -102,104 +144,250 @@ $labels['nextmessage'] = 'அடà¯à®¤à¯à®¤ செயà¯à®¤à®¿à®¯à¯ˆ கà®
$labels['lastmessage'] = 'கடைசி செயà¯à®¤à®¿à®¯à¯ˆ காடà¯à®Ÿà¯';
$labels['backtolist'] = 'செயà¯à®¤à®¿ படà¯à®Ÿà®¿à®¯à®²à¯à®•à¯à®•à¯ செலà¯à®²à®µà¯à®®à¯';
$labels['viewsource'] = 'மூலதà¯à®¤à¯ˆ காடà¯à®Ÿà¯';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'செயà¯à®¤à®¿à®•à®³à¯ˆ கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
$labels['markread'] = 'படிதà¯à®¤à®¤à®¾à®• கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
$labels['markunread'] = 'படிகà¯à®•à®¾à®¤à®¤à®¾à®• கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
$labels['markflagged'] = 'நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿà¯à®Ÿà®¤à®¾à®• கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
$labels['markunflagged'] = 'நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿà®¾à®¤à®¤à®¾à®• கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯';
$labels['all'] = 'எலà¯à®²à®¾à®®à¯';
$labels['none'] = 'எதà¯à®µà¯à®®à®¿à®²à¯à®²à¯ˆ';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'படிகà¯à®•à®¾à®¤à®¤à¯';
$labels['flagged'] = 'நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿà¯à®Ÿà®¤à¯';
$labels['unanswered'] = 'பதிலளிகà¯à®•à®¾à®¤à®¤à¯';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'நீகà¯à®•à®¿à®¯à®¤à¯';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'தலைகீழà¯';
$labels['filter'] = 'வடிபà¯à®ªà®¾à®©à¯';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'எதà¯à®µà¯à®®à®¿à®²à¯à®²à¯ˆ';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'கà¯à®±à¯à®•à®¿à®¯';
$labels['empty'] = 'காலி';
+
$labels['quota'] = 'பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ அளவà¯';
$labels['unknown'] = 'தெரியாத';
$labels['unlimited'] = 'அளவிலà¯à®²à®¾';
+
$labels['quicksearch'] = 'விரைவ௠தேடலà¯';
$labels['resetsearch'] = 'தேடலை மறà¯à®…மை';
$labels['searchmod'] = 'மாறà¯à®±à®¿à®•à®³à¯ˆ தேடà¯';
$labels['msgtext'] = 'à®®à¯à®´à¯ செயà¯à®¤à®¿';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'பà¯à®¤à¯ சாளரதà¯à®¤à®¿à®²à¯ திற';
$labels['emlsave'] = 'பதிவிறகà¯à®•à¯ (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'பà¯à®¤à®¿à®¯à®¤à®¾à®• திரà¯à®¤à¯à®¤à¯';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'இபà¯à®ªà¯‡à®¾à®¤à¯ அனà¯à®ªà¯à®ªà¯';
$labels['savemessage'] = 'இநà¯à®¤ வரைவை சேமி';
$labels['addattachment'] = 'ஒர௠கோபà¯à®ªà¯ˆ இணைகà¯à®•à®µà¯à®®à¯';
$labels['charset'] = 'எழà¯à®¤à¯à®¤à¯ கà¯à®±à®¿à®®à¯à®±à¯ˆ';
$labels['editortype'] = 'திரà¯à®¤à¯à®¤à¯à®®à¯ வகை';
$labels['returnreceipt'] = 'திரà¯à®®à¯à®ªà¯ சீடà¯à®Ÿà¯';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'எழà¯à®¤à¯à®¤à¯à®ªà¯à®ªà®¿à®´à¯ˆ சரிபாரà¯';
$labels['resumeediting'] = 'திரà¯à®¤à¯à®¤à¯à®µà®¤à¯ˆ தொடரவà¯à®®à¯';
$labels['revertto'] = 'à®®à¯à®¨à¯à®¤à®¿à®¯ நிலைகà¯à®•à¯ திரà¯à®®à¯à®ªà®µà¯à®®à¯';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'கோபà¯à®ªà¯ இணைபà¯à®ªà¯à®•à®³à¯';
$labels['upload'] = 'பதிவேறà¯à®±à¯';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'மூடà¯';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'கà¯à®±à¯ˆà®¨à¯à®¤';
$labels['lowest'] = 'மிக கà¯à®±à¯ˆà®¨à¯à®¤';
$labels['normal'] = 'சாதாரண';
$labels['high'] = 'அதிக';
$labels['highest'] = 'மிக அதிக';
+
$labels['nosubject'] = '(தலைபà¯à®ªà®¿à®²à¯à®²à®¾)';
$labels['showimages'] = 'படஙà¯à®•à®³à¯ˆ காடà¯à®Ÿà¯';
$labels['alwaysshow'] = '$-னிடமிரà¯à®¨à¯à®¤à¯ வரà¯à®®à¯ படஙà¯à®•à®³à¯ˆ காடà¯à®Ÿà¯';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'எளிய உரை';
$labels['savesentmessagein'] = 'அனà¯à®ªà¯à®ªà®¿à®¯ அஞà¯à®šà®²à¯ˆ இஙà¯à®•à¯ சேமிகà¯à®•à®µà¯à®®à¯';
$labels['dontsave'] = 'சேமிகà¯à®•à®¾à®¤à¯‡';
$labels['maxuploadsize'] = 'அனà¯à®®à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯ அதிகபடà¯à®š கோபà¯à®ªà¯ அளவ௠$';
+
$labels['addcc'] = 'நகல௠சேரà¯';
$labels['addbcc'] = 'மறை நகல௠சேரà¯';
$labels['addreplyto'] = 'பதிலளிகà¯à®• வேணà¯à®Ÿà®¿à®¯à®µà®°à¯à®•à®³à¯ˆ சேரà¯';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'இநà¯à®¤ செயà¯à®¤à®¿à®¯à®¿à®©à¯ அனà¯à®ªà¯à®ªà¯à®©à®°à¯ இதை படிதà¯à®¤à®µà¯à®Ÿà®©à¯ அறிவிகà¯à®•à¯à®®à¯à®ªà®Ÿà®¿ கேடà¯à®Ÿà®¾à®°à¯. அறிவிகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
$labels['receiptread'] = 'திரà¯à®®à¯à®ªà¯ சீடà¯à®Ÿà¯ (படி)';
$labels['yourmessage'] = 'இத௠உஙà¯à®•à®³à¯ செயà¯à®¤à®¿à®¯à®¿à®©à¯ திரà¯à®®à¯à®ªà¯ சீடà¯à®Ÿà¯';
$labels['receiptnote'] = 'கà¯à®±à®¿à®ªà¯à®ªà¯: இநà¯à®¤ ஒபà¯à®ªà¯à®•à¯ˆ பெறà¯à®©à®°à®¿à®Ÿà®®à¯ செயà¯à®¤à®¿à®¯à¯ˆ காடà¯à®Ÿà®¿à®¯à®¤à®±à¯à®•à®¾à®• வரà¯à®•à®¿à®±à®¤à¯. அவர௠அதை படிதà¯à®¤à®¤à®±à¯à®•à¯ எநà¯à®¤ உதà¯à®¤à®¿à®°à®µà®¾à®¤à®®à¯à®®à¯ இலà¯à®²à¯ˆ';
+
+// address boook
$labels['name'] = 'காடà¯à®šà®¿ பெயரà¯';
$labels['firstname'] = 'à®®à¯à®¤à®±à¯ பெயரà¯';
$labels['surname'] = 'கடைசி பெயரà¯';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'மினà¯à®©à®žà¯à®šà®²à¯';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'பà¯à®¤à¯ தொடரà¯à®ªà¯ˆ சேரà¯';
$labels['editcontact'] = 'தொடரà¯à®ªà¯ˆ திரà¯à®¤à¯à®¤à¯';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'திரà¯à®¤à¯à®¤à¯';
$labels['cancel'] = 'ரதà¯à®¤à¯';
$labels['save'] = 'சேமி';
$labels['delete'] = 'நீகà¯à®•à¯';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'பà¯à®¤à¯ தொடரà¯à®ªà¯ அடà¯à®Ÿà¯ˆà®¯à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯';
$labels['deletecontact'] = 'தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ தொடரà¯à®ªà¯à®•à®³à¯ˆ நீகà¯à®•à¯';
$labels['composeto'] = 'இவரà¯-க௠அஞà¯à®šà®²à¯ எழà¯à®¤à¯';
$labels['contactsfromto'] = 'தொடரà¯à®ªà¯à®•à®³à¯ $countல௠$from லிரà¯à®¨à¯à®¤à¯ $to வரை';
$labels['print'] = 'அசà¯à®šà®¿à®Ÿà¯';
$labels['export'] = 'à®à®±à¯à®±à¯à®®à®¤à®¿';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'தொடரà¯à®ªà¯à®•à®³à¯ˆ vCard வடிவதà¯à®¤à®¿à®²à¯ à®à®±à¯à®±à¯à®®à®¤à®¿ செயà¯à®¯à®µà¯à®®à¯';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'à®®à¯à®¨à¯à®¤à®¿à®¯ கà¯à®´à¯à®µà¯ˆ காடà¯à®Ÿà¯';
$labels['firstpage'] = 'à®®à¯à®¤à®²à¯ கà¯à®´à¯à®µà¯ˆ காடà¯à®Ÿà¯';
$labels['nextpage'] = 'அடà¯à®¤à¯à®¤ கà¯à®´à¯à®µà¯ˆ காடà¯à®Ÿà¯';
$labels['lastpage'] = 'கடைசி கà¯à®´à¯à®µà¯ˆ காடà¯à®Ÿà¯';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'கà¯à®´à¯à®•à¯à®•à®³à¯';
$labels['personaladrbook'] = 'சà¯à®¯ à®®à¯à®•à®µà®°à®¿';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'இறகà¯à®•à¯à®®à®¤à®¿';
$labels['importcontacts'] = 'தொடரà¯à®ªà¯à®•à®³à¯ˆ இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®µà¯à®®à¯';
$labels['importfromfile'] = 'இநà¯à®¤ கோபà¯à®ªà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®µà¯à®®à¯:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'எலà¯à®²à®¾ தொடரà¯à®ªà¯à®•à®³à¯ˆà®¯à¯à®®à¯ மாறà¯à®±à®¿ அமை';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
$labels['done'] = 'à®®à¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯';
+
+// settings
$labels['settingsfor'] = 'இதறà¯à®•à®¾à®© அமைபà¯à®ªà¯à®•à®³à¯';
+$labels['about'] = 'About';
$labels['preferences'] = 'விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
$labels['userpreferences'] = 'பயனர௠விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
$labels['editpreferences'] = 'பயனர௠விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯ˆ திரà¯à®¤à¯à®¤à¯';
+
$labels['identities'] = 'அடையாளஙà¯à®•à®³à¯';
$labels['manageidentities'] = 'இநà¯à®¤ கணகà¯à®•à®¿à®±à¯à®•à®¾à®© அடையாளஙà¯à®•à®³à¯ˆ நிறà¯à®µà®¾à®•à®¿à®•à¯à®•à®µà¯à®®à¯';
$labels['newidentity'] = 'பà¯à®¤à¯ அடையாளமà¯';
+
$labels['newitem'] = 'பà¯à®¤à¯ உரà¯à®ªà¯à®ªà®Ÿà®¿';
$labels['edititem'] = 'உரà¯à®ªà¯à®ªà®Ÿà®¿à®¯à¯ˆ திரà¯à®¤à¯à®¤à¯';
+
$labels['preferhtml'] = 'HTML காடà¯à®Ÿà¯';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML செயà¯à®¤à®¿';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'நலà¯à®² தேதி';
$labels['setdefault'] = 'இயலà¯à®ªà¯ˆ அமை';
$labels['autodetect'] = 'தானியஙà¯à®•à®¿';
@@ -208,8 +396,13 @@ $labels['timezone'] = 'நேர மணà¯à®Ÿà®²à®®à¯';
$labels['pagesize'] = 'ஒர௠பகà¯à®•à®¤à¯à®¤à®¿à®±à¯à®•à®¾à®© வரிகளà¯';
$labels['signature'] = 'கையொபà¯à®ªà®®à¯';
$labels['dstactive'] = 'பகல௠ஒளி சேமிபà¯à®ªà¯ நேரமà¯';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML செயà¯à®¤à®¿à®•à®³à¯ˆ எழà¯à®¤à¯';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML கையொபà¯à®ªà®®à¯';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'à®®à¯à®¨à¯à®¤à®¿à®¯ பாதà¯à®¤à®¿à®¯à¯ˆ காடà¯à®Ÿà¯';
$labels['skin'] = 'à®®à¯à®•à®ªà¯à®ªà¯ தோறà¯à®±à®®à¯';
$labels['logoutclear'] = 'வெளியேறà¯à®®à¯ போத௠கà¯à®ªà¯à®ªà¯ˆà®¯à¯ˆ காலி செயà¯';
@@ -220,33 +413,43 @@ $labels['mailboxview'] = 'அஞà¯à®šà®²à¯ பெடà¯à®Ÿà®¿ காடà¯à®šà
$labels['mdnrequests'] = 'அனà¯à®ªà¯à®ªà¯à®©à®°à¯ அறிவிபà¯à®ªà¯à®•à®³à¯';
$labels['askuser'] = 'பயனரை கேளà¯';
$labels['autosend'] = 'தானாக அனà¯à®ªà¯à®ªà¯';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'தவிரà¯';
$labels['readwhendeleted'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நீகà¯à®•à¯à®®à¯ போத௠படிதà¯à®¤à®¤à®¾à®• கà¯à®±à®¿';
$labels['flagfordeletion'] = 'நீகà¯à®•à¯à®µà®¤à®±à¯à®•à¯ பதிலாக நீகà¯à®•à¯à®µà®¤à®¾à®• நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿà¯';
$labels['skipdeleted'] = 'நீகà¯à®•à®¿à®¯ செயà¯à®¤à®¿à®•à®³à¯ˆ காடà¯à®Ÿà®¾à®¤à¯‡';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'தொலை தூர தà¯à®£à¯ˆ படஙà¯à®•à®³à¯ˆ காடà¯à®Ÿà¯';
$labels['fromknownsenders'] = 'தெரிநà¯à®¤ அனà¯à®ªà¯à®ªà¯à®©à®°à®¿à®Ÿà®®à®¿à®°à¯à®¨à¯à®¤à¯';
$labels['always'] = 'எபà¯à®ªà¯‡à®¾à®¤à¯à®®à¯';
$labels['showinlineimages'] = 'இணைதà¯à®¤ படஙà¯à®•à®³à¯ˆ செயà¯à®¤à®¿à®•à®³à¯à®•à¯à®•à¯ கீழே காடà¯à®Ÿà®µà¯à®®à¯';
$labels['autosavedraft'] = 'தானாக வரைவà¯à®•à®³à¯ˆ சேமி';
$labels['everynminutes'] = 'ஒவà¯à®µà¯†à®¾à®°à¯ $n நிமிடஙà¯à®•à®³à¯à®•à¯à®•à¯à®®à¯';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'எபà¯à®ªà¯‡à®¾à®¤à¯à®®à®¿à®²à¯à®²à¯ˆ';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'செயà¯à®¤à®¿à®•à®³à¯ˆ காடà¯à®Ÿà¯à®•à®¿à®±à®¤à¯';
$labels['messagescomposition'] = 'செயà¯à®¤à®¿à®•à®³à¯ˆ எழà¯à®¤à¯à®•à®¿à®±à®¤à¯';
$labels['mimeparamfolding'] = 'இணைபà¯à®ªà¯ பெயரà¯à®•à®³à¯';
$labels['2231folding'] = 'à®®à¯à®´à¯ RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'à®®à¯à®´à¯ RFC 2047 (மறà¯à®±)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'மேமà¯à®ªà®Ÿà¯à®Ÿ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
$labels['focusonnewmessage'] = 'உலாவி சாளரதà¯à®¤à¯ˆ பà¯à®¤à¯ செயà¯à®¤à®¿à®•à¯à®•à®¾à®• கவனி';
$labels['checkallfolders'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿à®•à®³à¯à®•à¯à®•à®¾à®• எலà¯à®²à®¾ அடைவà¯à®•à®³à¯ˆà®¯à¯à®®à¯ சரிபாரà¯';
$labels['displaynext'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நீகà¯à®•à¯/நகர௠பிறக௠அடà¯à®¤à¯à®¤ செயà¯à®¤à®¿à®¯à¯ˆ காடà¯à®Ÿà¯';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'à®®à¯à®•à¯à®•à®¿à®¯ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'பிரிவà¯';
$labels['maintenance'] = 'பராமரிபà¯à®ªà¯';
$labels['newmessage'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿';
$labels['signatureoptions'] = 'கையொபà¯à®ª விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
$labels['whenreplying'] = 'பதிலளிகà¯à®•à¯à®®à¯ போதà¯';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿à®¯à¯ˆ அசலின௠மேல௠தà¯à®µà®•à¯à®•à¯';
$labels['replybottomposting'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿à®¯à¯ˆ அசலின௠கீழ௠தà¯à®µà®•à¯à®•à¯';
$labels['replyremovesignature'] = 'பதிலளிகà¯à®•à¯à®®à¯ போத௠அசல௠கையெழà¯à®¤à¯à®¤à¯ˆ செயà¯à®¤à®¿à®¯à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ நீகà¯à®•à®µà¯à®®à¯';
@@ -254,6 +457,25 @@ $labels['autoaddsignature'] = 'தானாக கையொபà¯à®ªà®¤à¯à®¤
$labels['newmessageonly'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿ மடà¯à®Ÿà¯à®®à¯';
$labels['replyandforwardonly'] = 'பதிலளிபà¯à®ªà¯ à®®à¯à®©à¯à®…னà¯à®ªà¯à®ªà¯ மடà¯à®Ÿà¯à®®à¯';
$labels['insertsignature'] = 'கையோபà¯à®ªà®®à®¿à®Ÿà¯';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'அடைவà¯';
$labels['folders'] = 'அடைவà¯à®•à®³à¯';
$labels['foldername'] = 'அடைவ௠பெயரà¯';
@@ -263,11 +485,54 @@ $labels['create'] = 'உரà¯à®µà®¾à®•à¯à®•à¯';
$labels['createfolder'] = 'பà¯à®¤à¯ அடைவ௠உரà¯à®µà®¾à®•à¯à®•à¯';
$labels['managefolders'] = 'அடைவà¯à®•à®³à¯ˆ நிறà¯à®µà®•à®¿';
$labels['specialfolders'] = 'சிறபà¯à®ªà¯ அடைவà¯à®•à®³à¯';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'வாரியாக அடà¯à®•à¯à®•à¯';
$labels['sortasc'] = 'à®à®±à¯ வரிசையாக அடà¯à®•à¯à®•à¯';
$labels['sortdesc'] = 'இறஙà¯à®•à¯ வரிசையாக அடà¯à®•à¯à®•à¯';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ta_IN/messages.inc b/program/localization/ta_IN/messages.inc
index d496b3836..65e611f88 100644
--- a/program/localization/ta_IN/messages.inc
+++ b/program/localization/ta_IN/messages.inc
@@ -15,17 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'நà¯à®´à¯ˆà®µà¯ தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤à®¤à¯';
$messages['cookiesdisabled'] = 'உஙà¯à®•à®³à¯ உலாவி நினைவிகளை அனà¯à®®à®¤à®¿à®ªà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ';
$messages['sessionerror'] = 'உஙà¯à®•à®³à¯ அமரà¯à®µà¯ செலà¯à®²à®¾à®¤à¯ அலà¯à®²à®¤à¯ à®®à¯à®Ÿà®¿à®µà¯à®±à¯à®±à®¤à¯';
$messages['storageerror'] = 'IMAP சேவையகதà¯à®¤à®¿à®±à¯à®•à®¾à®© இணைபà¯à®ªà¯ தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤à®¤à¯';
$messages['servererror'] = 'சேவையக பிழை!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'செலà¯à®²à®¾à®¤ வேணà¯à®Ÿà¯à®•à¯‹à®³à¯! எநà¯à®¤ தரவà¯à®®à¯ சேமிகà¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'இநà¯à®¤ தபால௠பெடà¯à®Ÿà®¿à®¯à®¿à®²à¯ எநà¯à®¤ தரவà¯à®®à¯ சேமிகà¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ';
$messages['loggedout'] = 'நீஙà¯à®•à®³à¯ அமரà¯à®µà¯ˆ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• à®®à¯à®Ÿà®¿à®¤à¯à®¤à¯€à®°à¯à®•à®³à¯. வணகà¯à®•à®®à¯';
$messages['mailboxempty'] = 'தபால௠பெடà¯à®Ÿà®¿ காலியாக உளà¯à®³à®¤à¯';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯...';
$messages['uploading'] = 'கோபà¯à®ªà¯ˆ à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'தரவை à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯...';
$messages['checkingmail'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿à®•à®³à¯ˆ சரிபாரà¯à®•à¯à®•à®¿à®±à®¤à¯...';
$messages['sendingmessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ அனà¯à®ªà¯à®ªà¯à®•à®¿à®±à®¤à¯...';
@@ -35,21 +48,31 @@ $messages['messagesaved'] = 'செயà¯à®¤à®¿ வரைவில௠சேமà
$messages['successfullysaved'] = 'வெறà¯à®±à®¿à®•à®°à®®à®¾à®• சேமிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['addedsuccessfully'] = 'தொடரà¯à®ªà¯ சேமிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['contactexists'] = 'இநà¯à®¤ மினà¯à®©à®žà¯à®šà®²à¯ à®®à¯à®•à®µà®°à®¿à®¯à¯à®Ÿà®©à¯ ஒர௠தொடரà¯à®ªà¯ à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³à®¤à¯';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'உஙà¯à®•à®³à¯ தனிபà¯à®ªà®Ÿà¯à®Ÿ தகவலை பாதà¯à®•à®¾à®•à¯à®•, தொலை தூரப௠படஙà¯à®•à®³à¯ இநà¯à®¤ செயà¯à®¤à®¿à®¯à®¿à®²à¯ தடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['encryptedmessage'] = 'மனà¯à®©à®¿à®•à¯à®•à®µà¯à®®à¯! இநà¯à®¤ செயà¯à®¤à®¿ கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ அதனால௠காடà¯à®Ÿ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯.';
$messages['nocontactsfound'] = 'எநà¯à®¤ தொடரà¯à®ªà¯à®•à®³à¯à®®à¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ';
$messages['contactnotfound'] = 'நீஙà¯à®•à®³à¯ வேணà¯à®Ÿà®¿à®¯ தொடரà¯à®ªà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'செயà¯à®¤à®¿ அனà¯à®ªà¯à®ªà¯à®µà®¤à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯';
$messages['senttooquickly'] = 'இநà¯à®¤ செயà¯à®¤à®¿ அனà¯à®ªà¯à®ªà¯à®µà®¤à®±à¯à®•à¯ à®®à¯à®©à¯à®ªà¯ தயவ௠செயà¯à®¤à¯ $sec வினாடி(களà¯) காதà¯à®¤à®¿à®°à¯à®•à¯à®•à®µà¯à®®à¯.';
+$messages['errorsavingsent'] = 'அனà¯à®ªà¯à®ªà®¿à®¯ அஞà¯à®šà®²à¯ˆ சேமிகà¯à®•à¯à®®à¯ போத௠பிழை à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
+$messages['errorsaving'] = 'சேமிகà¯à®•à¯à®®à¯ போத௠பிழை à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['errormoving'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['errormarking'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['deletecontactconfirm'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ தொடரà¯à®ªà¯à®•à®³à¯ˆ நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ செயà¯à®¤à®¿à®•à®³à¯ˆ நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
$messages['deletefolderconfirm'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடைவை நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
$messages['purgefolderconfirm'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடைவிலிரà¯à®•à¯à®•à¯à®®à¯ எலà¯à®²à®¾ செயà¯à®¤à®¿à®•à®³à¯ˆà®¯à¯à®®à¯ நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'அடைவை நீகà¯à®•à¯à®•à®¿à®±à®¤à¯...';
$messages['foldermoving'] = 'அடைவை நகரà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'விணà¯à®£à®ªà¯à®ªà®¤à¯à®¤à¯ˆ à®®à¯à®´à¯à®®à¯ˆà®¯à®¾à®• நிறைவ௠செயà¯à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['noemailwarning'] = 'தயவ௠செயà¯à®¤à¯ உணà¯à®®à¯ˆà®¯à®¾à®© மினà¯à®©à®žà¯à®šà®²à¯ˆ எழà¯à®¤à¯à®™à¯à®•à®³à¯';
$messages['nonamewarning'] = 'தயவ௠செயà¯à®¤à¯ பெயரை எழà¯à®¤à¯à®™à¯à®•à®³à¯';
@@ -63,27 +86,46 @@ $messages['noldapserver'] = 'தயவ௠செயà¯à®¤à¯ தேடà¯à®µà®¤à
$messages['nosearchname'] = 'தயவ௠செயà¯à®¤à¯ தொடரà¯à®ªà®¿à®©à¯ பெயரோ மினà¯à®©à®žà¯à®šà®²à¯ à®®à¯à®•à®µà®°à®¿à®¯à¯‡à®¾ எழà¯à®¤à¯à®™à¯à®•à®³à¯';
$messages['notuploadedwarning'] = 'எலà¯à®²à®¾ இணைபà¯à®ªà¯à®•à®³à¯à®®à¯ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ. தயவ௠செயà¯à®¤à¯ காதà¯à®¤à®¿à®°à¯à®™à¯à®•à®³à¯ அலà¯à®²à®¤à¯ à®à®±à¯à®±à®¤à¯à®¤à¯ˆ ரதà¯à®¤à¯ செயà¯à®¯à¯à®™à¯à®•à®³à¯.';
$messages['searchsuccessful'] = '$nr செயà¯à®¤à®¿à®•à®³à¯ கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'தேடà¯à®¤à®²à¯ எநà¯à®¤ பொரà¯à®¤à¯à®¤à®¤à¯à®¤à¯ˆà®¯à¯à®®à¯ அனà¯à®ªà¯à®ªà®µà®¿à®²à¯à®²à¯ˆ';
$messages['searching'] = 'தேடà¯à®•à®¿à®±à®¤à¯...';
$messages['checking'] = 'சரி பாரà¯à®•à¯à®•à®¿à®±à®¤à¯...';
$messages['nospellerrors'] = 'எழà¯à®¤à¯à®¤à¯ பிழைகள௠இலà¯à®²à¯ˆ';
$messages['folderdeleted'] = 'அடைவ௠வெறà¯à®±à®¿à®•à®°à®®à®¾à®• நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'வெறà¯à®±à®¿à®•à®°à®®à®¾à®• நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['converting'] = 'வடிவதà¯à®¤à¯ˆ நீகà¯à®•à¯à®•à®¿à®±à®¤à¯...';
$messages['messageopenerror'] = 'சேவையகதà¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ செயà¯à®¤à®¿à®¯à¯ˆ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['fileuploaderror'] = 'கோபà¯à®ªà¯ à®à®±à¯à®±à®®à¯ தோலà¯à®µà®¿à®¯à®Ÿà®¾à®¨à¯à®¤à®¤à¯';
$messages['filesizeerror'] = 'à®à®±à¯à®±à®¿à®¯ கோபà¯à®ªà¯ அதிகபடà¯à®š அளவான $size-஠மீறியதà¯';
+$messages['copysuccess'] = 'வெறà¯à®±à®¿à®•à®°à®®à®¾à®• $nr à®®à¯à®•à®µà®°à®¿à®•à¯à®•à®³à¯ˆ நகலெடà¯à®¤à¯à®¤à®¤à¯';
+$messages['copyerror'] = 'எநà¯à®¤ à®®à¯à®•à®µà®°à®¿à®¯à¯ˆà®¯à¯à®®à¯ நகலெடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['sourceisreadonly'] = 'இநà¯à®¤ à®®à¯à®•à®µà®°à®¿à®¯à®¿à®©à¯ மூலதà¯à®¤à¯ˆ படிகà¯à®• மடà¯à®Ÿà¯à®®à¯à®¤à®¾à®©à¯ à®®à¯à®Ÿà®¿à®¯à¯à®®à¯';
$messages['errorsavingcontact'] = 'தொடரà¯à®ªà¯ à®®à¯à®•à®µà®°à®¿à®¯à¯ˆ சேமிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['movingmessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'படிதà¯à®¤ சீடà¯à®Ÿà¯ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• அனà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['errorsendingreceipt'] = 'சீடà¯à®Ÿà¯ˆ அனà¯à®ªà¯à®ª à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடையாளதà¯à®¤à¯ˆ நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ இத௠தான௠கடைசி';
$messages['forbiddencharacter'] = 'அடைவ௠பெயரில௠தடை செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ எழà¯à®¤à¯à®¤à¯à®•à¯à®•à®³à¯ உளà¯à®³à®¤à¯';
$messages['selectimportfile'] = 'தயவ௠செயà¯à®¤à¯ à®à®±à¯à®±à¯à®µà®¤à®±à¯à®•à¯ ஒர௠கோபà¯à®ªà¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®™à¯à®•à®³à¯';
$messages['addresswriterror'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ தொடரà¯à®ªà¯à®•à®³à®¿à®²à¯ எழà¯à®¤ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯, தயவ௠செயà¯à®¤à¯ காதà¯à®¤à®¿à®°à¯à®™à¯à®•à®³à¯...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>வெறà¯à®±à®¿à®•à®°à®®à®¾à®• $inserted தொடரà¯à®ªà¯à®•à®³à¯ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯, à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³ $skipped தொடரà¯à®ªà¯à®•à®³à¯ தவிரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯</b>: <p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'பணி அனà¯à®®à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ!';
$messages['nofromaddress'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ அடையாளதà¯à®¤à®¿à®²à¯ மினà¯à®©à®žà¯à®šà®²à¯ இலà¯à®²à¯ˆ';
$messages['editorwarning'] = 'எளிய உரை திரà¯à®¤à¯à®¤à®¿à®•à¯à®•à¯ மாறà¯à®µà®¤à®©à¯ மூலம௠எலà¯à®²à®¾ உரை வடிவஙà¯à®•à®³à¯à®®à¯ தொலைநà¯à®¤à¯ போகக௠கூடà¯à®®à¯. தொடர விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
@@ -95,4 +137,35 @@ $messages['smtptoerror'] = 'SMTP பிழை ($code): "$to" பெறà¯à®©à®°à
$messages['smtprecipientserror'] = 'SMTP பிழை : பெறà¯à®©à®°à¯ படà¯à®Ÿà®¿à®¯à®²à¯ˆ பிரிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['smtperror'] = 'SMTP பிழை: $msg';
$messages['emailformaterror'] = 'தவறான மினà¯à®©à®žà¯à®šà®²à¯ à®®à¯à®•à®µà®°à®¿: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/th_TH/labels.inc b/program/localization/th_TH/labels.inc
index 9ee0858e2..03b4161fb 100644
--- a/program/localization/th_TH/labels.inc
+++ b/program/localization/th_TH/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'ยินดีต้อนรับสู่ $product';
$labels['username'] = 'บัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰';
$labels['password'] = 'รหัสผ่าน';
$labels['server'] = 'เซิร์ฟเวอร์';
$labels['login'] = 'เข้าสู่ระบบ';
+
+// taskbar
$labels['logout'] = 'ออà¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸š';
$labels['mail'] = 'อีเมล์';
$labels['settings'] = 'ปรับà¹à¸•à¹ˆà¸‡à¸„่าส่วนตัว';
$labels['addressbook'] = 'สมุดรายชื่อ';
+
+// mailbox names
$labels['inbox'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸‚าเข้า';
$labels['drafts'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมายร่าง';
$labels['sent'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸‚าออà¸';
$labels['trash'] = 'ถังขยะ';
$labels['junk'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมายขยะ';
+
+// message listing
$labels['subject'] = 'หัวจดหมาย';
$labels['from'] = 'ผู้ส่ง';
$labels['sender'] = 'ผู้ส่ง';
@@ -36,23 +46,34 @@ $labels['to'] = 'ผู้รับ';
$labels['cc'] = 'คัดลอà¸';
$labels['bcc'] = 'à¹à¸­à¸šà¸ªà¸³à¹€à¸™à¸²à¸–ึง';
$labels['replyto'] = 'ตอบà¸à¸¥à¸±à¸š';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'วันที่';
$labels['size'] = 'ขนาด';
$labels['priority'] = 'ระดับความสำคัà¸';
$labels['organization'] = 'องค์à¸à¸£';
$labels['readstatus'] = 'สถานะà¸à¸²à¸£à¹€à¸›à¸´à¸”อ่าน';
$labels['listoptions'] = 'ตัวเลือà¸à¸à¸²à¸£à¹à¸ªà¸”งรายà¸à¸²à¸£';
+
$labels['mailboxlist'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมาย';
$labels['messagesfromto'] = 'จดหมายจาภ$from ถึง $to จำนวน $count ฉบับ';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'จดหมายฉบับที่ $nr จาภ$count ฉบับ';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'คัดลอà¸';
$labels['move'] = 'เลื่อน';
$labels['moveto'] = 'ย้ายไป...';
$labels['download'] = 'ดาวน์โหลด';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'à¹à¸ªà¸”ง';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ชื่อไฟล์';
$labels['filesize'] = 'ขนาดไฟล์';
+
$labels['addtoaddressbook'] = 'บันทึà¸à¹ƒà¸™à¸ªà¸¡à¸¸à¸”รายชื่อ';
+
+// weekdays short
$labels['sun'] = 'อ';
$labels['mon'] = 'จ';
$labels['tue'] = 'อ';
@@ -60,6 +81,8 @@ $labels['wed'] = 'พ';
$labels['thu'] = 'พฤ';
$labels['fri'] = 'ศ';
$labels['sat'] = 'ส';
+
+// weekdays long
$labels['sunday'] = 'วันอาทิตย์';
$labels['monday'] = 'วันจันทร์';
$labels['tuesday'] = 'วันอังคาร';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'วันพุธ';
$labels['thursday'] = 'วันพฤหัสบดี';
$labels['friday'] = 'วันศุà¸à¸£à¹Œ';
$labels['saturday'] = 'วันเสาร์';
+
+// months short
$labels['jan'] = 'ม.ค.';
$labels['feb'] = 'à¸.พ.';
$labels['mar'] = 'มี.ค.';
@@ -79,6 +104,8 @@ $labels['sep'] = 'à¸.ย.';
$labels['oct'] = 'ต.ค.';
$labels['nov'] = 'พ.ย.';
$labels['dec'] = 'ธ.ค.';
+
+// months long
$labels['longjan'] = 'มà¸à¸£à¸²à¸„ม';
$labels['longfeb'] = 'à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ';
$labels['longmar'] = 'มีนาคม';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'à¸à¸±à¸™à¸¢à¸²à¸¢à¸™';
$labels['longoct'] = 'ตุลาคม';
$labels['longnov'] = 'พฤศจิà¸à¸²à¸¢à¸™';
$labels['longdec'] = 'ธันวาคม';
+
$labels['today'] = 'วันนี้';
+
+// toolbar buttons
$labels['refresh'] = 'รีเฟรช';
$labels['checkmail'] = 'ตรวจสอบจดหมายใหม่';
$labels['compose'] = 'เขียนจดหมายใหม่';
@@ -102,6 +132,7 @@ $labels['replytoallmessage'] = 'ตอบà¸à¸¥à¸±à¸šà¸–ึงทุà¸à¸„นใ
$labels['replyall'] = 'ตอบà¸à¸¥à¸±à¸šà¸—ั้งหมด';
$labels['replylist'] = 'รายชื่อตอบà¸à¸¥à¸±à¸š';
$labels['forward'] = 'ส่งต่อ';
+$labels['forwardinline'] = 'Forward inline';
$labels['forwardattachment'] = 'ส่งต่อเป็นไฟล์à¹à¸™à¸š';
$labels['forwardmessage'] = 'ส่งต่อจดหมาย';
$labels['deletemessage'] = 'ลบจดหมาย';
@@ -117,59 +148,125 @@ $labels['mark'] = 'ทำเครื่องหมาย';
$labels['markmessages'] = 'ทำเครื่องหมายข้อความ';
$labels['markread'] = 'ว่าอ่านà¹à¸¥à¹‰à¸§';
$labels['markunread'] = 'ว่ายังไม่ได้อ่าน';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
$labels['moreactions'] = 'à¸à¸²à¸£à¸à¸£à¸°à¸—ำเพิ่มเติม...';
$labels['more'] = 'เพิ่มเติม';
$labels['back'] = 'ย้อนà¸à¸¥à¸±à¸š';
$labels['options'] = 'ตัวเลือà¸';
+
$labels['select'] = 'เลือà¸';
$labels['all'] = 'ทั้งหมด';
$labels['none'] = 'ไม่เลือà¸';
$labels['currpage'] = 'หน้าปัจจุบัน';
$labels['unread'] = 'จดหมายที่ไม่ได้อ่าน';
+$labels['flagged'] = 'Flagged';
$labels['unanswered'] = 'ยังไม่ได้ตอบ';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'ลบà¹à¸¥à¹‰à¸§';
$labels['undeleted'] = 'ยังไม่ได้ลบ';
+$labels['invert'] = 'Invert';
$labels['filter'] = 'ตัวà¸à¸£à¸­à¸‡à¸‚้อมูล';
$labels['list'] = 'รายà¸à¸²à¸£';
+$labels['threads'] = 'Threads';
$labels['expand-all'] = 'à¹à¸ªà¸”งทั้งหมด';
$labels['expand-unread'] = 'à¹à¸ªà¸”งเฉพาะที่ยังไม่ได้อ่าน';
$labels['collapse-all'] = 'ปิดทั้งหมด';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
$labels['fromto'] = 'จาà¸/ถึง';
+$labels['flag'] = 'Flag';
$labels['attachment'] = 'ไฟล์à¹à¸™à¸š';
$labels['nonesort'] = 'ไม่เลือà¸';
$labels['sentdate'] = 'วันที่ส่ง';
$labels['arrival'] = 'วันที่มาถึง';
$labels['asc'] = 'เรียงจาà¸à¸™à¹‰à¸­à¸¢à¸¡à¸²à¸¡à¸²à¸';
$labels['desc'] = 'เรีียงจาà¸à¸¡à¸²à¸à¹„ปน้อย';
+$labels['listcolumns'] = 'List columns';
$labels['listsorting'] = 'จัดเรียงคอลัมน์';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'à¹à¸šà¸šà¸¢à¹ˆà¸­';
$labels['empty'] = 'ว่างเปล่า';
+
$labels['quota'] = 'พื้นที่ใช้งาน';
$labels['unknown'] = 'ไม่ทราบ';
$labels['unlimited'] = 'ไม่จำà¸à¸±à¸”';
+
$labels['quicksearch'] = 'ค้นหาà¹à¸šà¸šà¸”่วน';
$labels['resetsearch'] = 'ล้างà¸à¸²à¸£à¸„้นหา';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
$labels['body'] = 'เนื้อหา';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'ส่งจดหมาย';
$labels['savemessage'] = 'บันทึà¸à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡';
$labels['addattachment'] = 'à¹à¸™à¸šà¹„ฟล์';
$labels['charset'] = 'Charset';
+$labels['editortype'] = 'Editor type';
$labels['returnreceipt'] = 'ตอบà¸à¸¥à¸±à¸šà¸œà¸¹à¹‰à¸£à¸±à¸š';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'ตรวจสอบคำผิด';
$labels['resumeediting'] = 'à¹à¸à¹‰à¹„ขต่อ';
$labels['revertto'] = 'ย้นà¸à¸¥à¸±à¸šà¹„ปยัง';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'ไฟล์à¹à¸™à¸š';
$labels['upload'] = 'อัพโหลด';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'ปิด';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'ต่ำ';
$labels['lowest'] = 'ต่ำสุด';
$labels['normal'] = 'ปà¸à¸•à¸´';
$labels['high'] = 'สูง';
$labels['highest'] = 'สูงสุด';
+
$labels['nosubject'] = '(ไม่มีหัวข้อ)';
$labels['showimages'] = 'à¹à¸ªà¸”งรูป';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Plain text';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+
+// address boook
$labels['name'] = 'ชื่อà¹à¸ªà¸”ง';
$labels['firstname'] = 'ชื่อ';
$labels['surname'] = 'สà¸à¸¸à¸¥';
@@ -180,6 +277,7 @@ $labels['nickname'] = 'ชื่อเล่น';
$labels['jobtitle'] = 'ตำà¹à¸«à¸™à¹ˆà¸‡à¸‡à¸²à¸™';
$labels['department'] = 'à¹à¸œà¸™à¸';
$labels['gender'] = 'เพศ';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'อีเมล์';
$labels['phone'] = 'โทรศัพท์';
$labels['address'] = 'ที่อยู่';
@@ -189,38 +287,52 @@ $labels['zipcode'] = 'รหัสไปรษณีย์';
$labels['region'] = 'รัà¸/จังหวัด';
$labels['country'] = 'ประเทศ';
$labels['birthday'] = 'วันเà¸à¸´à¸”';
+$labels['anniversary'] = 'Anniversary';
$labels['website'] = 'เว็บไซต์';
$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
$labels['male'] = 'ชาย';
$labels['female'] = 'หà¸à¸´à¸‡';
$labels['manager'] = 'ผู้จัดà¸à¸²à¸£';
$labels['assistant'] = 'ผู้ช่วย';
+$labels['spouse'] = 'Spouse';
$labels['allfields'] = 'ช่องข้อมูลทั้่งหมด';
$labels['search'] = 'ค้นหา';
$labels['advsearch'] = 'ค้นหาขั้นสูง';
$labels['advanced'] = 'ขั้นสูง';
$labels['other'] = 'อื่นๆ';
+
$labels['typehome'] = 'บ้าน';
$labels['typework'] = 'สถานที่ทำงาน';
$labels['typeother'] = 'อื่นๆ';
$labels['typemobile'] = 'มือถือ';
+$labels['typemain'] = 'Main';
$labels['typehomefax'] = 'โทรสารที่บ้าน';
$labels['typeworkfax'] = 'โทรสารที่ทำงาน';
$labels['typecar'] = 'รถ';
$labels['typepager'] = 'เพจเจอร์';
$labels['typevideo'] = 'วีดีโอ';
+$labels['typeassistant'] = 'Assistant';
$labels['typehomepage'] = 'โฮมเพจ';
$labels['typeblog'] = 'บล็อà¸';
$labels['typeprofile'] = 'โปรไฟล์';
+
$labels['addfield'] = 'เพิ่มช่องข้อมูล...';
$labels['addcontact'] = 'เพิ่มรายชื่อ';
$labels['editcontact'] = 'à¹à¸à¹‰à¹„ขรายชื่อ';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'à¹à¸à¹‰à¹„ข';
$labels['cancel'] = 'ยà¸à¹€à¸¥à¸´à¸';
$labels['save'] = 'บันทึà¸';
$labels['delete'] = 'ลบ';
$labels['rename'] = 'เปลี่ยนชื่อ';
$labels['addphoto'] = 'เพิ่ม';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'สร้างรายชื่อใหม่';
$labels['deletecontact'] = 'ลบรายชื่อที่เลือà¸';
$labels['composeto'] = 'เขียนจดหมายถึง';
@@ -229,40 +341,141 @@ $labels['print'] = 'พิมพ์';
$labels['export'] = 'ส่งออà¸';
$labels['exportall'] = 'ส่งออà¸à¸—ั้งหมด';
$labels['exportsel'] = 'ส่งออà¸à¹€à¸‰à¸žà¸²à¸°à¸—ี่เลือà¸';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'หน้าที่à¹à¸¥à¹‰à¸§';
+$labels['firstpage'] = 'Show first page';
$labels['nextpage'] = 'หน้าถัดไป';
+$labels['lastpage'] = 'Show last page';
+
+$labels['group'] = 'Group';
+$labels['groups'] = 'Groups';
+$labels['personaladrbook'] = 'Personal Addresses';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+
+// settings
$labels['settingsfor'] = 'ตั้งค่าสำหรับ';
+$labels['about'] = 'About';
$labels['preferences'] = 'ปรับà¹à¸•à¹ˆà¸‡';
$labels['userpreferences'] = 'ข้อมูลส่วนตัว';
$labels['editpreferences'] = 'à¹à¸à¹‰à¹„ขข้อมูลส่วนตัว';
+
$labels['identities'] = 'ชื่อà¹à¸ªà¸”งตัว';
$labels['manageidentities'] = 'จัดà¸à¸²à¸£à¸Šà¸·à¹ˆà¸­à¹à¸ªà¸”งตัวสำหรับรายชื่อนี้';
$labels['newidentity'] = 'ชื่อà¹à¸ªà¸”งตัวใหม่';
+
$labels['newitem'] = 'New item';
$labels['edititem'] = 'Edit item';
+
$labels['preferhtml'] = 'อ่านà¹à¸šà¸š HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'จดหมาย HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'à¹à¸ªà¸”งวันที่à¹à¸šà¸šà¸¢à¹ˆà¸­';
$labels['setdefault'] = 'ตั้งเป็นค่าใช้งาน';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'ภาษา';
$labels['timezone'] = 'เขตเวลา';
$labels['pagesize'] = 'จำนวนจดหมายต่อหน้า';
$labels['signature'] = 'ลายมือชื่อ';
$labels['dstactive'] = 'Daylight savings';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'เขียนจดหมายà¹à¸šà¸š HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'ลายมือชื่อà¹à¸šà¸š HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'à¹à¸ªà¸”งหน้าต่างตัวอย่างà¹à¸ªà¸”งผล';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'บันทึà¸à¹€à¸›à¹‡à¸™à¸ˆà¸”หมายร่างอัตโนมัติ';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'ไม่ใช้';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'ตัวเลือà¸à¸‚ั้นสูง';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
$labels['newmessage'] = 'ข้อความใหม่';
$labels['signatureoptions'] = 'ตัวเลือà¸à¸ªà¸³à¸«à¸£à¸±à¸šà¸¥à¸²à¸¢à¹€à¸‹à¹‡à¹‡à¸™à¸•à¹Œ';
$labels['whenreplying'] = 'เมื่อตอบà¸à¸¥à¸±à¸š';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
$labels['autoaddsignature'] = 'เพิ่มลายเซ็นต์เข้าไปอัตโนมัติ';
$labels['newmessageonly'] = 'เฉพาะข้อความใหม่เท่านั้น';
$labels['replyandforwardonly'] = 'ตอบà¸à¸¥à¸±à¸šà¹à¸¥à¸°à¸ªà¹ˆà¸‡à¸•à¹ˆà¸­à¹€à¸—่านั้น';
$labels['insertsignature'] = 'à¹à¸—รà¸à¸¥à¸²à¸¢à¹€à¸‹à¹‡à¸™à¸•à¹Œ';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
$labels['asattachment'] = 'เป็นไฟล์à¹à¸™à¸š';
+
$labels['folder'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมาย';
$labels['folders'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมาย';
$labels['foldername'] = 'ชื่อà¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมาย';
@@ -275,21 +488,51 @@ $labels['specialfolders'] = 'โฟลเดอร์พิเศษ';
$labels['properties'] = 'คุณสมบัติ';
$labels['folderproperties'] = 'คุณสมบัติเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹‚ฟลเดอร์';
$labels['parentfolder'] = 'โฟลเดอร์à¹à¸¡à¹ˆ';
+$labels['location'] = 'Location';
$labels['info'] = 'ข้อมูล';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
$labels['foldertype'] = 'ประเภทโฟลเดอร์';
$labels['personalfolder'] = 'โฟลเดอร์ส่วนตัว';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'โฟลเดอร์สาธารณะ';
+
$labels['sortby'] = 'เรียงตาม';
$labels['sortasc'] = 'เรียงจาà¸à¸«à¸™à¹‰à¸²à¹„ปหลัง';
$labels['sortdesc'] = 'เรียงจาà¸à¸«à¸¥à¸±à¸‡à¹„ปหน้า';
$labels['undo'] = 'เลิà¸à¸—ำ';
+
$labels['installedplugins'] = 'ปลั๊à¸à¸­à¸´à¸™à¸—ี่ติดตั้ง';
$labels['plugin'] = 'ปลั๊à¸à¸­à¸´à¸™';
$labels['version'] = 'รุ่น';
+$labels['source'] = 'Source';
$labels['license'] = 'สัà¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/th_TH/messages.inc b/program/localization/th_TH/messages.inc
index 46d960aff..826930c0e 100644
--- a/program/localization/th_TH/messages.inc
+++ b/program/localization/th_TH/messages.inc
@@ -15,13 +15,22 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'เà¸à¸´à¸”ข้อผิดพลาดบางประà¸à¸²à¸£!';
$messages['loginfailed'] = 'ไม่สามารถเข้าสู่ระบบได้';
$messages['cookiesdisabled'] = 'Browser ของคุณไม่ได้เปิดà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ Cookie ไว้';
$messages['sessionerror'] = 'Your session is invalid or expired';
$messages['storageerror'] = 'ไม่สามารถติดต่อ IMAP Server ได้';
$messages['servererror'] = 'เà¸à¸´à¸”ข้อผิดพลาดเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸­à¸£à¹Œ';
+$messages['servererrormsg'] = 'Server Error: $msg';
$messages['dberror'] = 'เà¸à¸´à¸”ข้อผิดพลาดเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸à¸²à¸™à¸‚้อมูล';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
$messages['invalidhost'] = 'ชื่อเซิร์ฟเวอร์ไม่ถูà¸à¸•à¹‰à¸­à¸‡';
$messages['nomessagesfound'] = 'ไม่มีจดหมายในà¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมายนี้';
$messages['loggedout'] = 'ทำà¸à¸²à¸£à¸­à¸­à¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸­à¸¢';
@@ -39,14 +48,22 @@ $messages['messagesaved'] = 'จดหมายถูà¸à¸šà¸±à¸™à¸—ึà¸à¹€à¸›
$messages['successfullysaved'] = 'บันทึà¸à¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸­à¸¢à¹à¸¥à¹‰à¸§';
$messages['addedsuccessfully'] = 'รายชื่อถูà¸à¸šà¸±à¸™à¸—ึà¸à¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸­à¸¢à¹à¸¥à¹‰à¸§';
$messages['contactexists'] = 'อีเมล์นี้มีอยู่à¹à¸¥à¹‰à¸§';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'เพื่อปà¸à¸›à¹‰à¸­à¸‡à¸„วามส่วนตัว รูปจาà¸à¸ à¸²à¸¢à¸™à¸­à¸à¹ƒà¸™à¸ˆà¸”หมายนี้จะถูà¸à¸›à¸´à¸”บังไว้';
$messages['encryptedmessage'] = 'จดหมายถูà¸à¹€à¸‚้ารหัสไม่สามารถà¹à¸ªà¸”งผลได้';
$messages['nocontactsfound'] = 'ไม่พบรายชื่อที่ค้นหา';
$messages['contactnotfound'] = 'ไม่พบรายชื่อที่ค้นหา';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸ˆà¸”หมายล้มเหลว';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'เà¸à¸´à¸”ข้อผิดพลาดระหว่างà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸';
$messages['errormoving'] = 'ไม่สามารถย้ายจดหมายได้';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'ไม่สามารถลบจดหมายได้';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'คุณมั่นใจที่ต้องà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¸—ี่เลือà¸à¹ƒà¸Šà¹ˆà¸«à¸£à¸·à¸­à¹„ม่?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'คุณมั่นใจที่ต้องà¸à¸²à¸£à¸¥à¸šà¸ˆà¸”หมายที่เลือà¸à¹ƒà¸Šà¹ˆà¸«à¸£à¸·à¸­à¹„ม่?';
$messages['deletefolderconfirm'] = 'คุณมั่นใจที่ต้องà¸à¸²à¸£à¸¥à¸šà¹à¸Ÿà¹‰à¸¡à¸™à¸µà¹‰à¸«à¸£à¸·à¸­à¹„ม่?';
$messages['purgefolderconfirm'] = 'คุณมั่นใจที่ต้องà¸à¸²à¸£à¸¥à¸šà¸ˆà¸”หมายทั้งหมดในà¹à¸Ÿà¹‰à¸¡à¸™à¸µà¹‰à¹ƒà¸Šà¹ˆà¸«à¸£à¸·à¸­à¹„ม่?';
@@ -54,32 +71,101 @@ $messages['contactdeleting'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¸œà¸¹
$messages['groupdeleting'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¸à¸¥à¸¸à¹ˆà¸¡...';
$messages['folderdeleting'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¹‚ฟลเดอร์...';
$messages['foldermoving'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¢à¹‰à¸²à¸¢à¹‚ฟลเดอร์...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'ฟอร์มยังไม่ครบถ้วนสมบูรณ์';
$messages['noemailwarning'] = 'โปรดใส่อีเมล์ให้ถูà¸à¸•à¹‰à¸­à¸‡';
$messages['nonamewarning'] = 'โปรดใส่ชื่อ';
$messages['nopagesizewarning'] = 'โปรดใส่จำนวนหน้า';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'โปรดใส่ผู้รับอย่างน้อย 1 ชื่อ';
$messages['nosubjectwarning'] = 'หัวจดหมายว่างเปล่า คุณต้องà¸à¸²à¸£à¹ƒà¸ªà¹ˆà¸«à¸±à¸§à¸ˆà¸”หมายเดี๋ยวนี้หรือไม่?';
$messages['nobodywarning'] = 'คุณต้องà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸ˆà¸”หมายโดยไม่มีข้อความใช่หรือไม่?';
$messages['notsentwarning'] = 'จดหมายยังไม่ถูà¸à¸ªà¹ˆà¸‡ คุณต้องà¸à¸²à¸£à¸¢à¸à¹€à¸¥à¸´à¸à¸«à¸£à¸·à¸­à¹„ม่?';
$messages['noldapserver'] = 'โปรดเลือภLDAP Server เพื่อค้นหา';
$messages['nosearchname'] = 'โปรดใสชื่อหรืออีเมล์';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'พบจดหมายจำนวน $nr ฉบับ';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'à¸à¸²à¸£à¸„้นหาไม่พบ';
$messages['searching'] = 'à¸à¸³à¸¥à¸±à¸‡à¸„้นหา...';
$messages['checking'] = 'à¸à¸³à¸¥à¸±à¸‡à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸š...';
$messages['nospellerrors'] = 'ไม่พบคำที่สะà¸à¸”ผิด';
$messages['folderdeleted'] = 'ลบà¹à¸Ÿà¹‰à¸¡à¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸¡à¸šà¸¹à¸£à¸“์';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'ลบเสร็จสมบูรณ์';
$messages['converting'] = 'นำเอาหารจัดรูปà¹à¸šà¸šà¹ƒà¸™à¸ˆà¸”หมายออà¸...';
$messages['messageopenerror'] = 'ไม่สามารถอ่านจดหมายจาภServer ได้';
$messages['fileuploaderror'] = 'à¸à¸²à¸£à¸­à¸±à¸žà¹‚หลดล้มเหลว';
$messages['filesizeerror'] = 'ไฟล์มีขนาดใหà¸à¹ˆà¹€à¸à¸´à¸™ $size';
+$messages['copysuccess'] = 'คัดลอà¸à¸ˆà¸”หมายจำนวน $nr ฉบับเรียบร้อย';
+$messages['copyerror'] = 'ไม่สามารถคัดลอà¸à¹„ด้';
$messages['sourceisreadonly'] = 'จดหมายนี้เป็นà¹à¸šà¸šà¸­à¹ˆà¸²à¸™à¸­à¸¢à¹ˆà¸²à¸‡à¹€à¸”ียว';
$messages['errorsavingcontact'] = 'ไม่สามารถบันทึà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¹„ด้';
$messages['movingmessage'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¢à¹‰à¸²à¸¢à¸‚้อความ...';
$messages['copyingmessage'] = 'à¸à¸³à¸¥à¸±à¸‡à¸„ัดลอà¸à¸‚้อความ...';
$messages['copyingcontact'] = 'à¸à¸³à¸¥à¸±à¸‡à¸„ัดลอà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¸œà¸¹à¹‰à¸•à¸´à¸”ต่อ...';
$messages['deletingmessage'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¸‚้อความ...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'à¸à¸³à¸¥à¸±à¸‡à¸™à¸³à¹€à¸‚้าข้อมูล, โปรดรอสัà¸à¸„รู่';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/tr_TR/labels.inc b/program/localization/tr_TR/labels.inc
index bcecd51f7..9e78ea3fa 100644
--- a/program/localization/tr_TR/labels.inc
+++ b/program/localization/tr_TR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
-$labels['welcome'] = '$product E-Posta Sistemine HoÅŸ Geldiniz';
+
+$labels = array();
+
+// login page
+$labels['welcome'] = '$product, HoÅŸ Geldiniz';
$labels['username'] = 'Kullanıcı Adı';
$labels['password'] = 'Parola';
$labels['server'] = 'Sunucu';
$labels['login'] = 'Oturum Aç';
+
+// taskbar
$labels['logout'] = 'Oturumu Kapat';
$labels['mail'] = 'E-Posta';
$labels['settings'] = 'KiÅŸisel Ayarlar';
$labels['addressbook'] = 'Adres Defteri';
+
+// mailbox names
$labels['inbox'] = 'Gelen';
$labels['drafts'] = 'Taslaklar';
$labels['sent'] = 'Giden';
$labels['trash'] = 'Çöp';
$labels['junk'] = 'Ä°stenmeyen';
-$labels['show_real_foldernames'] = 'Özel klasörler için gerçek isimleri göster';
+
+// message listing
$labels['subject'] = 'Konu';
$labels['from'] = 'Gönderen';
$labels['sender'] = 'Gönderici';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Öncelik';
$labels['organization'] = 'KuruluÅŸ';
$labels['readstatus'] = 'Okunma durumu';
$labels['listoptions'] = 'Seçenekleri listele...';
+
$labels['mailboxlist'] = 'Klasörler';
$labels['messagesfromto'] = 'Postalar: $from - $to , Toplam: $count';
$labels['threadsfromto'] = 'Postalar: $from - $to, Toplam $count';
$labels['messagenrof'] = 'Posta: $nr / $count';
$labels['fromtoshort'] = '$from - $to , Toplam: $count';
+
$labels['copy'] = 'Kopyala';
$labels['move'] = 'Taşı';
$labels['moveto'] = 'Şuraya taşı...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Ä°ndir';
$labels['open'] = 'Aç';
$labels['showattachment'] = 'Göster';
$labels['showanyway'] = 'Yine de göster';
+
$labels['filename'] = 'Dosya Adı';
$labels['filesize'] = 'Dosya Boyutu';
+
$labels['addtoaddressbook'] = 'Adres Defterine Ekle';
+
+// weekdays short
$labels['sun'] = 'Paz';
$labels['mon'] = 'Pzt';
$labels['tue'] = 'Sal';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Çrş';
$labels['thu'] = 'Per';
$labels['fri'] = 'Cum';
$labels['sat'] = 'Cts';
+
+// weekdays long
$labels['sunday'] = 'Paz';
$labels['monday'] = 'Pazartesi';
$labels['tuesday'] = 'Salı';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Çarşamba';
$labels['thursday'] = 'PerÅŸembe';
$labels['friday'] = 'Cuma';
$labels['saturday'] = 'Cumartesi';
+
+// months short
$labels['jan'] = 'Oca';
$labels['feb'] = 'Åžub';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Eyl';
$labels['oct'] = 'Eki';
$labels['nov'] = 'Kas';
$labels['dec'] = 'Ara';
+
+// months long
$labels['longjan'] = 'Ocak';
$labels['longfeb'] = 'Åžubat';
$labels['longmar'] = 'Mart';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Eylül';
$labels['longoct'] = 'Ekim';
$labels['longnov'] = 'Kasım';
$labels['longdec'] = 'Aralık';
+
$labels['today'] = 'Bugün';
+
+// toolbar buttons
$labels['refresh'] = 'Yenile';
$labels['checkmail'] = 'Yeni Postaları Kontrol Et';
$labels['compose'] = 'E-Posta Yaz';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'DiÄŸer Ä°ÅŸlemler';
$labels['more'] = 'Daha Fazla';
$labels['back'] = 'Geri';
$labels['options'] = 'Seçenekler';
+
$labels['select'] = 'Seç';
$labels['all'] = 'Hepsini';
$labels['none'] = 'Yok';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Tümünü genişlet';
$labels['expand-unread'] = 'Okunmamışları genişlet';
$labels['collapse-all'] = 'Tümünü daralt';
$labels['threaded'] = 'Dizilimli';
+
$labels['autoexpand_threads'] = 'Dizilimleri aç';
$labels['do_expand'] = 'tüm dizilimler';
$labels['expand_only_unread'] = 'sadece okunmamış posta içeren dizilimler';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Sütunları listele';
$labels['listsorting'] = 'Sıralama sütunu';
$labels['listorder'] = 'Sıralama düzeni';
$labels['listmode'] = 'Liste görünümü';
+
$labels['folderactions'] = 'Klasör eylemleri...';
$labels['compact'] = 'Sıklaştır';
$labels['empty'] = 'BoÅŸalt';
-$labels['importmessages'] = 'Mesajları içe aktar';
+
$labels['quota'] = 'Disk kullanımı';
$labels['unknown'] = 'bilinmeyen';
$labels['unlimited'] = 'sınırsız';
+
$labels['quicksearch'] = 'Hızlı arama';
$labels['resetsearch'] = 'Aramayı bitir';
$labels['searchmod'] = 'Arama detayları';
$labels['msgtext'] = 'Tüm posta gövdesi';
$labels['body'] = 'Gövde';
-$labels['type'] = 'Tip';
-$labels['namex'] = 'Ad';
+
$labels['openinextwin'] = 'Yeni pencerede aç';
$labels['emlsave'] = 'Ä°ndir (.eml)';
$labels['changeformattext'] = 'Düz yazı formatında göster';
$labels['changeformathtml'] = 'HTML formatında göster';
+
+// message compose
$labels['editasnew'] = 'Postayı yeni olarak düzenle';
$labels['send'] = 'Gönder';
$labels['sendmessage'] = 'Postayı gönder';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Alındı onayı';
$labels['dsn'] = 'Teslimat durumu bildirisi';
$labels['mailreplyintro'] = '$date, $sender yazmış:';
$labels['originalmessage'] = 'Özgün ileti';
+
$labels['editidents'] = 'Kimlikleri düzenle';
$labels['spellcheck'] = 'Yazım denetimi';
$labels['checkspelling'] = 'Yazım denetimi yap';
$labels['resumeediting'] = 'Düzenlemeye devam et';
$labels['revertto'] = 'Geri çevir:';
+
$labels['attach'] = 'Ekle';
$labels['attachments'] = 'Ekler';
$labels['upload'] = 'Yükle';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = 'Kapat';
$labels['messageoptions'] = 'İleti seçenekleri...';
+
$labels['low'] = 'Düşük';
$labels['lowest'] = 'En Düşük';
$labels['normal'] = 'Normal';
$labels['high'] = 'Yüksek';
$labels['highest'] = 'En yüksek';
+
$labels['nosubject'] = '(Konu BelirtilmemiÅŸ)';
$labels['showimages'] = 'Resimleri göster';
$labels['alwaysshow'] = '$sender tarafından gönderilen resimleri her zaman göster';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Bu posta taslaktır.';
$labels['andnmore'] = '$nr daha...';
$labels['togglemoreheaders'] = 'Daha fazla posta başlığı göster';
$labels['togglefullheaders'] = 'Posta başlıklarını göster/gizle';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Düz metin';
$labels['savesentmessagein'] = 'Gönderileni buraya kaydet';
$labels['dontsave'] = 'kaydetme';
$labels['maxuploadsize'] = 'İzin verilen en büyük dosya boyutu $size';
+
$labels['addcc'] = 'İlgili kopyası ekle';
$labels['addbcc'] = 'Gizli kopya ekle';
$labels['addreplyto'] = 'Yanıtlama adresi ekle';
$labels['addfollowupto'] = 'Takip adresi ekle';
+
+// mdn
$labels['mdnrequest'] = 'Bu postayı gönderen kişi, postayı okuduğunuza dair alındı onayı istedi. Alındı onayını göndermek ister misiniz ?';
$labels['receiptread'] = 'Alındı Onayı (okundu)';
$labels['yourmessage'] = 'Bu, postanız için alındı onayıdır';
$labels['receiptnote'] = 'Not: Bu alındı onayı sadece postanızın alıcının bilgisayarında gösterildiğini belirtir. Alıcının posta içeriğini okuduğunu veya anladığını garantilemez.';
+
+// address boook
$labels['name'] = 'Görüntülenen isim';
$labels['firstname'] = 'Ad';
$labels['surname'] = 'Soyad';
@@ -262,6 +301,7 @@ $labels['search'] = 'Ara';
$labels['advsearch'] = 'GeliÅŸmiÅŸ ara';
$labels['advanced'] = 'GeliÅŸmiÅŸ';
$labels['other'] = 'DiÄŸer';
+
$labels['typehome'] = 'Ev';
$labels['typework'] = 'Ä°ÅŸ';
$labels['typeother'] = 'DiÄŸer';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Asistan';
$labels['typehomepage'] = 'Ev sayfası';
$labels['typeblog'] = 'Günlük';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Alan ekle...';
$labels['addcontact'] = 'Adres defterine ekle';
$labels['editcontact'] = 'Kişiyi düzenle';
$labels['contacts'] = 'KiÅŸiler';
$labels['contactproperties'] = 'Kişi özellikleri';
$labels['personalinfo'] = 'KiÅŸisel bilgiler';
+
$labels['edit'] = 'Düzenle';
$labels['cancel'] = 'Ä°ptal';
$labels['save'] = 'Kaydet';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Yeniden adlandır';
$labels['addphoto'] = 'Ekle';
$labels['replacephoto'] = 'DeÄŸiÅŸtir';
$labels['uploadphoto'] = 'Fotoğraf yükle';
+
$labels['newcontact'] = 'Yeni adres kartı ekle';
$labels['deletecontact'] = 'Seçili kişileri sil';
$labels['composeto'] = 'Seçili kişiye posta gönder';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Yeni kiÅŸi grubu oluÅŸtur';
$labels['grouprename'] = 'Grubu yeniden adlandır';
$labels['groupdelete'] = 'Grubu sil';
$labels['groupremoveselected'] = 'Seçili kişileri gruptan sil';
+
$labels['previouspage'] = 'Öncekileri göster';
$labels['firstpage'] = 'İlkini göster';
$labels['nextpage'] = 'Sonrakileri göster';
$labels['lastpage'] = 'Sonuncuyu göster';
+
$labels['group'] = 'Grup';
$labels['groups'] = 'Gruplar';
-$labels['listgroup'] = 'Grup üyelerini listele';
$labels['personaladrbook'] = 'Adresler';
+
$labels['searchsave'] = 'Aramayı kaydet';
$labels['searchdelete'] = 'Aramayı sil';
+
$labels['import'] = 'İçe aktar';
$labels['importcontacts'] = 'Kişileri içe aktar';
$labels['importfromfile'] = 'Dosyadan içe aktar:';
-$labels['importtarget'] = 'KiÅŸileri ekle';
+$labels['importtarget'] = 'Yeni kiÅŸiler eklenecek adres defteri:';
$labels['importreplace'] = 'Tüm adres defterinin yerine geçsin';
-$labels['importgroups'] = 'Grup atamalarını içe aktar';
-$labels['importgroupsall'] = 'Tümü (Gerekirse grupları oluştur)';
-$labels['importgroupsexisting'] = 'Sadece mevcut gruplar için';
$labels['importdesc'] = 'Mevcut bir adres defterinden kişileri yükleyebilirsiniz.<br/> Şu anda <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> veya CSV (virgülle ayrılmış) veri formatları desteklenmektedir.';
$labels['done'] = 'Tamam';
+
+// settings
$labels['settingsfor'] = 'Ayarlar';
$labels['about'] = 'Hakkında';
$labels['preferences'] = 'Tercihler';
$labels['userpreferences'] = 'Kullanıcı tercihleri';
$labels['editpreferences'] = 'Kullanıcı tercihlerini düzenle';
+
$labels['identities'] = 'Kimlikler';
$labels['manageidentities'] = 'Bu hesap için kimlikleri düzenle';
$labels['newidentity'] = 'Yeni kimlik';
+
$labels['newitem'] = 'Yeni öğe';
$labels['edititem'] = 'Öğe düzenle';
+
$labels['preferhtml'] = 'HTML görüntüle';
$labels['defaultcharset'] = 'Varsayılan Karakter Kümesi';
$labels['htmlmessage'] = 'HTML Posta';
@@ -354,7 +402,7 @@ $labels['htmleditor'] = 'HTML postaları oluştur';
$labels['htmlonreply'] = 'sadece HTML postaları yanıtlarken';
$labels['htmlonreplyandforward'] = 'HTML biçimindeki posta yanıtlandığında veye iletildiğinde';
$labels['htmlsignature'] = 'HTML imza';
-$labels['showemail'] = 'Eposta adresini görünüm ismi ile görüntüle';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Önizleme panelini göster';
$labels['skin'] = 'Arayüz görünümü';
$labels['logoutclear'] = 'Oturumu kapatınca Çöpü temizle';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'İçinde rakam geçen kelimleri göz ardı et
$labels['spellcheckignorecaps'] = 'Tümü büyük harf olan kelimleri göz ardı et';
$labels['addtodict'] = 'Sözlüğe Ekle';
$labels['mailtoprotohandler'] = 'mailto: bağlantıları için protokol işleyici kayıt et';
-$labels['standardwindows'] = 'Popup pencerelerini standart pencere olarak yönet';
$labels['forwardmode'] = 'Posta yönlendirme';
$labels['inline'] = 'postanın içinde';
$labels['asattachment'] = 'ek olarak';
+
$labels['folder'] = 'Klasör';
$labels['folders'] = 'Klasörler';
$labels['foldername'] = 'Klasör Adı';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Klasör Türü';
$labels['personalfolder'] = 'Kişisel Klasör';
$labels['otherfolder'] = 'Diğer Kullanıcıların Klasörü';
$labels['sharedfolder'] = 'Genel Klasör';
+
$labels['sortby'] = 'Sırala';
$labels['sortasc'] = 'Artarak';
$labels['sortdesc'] = 'Azalarak';
$labels['undo'] = 'Geri al';
+
$labels['installedplugins'] = 'Yüklü eklentiler';
$labels['plugin'] = 'Eklenti';
$labels['version'] = 'Sürüm';
$labels['source'] = 'Kaynak';
$labels['license'] = 'Lisans';
$labels['support'] = 'Destek Al';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Ä°ngilizce';
$labels['westerneuropean'] = 'Batı Avrupa';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamca';
$labels['japanese'] = 'Japonca';
$labels['korean'] = 'Korece';
$labels['chinese'] = 'Çince';
+
?>
diff --git a/program/localization/tr_TR/messages.inc b/program/localization/tr_TR/messages.inc
index 182fc966b..3b451d556 100644
--- a/program/localization/tr_TR/messages.inc
+++ b/program/localization/tr_TR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Bir hata oluÅŸtu!';
$messages['loginfailed'] = 'Giriş Başarısız';
$messages['cookiesdisabled'] = 'Tarayıcınız çerezleri kabul etmiyor';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Posta gönderildi';
$messages['savingmessage'] = 'Posta kaydediliyor...';
$messages['messagesaved'] = 'Posta taslaklara kaydedildi';
$messages['successfullysaved'] = 'Kaydedildi';
-$messages['savingresponse'] = 'Yanıt metni kaydediliyor...';
-$messages['deleteresponseconfirm'] = 'Yanıt metnini gerçekten silmek istiyor musunuz?';
$messages['addedsuccessfully'] = 'KiÅŸi adres defterine eklendi';
$messages['contactexists'] = 'Rehberde bu e-posta adresine sahip biri zaten var';
$messages['contactnameexists'] = 'Rehberde bu ada sahip biri zaten var.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'İstenen kişi bulunamadı';
$messages['contactsearchonly'] = 'Kişi aramak için arama terimleri giriniz';
$messages['sendingfailed'] = 'Posta gönderilemedi';
$messages['senttooquickly'] = 'Lütfen bu postayı göndermeden önce $sec saniye bekleyin';
-$messages['errorsavingsent'] = 'Gönderilen postayı kaydederken hata oluştu.';
-$messages['errorsaving'] = 'Kaydederken bir hata oluÅŸtu.';
+$messages['errorsavingsent'] = 'Gönderilen postayı kaydederken hata oluştu';
+$messages['errorsaving'] = 'Kaydederken bir hata oluÅŸtu';
$messages['errormoving'] = 'Posta taşınamadı';
$messages['errorcopying'] = 'Posta kopyalanamadı';
$messages['errordeleting'] = 'Posta silinemedi';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Postanın biçimlendirmesi kaldırılıyor...';
$messages['messageopenerror'] = 'Sunucudan posta yüklenemedi';
$messages['fileuploaderror'] = 'Dosya yükleme başarısız';
$messages['filesizeerror'] = 'Yüklenen dosya en büyük dosya boyunu ($size) aşıyor';
-$messages['copysuccess'] = '$nr adet kişi başarıyla kopyalandı.';
-$messages['movesuccess'] = '$nr adet kişi başarıyla taşındı.';
-$messages['copyerror'] = 'Kişiler kopyalanamadı.';
-$messages['moveerror'] = 'Kişiler taşınamadı.';
+$messages['copysuccess'] = '$nr adres kopyalandı';
+$messages['copyerror'] = 'Hiçbir adres kopyalanamadı';
$messages['sourceisreadonly'] = 'Adres kaynağı salt okunur durumda';
$messages['errorsavingcontact'] = 'KiÅŸinin adresi kaydedilemedi';
$messages['movingmessage'] = 'Posta(lar) taşınıyor...';
$messages['copyingmessage'] = 'Posta(lar) kopyalanıyor...';
$messages['copyingcontact'] = 'Kişile(ler) kopyalanıyor...';
-$messages['movingcontact'] = 'Kişi(ler) taşınıyor...';
$messages['deletingmessage'] = 'Posta(lar) siliniyor...';
$messages['markingmessage'] = 'Posta(lar) iÅŸaretleniyor...';
$messages['addingmember'] = 'Gruba kiÅŸi(ler) ekleniyor...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Aktarılıyor, lütfen bekleyin...';
$messages['importformaterror'] = 'İçe aktarım başarısız. Yüklenen dosya geçerli bir içe aktarım dosyası değil.';
$messages['importconfirm'] = '<b>$inserted kişi başarıyla aktarıldı</b>';
$messages['importconfirmskipped'] = '<b>Var olan $skipped girdi atlandı</b>';
-$messages['importmessagesuccess'] = '$nr adet mesaj başarıyla içe aktarıldı';
-$messages['importmessageerror'] = 'İçe aktarım başarısız. Yüklenen dosya geçerli bir içe aktarım dosyası değil.';
$messages['opnotpermitted'] = 'Bu iÅŸleme izin verilmedi!';
$messages['nofromaddress'] = 'Seçili kimlikte e-posta adresi yok';
$messages['editorwarning'] = 'Düz metin düzenleyiciye geçmek, metin üzerindeki bütün biçimlendirmeleri kaldıracak. Devam etmek istiyor musunuz?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'SMTP Hatası: $msg';
$messages['emailformaterror'] = 'Hatalı e-posta adresi: $email';
$messages['toomanyrecipients'] = 'Çok fazla alıcı. En fazla $max alıcı girebilirsiniz.';
$messages['maxgroupmembersreached'] = 'Grup üyelerinin sayısı $max sınırını aşıyor.';
-$messages['internalerror'] = 'Dahili bir hata oluştu. Lütfen tekrar deneyin.';
+$messages['internalerror'] = 'Bir hata oluştu. Lütfen tekrar deneyin.';
$messages['contactdelerror'] = 'KiÅŸi(ler) silinemedi';
$messages['contactdeleted'] = 'KiÅŸi(ler) silindi';
$messages['contactrestoreerror'] = 'Silinen kiÅŸi(ler) geri getirilemiyor.';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Klasör, seçilen üst klasöre taşınamıyor
$messages['messagetoobig'] = 'Bu ileti parçası işlenemeyecek kadar büyük.';
$messages['attachmentvalidationerror'] = 'UYARI! Bu eklenti mesajda belirtilenden farklı olduğu için şüpheli bulundu. Eğer göndericiye güvenmiyorsanız eki web tarayıcısında açmayın. Şüpheli içerik bulunabilir.';
$messages['noscriptwarning'] = 'Uyarı: Bu e-posta servisi Javascript gerektirmektedir! Servisi kullanabilmek için lütfen web tarayıcınızın ayarlarından Javascript\'i etkinleştiriniz.';
+
?>
diff --git a/program/localization/uk_UA/labels.inc b/program/localization/uk_UA/labels.inc
index f530c212e..6675e177e 100644
--- a/program/localization/uk_UA/labels.inc
+++ b/program/localization/uk_UA/labels.inc
@@ -15,49 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
-$labels['welcome'] = 'ЛаÑкаво проÑимо до $product';
-$labels['username'] = 'Ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
-$labels['password'] = 'Пароль';
-$labels['server'] = 'Сервер';
-$labels['login'] = 'Увійти';
+
+$labels = array();
+
+// login page
+$labels['welcome'] = 'ЛаÑкаво проÑимо!';
+$labels['username'] = 'Ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
+$labels['password'] = 'Пароль';
+$labels['server'] = 'Сервер';
+$labels['login'] = 'Увійти';
+
+// taskbar
$labels['logout'] = 'Вийти';
$labels['mail'] = 'Пошта';
$labels['settings'] = 'ÐалаштуваннÑ';
$labels['addressbook'] = 'Контакти';
+
+// mailbox names
$labels['inbox'] = 'Вхідні';
$labels['drafts'] = 'Чернетки';
$labels['sent'] = 'ÐадіÑлані';
-$labels['trash'] = 'Кошик';
+$labels['trash'] = 'Видалені';
$labels['junk'] = 'Спам';
-$labels['subject'] = 'Тема';
-$labels['from'] = 'Відправник';
-$labels['sender'] = 'Відправник';
-$labels['to'] = 'Кому';
-$labels['cc'] = 'КопіÑ';
-$labels['bcc'] = 'Прихована';
-$labels['replyto'] = 'Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ð°Ð´Ñ€ÐµÑа';
-$labels['followupto'] = 'Followup-To';
-$labels['date'] = 'Дата';
-$labels['size'] = 'Розмір';
+
+// message listing
+$labels['subject'] = 'Тема';
+$labels['from'] = 'Від';
+$labels['sender'] = 'Відправник';
+$labels['to'] = 'Кому';
+$labels['cc'] = 'КопіÑ';
+$labels['bcc'] = 'Прихована';
+$labels['replyto'] = 'Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ð°Ð´Ñ€ÐµÑа';
+$labels['followupto'] = 'У відповідь';
+$labels['date'] = 'Дата';
+$labels['size'] = 'Розмір';
$labels['priority'] = 'Пріоритет';
$labels['organization'] = 'ОрганізаціÑ';
$labels['readstatus'] = 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ';
-$labels['listoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑпиÑку...';
+$labels['listoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð³Ð»Ñду...';
+
$labels['mailboxlist'] = 'Папки';
-$labels['messagesfromto'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· $from по $to із $count';
+$labels['messagesfromto'] = 'ЛиÑÑ‚ з $from по $to із $count';
$labels['threadsfromto'] = 'ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· $from по $to із $count';
$labels['messagenrof'] = 'ЛиÑÑ‚ $nr із $count';
$labels['fromtoshort'] = '$from – $to з $count';
+
$labels['copy'] = 'Копіювати';
$labels['move'] = 'ПереміÑтити';
-$labels['moveto'] = 'ПереміÑтити до...';
+$labels['moveto'] = 'ПереміÑтити лиÑÑ‚ у...';
$labels['download'] = 'Завантажити';
$labels['open'] = 'Відкрити';
$labels['showattachment'] = 'Показати';
$labels['showanyway'] = 'Ð’Ñе одно показати';
+
$labels['filename'] = 'Ім\'Ñ Ñ„Ð°Ð¹Ð»Ñƒ';
$labels['filesize'] = 'Розмір файлу';
+
$labels['addtoaddressbook'] = 'Додати до контактів';
+
+// weekdays short
$labels['sun'] = 'Ðд';
$labels['mon'] = 'Пн';
$labels['tue'] = 'Ð’Ñ‚';
@@ -65,6 +81,8 @@ $labels['wed'] = 'Ср';
$labels['thu'] = 'Чт';
$labels['fri'] = 'Пт';
$labels['sat'] = 'Сб';
+
+// weekdays long
$labels['sunday'] = 'ÐеділÑ';
$labels['monday'] = 'Понеділок';
$labels['tuesday'] = 'Вівторок';
@@ -72,213 +90,240 @@ $labels['wednesday'] = 'Середа';
$labels['thursday'] = 'Четвер';
$labels['friday'] = 'П\'ÑтницÑ';
$labels['saturday'] = 'Субота';
-$labels['jan'] = 'Ñіч';
-$labels['feb'] = 'лют';
-$labels['mar'] = 'бер';
-$labels['apr'] = 'квіт';
-$labels['may'] = 'Травень';
-$labels['jun'] = 'чер';
-$labels['jul'] = 'лип';
-$labels['aug'] = 'Ñер';
-$labels['sep'] = 'вер';
-$labels['oct'] = 'жов';
-$labels['nov'] = 'лиÑ';
-$labels['dec'] = 'гр';
-$labels['longjan'] = 'Січень';
-$labels['longfeb'] = 'Лютий';
-$labels['longmar'] = 'Березень';
-$labels['longapr'] = 'Квітень';
-$labels['longmay'] = 'Травень';
-$labels['longjun'] = 'Червень';
-$labels['longjul'] = 'Липень';
-$labels['longaug'] = 'Серпень';
-$labels['longsep'] = 'ВереÑень';
-$labels['longoct'] = 'Жовтень';
-$labels['longnov'] = 'ЛиÑтопад';
-$labels['longdec'] = 'Грудень';
+
+// months short
+$labels['jan'] = 'Ñіч';
+$labels['feb'] = 'лют';
+$labels['mar'] = 'бер';
+$labels['apr'] = 'кві';
+$labels['may'] = 'тра';
+$labels['jun'] = 'чер';
+$labels['jul'] = 'лип';
+$labels['aug'] = 'Ñер';
+$labels['sep'] = 'вер';
+$labels['oct'] = 'жов';
+$labels['nov'] = 'лиÑ';
+$labels['dec'] = 'гру';
+
+// months long
+$labels['longjan'] = 'Січень';
+$labels['longfeb'] = 'Лютий';
+$labels['longmar'] = 'Березень';
+$labels['longapr'] = 'Квітень';
+$labels['longmay'] = 'Травень';
+$labels['longjun'] = 'Червень';
+$labels['longjul'] = 'Липень';
+$labels['longaug'] = 'Серпень';
+$labels['longsep'] = 'ВереÑень';
+$labels['longoct'] = 'Жовтень';
+$labels['longnov'] = 'ЛиÑтопад';
+$labels['longdec'] = 'Грудень';
+
$labels['today'] = 'Сьогодні';
-$labels['refresh'] = 'Оновити';
-$labels['checkmail'] = 'Перевірити пошту';
-$labels['compose'] = 'ÐапиÑати лиÑта';
-$labels['writenewmessage'] = 'ÐапиÑати лиÑта';
-$labels['reply'] = 'ВідповіÑти';
-$labels['replytomessage'] = 'ВідповіÑти відправнику';
-$labels['replytoallmessage'] = 'ВідповіÑти до лиÑта або відправнику та уÑім отримувачам';
-$labels['replyall'] = 'ВідповіÑти уÑім';
-$labels['replylist'] = 'ВідповіÑти до лиÑта';
-$labels['forward'] = 'ПереÑлати';
-$labels['forwardinline'] = 'ПереÑлати у тілі лиÑта';
-$labels['forwardattachment'] = 'ПереÑлати Ñк прикріпленнÑ';
-$labels['forwardmessage'] = 'ПереÑлати повідомленнÑ';
-$labels['deletemessage'] = 'У кошик';
-$labels['movemessagetotrash'] = 'ПереміÑтити лиÑÑ‚ у кошик';
-$labels['printmessage'] = 'Друкувати';
-$labels['previousmessage'] = 'Показати попередній лиÑÑ‚';
-$labels['firstmessage'] = 'Показати перший лиÑÑ‚';
-$labels['nextmessage'] = 'Показати наÑтупний лиÑÑ‚';
-$labels['lastmessage'] = 'Показати оÑтанній лиÑÑ‚';
-$labels['backtolist'] = 'До переліку лиÑтів';
-$labels['viewsource'] = 'Вихідний текÑÑ‚';
-$labels['mark'] = 'Помітити';
-$labels['markmessages'] = 'Позначити лиÑти';
-$labels['markread'] = 'Позначити Ñк прочитане';
-$labels['markunread'] = 'Позначити Ñк непрочитане';
-$labels['markflagged'] = 'Додати зірочку';
-$labels['markunflagged'] = 'ЗнÑти зірочку';
-$labels['moreactions'] = 'Інші дії...';
-$labels['more'] = 'Ще';
-$labels['back'] = 'Ðазад';
-$labels['options'] = 'Параметри';
-$labels['select'] = 'Вибрати';
-$labels['all'] = 'Ð’ÑÑ–';
-$labels['none'] = 'Ðе Ñортувати';
-$labels['currpage'] = 'Поточна Ñторінка';
-$labels['unread'] = 'Ðепрочитані';
-$labels['flagged'] = 'Із зірочкою';
+
+// toolbar buttons
+$labels['refresh'] = 'Оновити';
+$labels['checkmail'] = 'Перевірити пошту';
+$labels['compose'] = 'ÐапиÑати лиÑта';
+$labels['writenewmessage'] = 'ÐапиÑати лиÑта';
+$labels['reply'] = 'ВідповіÑти';
+$labels['replytomessage'] = 'ВідповіÑти відправнику';
+$labels['replytoallmessage'] = 'ВідповіÑти відправнику та уÑім отримувачам';
+$labels['replyall'] = 'ВідповіÑти уÑім';
+$labels['replylist'] = 'ВідповіÑти уÑім отримувачам';
+$labels['forward'] = 'ПереÑлати';
+$labels['forwardinline'] = 'ПереÑлати у тілі лиÑта';
+$labels['forwardattachment'] = 'ПереÑлати Ñк додаток';
+$labels['forwardmessage'] = 'ПереÑлати лиÑÑ‚';
+$labels['deletemessage'] = 'Видалити';
+$labels['movemessagetotrash'] = 'ПереміÑтити у Видалені';
+$labels['printmessage'] = 'Друкувати';
+$labels['previousmessage'] = 'Показати попередній лиÑÑ‚';
+$labels['firstmessage'] = 'Показати перший лиÑÑ‚';
+$labels['nextmessage'] = 'Показати наÑтупний лиÑÑ‚';
+$labels['lastmessage'] = 'Показати оÑтанній лиÑÑ‚';
+$labels['backtolist'] = 'До переліку лиÑтів';
+$labels['viewsource'] = 'Вихідний текÑÑ‚';
+$labels['mark'] = 'Позначити';
+$labels['markmessages'] = 'Позначити лиÑти';
+$labels['markread'] = 'Позначити Ñк прочитаний';
+$labels['markunread'] = 'Позначити Ñк непрочитаний';
+$labels['markflagged'] = 'ПоÑтавити позначку';
+$labels['markunflagged'] = 'ЗнÑти позначку';
+$labels['moreactions'] = 'Інші дії...';
+$labels['more'] = 'Ще';
+$labels['back'] = 'Ðазад';
+$labels['options'] = 'Параметри';
+
+$labels['select'] = 'Вибрати';
+$labels['all'] = 'УÑÑ–';
+$labels['none'] = 'Ðе Ñортувати';
+$labels['currpage'] = 'Поточна Ñторінка';
+$labels['unread'] = 'Ðепрочитані';
+$labels['flagged'] = 'З позначкою';
$labels['unanswered'] = 'Без відповіді';
-$labels['deleted'] = 'Видалені';
-$labels['undeleted'] = 'Ðе видалено';
-$labels['invert'] = 'Інвертувати виділеннÑ';
-$labels['filter'] = 'Фільтр';
-$labels['list'] = 'СпиÑком';
-$labels['threads'] = 'Гілки';
-$labels['expand-all'] = 'Розкрити вÑÑ–';
-$labels['expand-unread'] = 'Розкрити непрочитані';
-$labels['collapse-all'] = 'Згорнути вÑÑ–';
-$labels['threaded'] = 'Гілками';
-$labels['autoexpand_threads'] = 'Розкривати гілки';
+$labels['withattachment'] = 'З додатком';
+$labels['deleted'] = 'Видалені';
+$labels['undeleted'] = 'Ðе видалені';
+$labels['invert'] = 'Інвертувати вибір';
+$labels['filter'] = 'Фільтр';
+$labels['list'] = 'СпиÑок';
+$labels['threads'] = 'Гілки';
+$labels['expand-all'] = 'Розгорнути уÑÑ–';
+$labels['expand-unread'] = 'Розгорнути непрочитані';
+$labels['collapse-all'] = 'Згорнути уÑÑ–';
+$labels['threaded'] = 'Гілками';
+
+$labels['autoexpand_threads'] = 'Ðвтоматично розгортати гілки';
$labels['do_expand'] = 'уÑÑ– гілки';
$labels['expand_only_unread'] = 'тільки з непрочитаними лиÑтами';
-$labels['fromto'] = 'Відправник/Одержувач';
-$labels['flag'] = 'Позначка';
-$labels['attachment'] = 'ВкладеннÑ';
-$labels['nonesort'] = 'Ðе Ñортувати';
-$labels['sentdate'] = 'Дата відправленнÑ';
-$labels['arrival'] = 'Дата ориманнÑ';
-$labels['asc'] = 'за зроÑтаннÑм';
-$labels['desc'] = 'за ÑпаданнÑм';
+$labels['fromto'] = 'Відправник/Одержувач';
+$labels['flag'] = 'Позначка';
+$labels['attachment'] = 'Додаток';
+$labels['nonesort'] = 'Ðе Ñортувати';
+$labels['sentdate'] = 'Дата відправленнÑ';
+$labels['arrival'] = 'Дата отриманнÑ';
+$labels['asc'] = 'За зроÑтаннÑм';
+$labels['desc'] = 'За ÑпаданнÑм';
$labels['listcolumns'] = 'Ðтрибути Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
$labels['listsorting'] = 'Сортувати за атрибутом';
$labels['listorder'] = 'ПорÑдок ÑортуваннÑ';
-$labels['listmode'] = 'Режим переглÑду';
+$labels['listmode'] = 'Режим переглÑду';
+
$labels['folderactions'] = 'Операції з папкою...';
$labels['compact'] = 'СтиÑнути';
$labels['empty'] = 'Спорожнити';
-$labels['importmessages'] = 'Імпорт повідомлень';
+
$labels['quota'] = 'ВикориÑтано';
-$labels['unknown'] = 'невідомо';
-$labels['unlimited'] = 'без обмеженнÑ';
-$labels['quicksearch'] = 'Швидкий пошук';
-$labels['resetsearch'] = 'ОчиÑтити пошук';
-$labels['searchmod'] = 'Де шукати';
-$labels['msgtext'] = 'Ð’ уÑьому лиÑÑ‚Ñ–';
-$labels['body'] = 'Тіло повідомленнÑ';
-$labels['namex'] = 'Ім\'Ñ';
-$labels['openinextwin'] = 'Відкрити в новому вікні';
+$labels['unknown'] = 'невідомо';
+$labels['unlimited'] = 'без обмеженнÑ';
+
+$labels['quicksearch'] = 'Швидкий пошук';
+$labels['resetsearch'] = 'ОчиÑтити пошук';
+$labels['searchmod'] = 'Де шукати';
+$labels['msgtext'] = 'ВеÑÑŒ лиÑÑ‚';
+$labels['body'] = 'ТекÑÑ‚ лиÑта';
+
+$labels['openinextwin'] = 'Відкрити у новому вікні';
$labels['emlsave'] = 'Зберегти (.eml)';
-$labels['changeformattext'] = 'Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² текÑтовому форматі';
-$labels['changeformathtml'] = 'Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñƒ форматі HTML';
-$labels['editasnew'] = 'Редагувати Ñк новий';
-$labels['send'] = 'Відправлено';
-$labels['sendmessage'] = 'ÐадіÑлати зараз';
-$labels['savemessage'] = 'Зберегти чернетку';
-$labels['addattachment'] = 'ВклаÑти файл';
-$labels['charset'] = 'КодуваннÑ';
-$labels['editortype'] = 'Редактор';
-$labels['returnreceipt'] = 'Запит відповіді';
-$labels['dsn'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ доÑтавку';
+$labels['changeformattext'] = 'Показати Ñк звичайний текÑÑ‚';
+$labels['changeformathtml'] = 'Показати Ñк HTML';
+
+// message compose
+$labels['editasnew'] = 'Редагувати Ñк новий';
+$labels['send'] = 'Відправлено';
+$labels['sendmessage'] = 'ÐадіÑлати зараз';
+$labels['savemessage'] = 'Зберегти чернетку';
+$labels['addattachment'] = 'Додати файл';
+$labels['charset'] = 'КодуваннÑ';
+$labels['editortype'] = 'Редактор';
+$labels['returnreceipt'] = 'Повідомити про прочитаннÑ';
+$labels['dsn'] = 'Повідомити про доÑтавку';
$labels['mailreplyintro'] = '$date, $sender напиÑав:';
-$labels['originalmessage'] = 'Оригінальне повідомленнÑ';
-$labels['editidents'] = 'Змінити данні';
-$labels['spellcheck'] = 'ОрфографіÑ';
+$labels['originalmessage'] = 'Оригінальний лиÑÑ‚';
+
+$labels['editidents'] = 'Змінити дані';
+$labels['spellcheck'] = 'ОрфографіÑ';
$labels['checkspelling'] = 'Перевірити орфографію';
$labels['resumeediting'] = 'Продовжити редагуваннÑ';
-$labels['revertto'] = 'Відмінити редагуваннÑ';
-$labels['attach'] = 'ВклаÑти';
-$labels['attachments'] = 'Вкладені файли';
-$labels['upload'] = 'ВклаÑти';
+$labels['revertto'] = 'Відмінити редагуваннÑ';
+
+$labels['attach'] = 'Додати';
+$labels['attachments'] = 'Додані файли';
+$labels['upload'] = 'Завантажити';
$labels['uploadprogress'] = '$percent ($current з $total)';
-$labels['close'] = 'Закрити';
-$labels['messageoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñтів';
-$labels['low'] = 'Ðизький';
-$labels['lowest'] = 'Ðайнижчий';
-$labels['normal'] = 'Ðормальний';
-$labels['high'] = 'ВиÑокий';
-$labels['highest'] = 'Ðайвищий';
+$labels['close'] = 'Закрити';
+$labels['messageoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñта';
+
+$labels['low'] = 'низький';
+$labels['lowest'] = 'найнижчий';
+$labels['normal'] = 'нормальний';
+$labels['high'] = 'виÑокий';
+$labels['highest'] = 'найвищий';
+
$labels['nosubject'] = '(без теми)';
$labels['showimages'] = 'Показувати зображеннÑ';
$labels['alwaysshow'] = 'Завжди показувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ $sender';
$labels['isdraft'] = 'Це чернетка.';
$labels['andnmore'] = 'ще $nr...';
-$labels['togglemoreheaders'] = 'Завантажити ще заголовки повідомлень';
-$labels['togglefullheaders'] = 'Показати оригінальні заголовки повідомленнÑ';
+$labels['togglemoreheaders'] = 'Показати більше заголовків лиÑта';
+$labels['togglefullheaders'] = 'Показати уÑÑ– заголовки лиÑта';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Звичайний текÑÑ‚';
-$labels['savesentmessagein'] = 'зберегти надіÑланого лиÑта в';
+$labels['savesentmessagein'] = 'Зберегти надіÑланого лиÑта у';
$labels['dontsave'] = 'не зберігати';
$labels['maxuploadsize'] = 'МакÑимальний розмір файлу $size';
+
$labels['addcc'] = 'Додати копію';
$labels['addbcc'] = 'Додати приховану копію';
$labels['addreplyto'] = 'Додати зворотню адреÑу';
-$labels['addfollowupto'] = 'Додати Followup-To';
-$labels['mdnrequest'] = 'Відправник цього лиÑта запитав про прочитаннÑ. Повідомити відправника?';
+$labels['addfollowupto'] = 'Додати у відповідь';
+
+// mdn
+$labels['mdnrequest'] = 'Відправник цього лиÑта запитує про його прочитаннÑ. Повідомити відправника?';
$labels['receiptread'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ прочитаннÑ';
$labels['yourmessage'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð’Ð°ÑˆÐ¾Ð³Ð¾ лиÑта';
-$labels['receiptnote'] = 'ЗауваженнÑ: Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ñ” лише, що лиÑта було відкрито одержувачем, Ñ– не гарантує того, що його було прочитано.';
-$labels['name'] = 'Ім`Ñ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
-$labels['firstname'] = 'Ім`Ñ';
-$labels['surname'] = 'Прізвище';
-$labels['middlename'] = 'По-батькові';
-$labels['nameprefix'] = 'ПрефікÑ';
-$labels['namesuffix'] = 'СуфікÑ';
-$labels['nickname'] = 'Ðікнейм';
-$labels['jobtitle'] = 'ПоÑада';
-$labels['department'] = 'Відділ';
-$labels['gender'] = 'Стать';
-$labels['maidenname'] = 'Дівоче прізвище';
-$labels['email'] = 'Електронна адреÑа';
-$labels['phone'] = 'Телефон';
-$labels['address'] = 'ÐдреÑа';
-$labels['street'] = 'ВулицÑ';
-$labels['locality'] = 'МіÑто';
-$labels['zipcode'] = 'ІндекÑ';
-$labels['region'] = 'ОблаÑÑ‚ÑŒ';
-$labels['country'] = 'Страна';
-$labels['birthday'] = 'Дата народженнÑ';
-$labels['anniversary'] = 'Ювілей';
-$labels['website'] = 'Веб-Ñайт';
+$labels['receiptnote'] = 'ЗауваженнÑ: Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ñ” лише те, що лиÑта було відкрито одержувачем, Ñ– не гарантує того, що його було прочитано.';
+
+// address boook
+$labels['name'] = 'Ім\'Ñ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
+$labels['firstname'] = 'Ім\'Ñ';
+$labels['surname'] = 'Прізвище';
+$labels['middlename'] = 'По-батькові';
+$labels['nameprefix'] = 'ПрефікÑ';
+$labels['namesuffix'] = 'СуфікÑ';
+$labels['nickname'] = 'ПрізвиÑько';
+$labels['jobtitle'] = 'ПоÑада';
+$labels['department'] = 'Відділ';
+$labels['gender'] = 'Стать';
+$labels['maidenname'] = 'Дівоче прізвище';
+$labels['email'] = 'Електронна адреÑа';
+$labels['phone'] = 'Телефон';
+$labels['address'] = 'ÐдреÑа';
+$labels['street'] = 'ВулицÑ';
+$labels['locality'] = 'МіÑто';
+$labels['zipcode'] = 'ІндекÑ';
+$labels['region'] = 'ОблаÑÑ‚ÑŒ';
+$labels['country'] = 'Країна';
+$labels['birthday'] = 'День народженнÑ';
+$labels['anniversary'] = 'Ювілей';
+$labels['website'] = 'Веб-Ñайт';
$labels['instantmessenger'] = 'IM';
-$labels['notes'] = 'Примітки';
-$labels['male'] = 'чоловічий';
-$labels['female'] = 'жіночий';
-$labels['manager'] = 'Менеждер';
-$labels['assistant'] = 'Помічник';
-$labels['spouse'] = 'Шлюбний партнер';
-$labels['allfields'] = 'УÑÑ– полÑ';
-$labels['search'] = 'Пошук';
-$labels['advsearch'] = 'Розширений пошук';
-$labels['advanced'] = 'Додатково';
-$labels['other'] = 'Інше';
+$labels['notes'] = 'Примітки';
+$labels['male'] = 'чоловіча';
+$labels['female'] = 'жіноча';
+$labels['manager'] = 'Менеджер';
+$labels['assistant'] = 'Помічник';
+$labels['spouse'] = 'У шлюбі з';
+$labels['allfields'] = 'УÑÑ– полÑ';
+$labels['search'] = 'Пошук';
+$labels['advsearch'] = 'Розширений пошук';
+$labels['advanced'] = 'Додатково';
+$labels['other'] = 'Інше';
+
$labels['typehome'] = 'Дім';
$labels['typework'] = 'Робота';
$labels['typeother'] = 'Інше';
-$labels['typemobile'] = 'Мобільний';
-$labels['typemain'] = 'ОÑновний';
-$labels['typehomefax'] = 'Домашній факÑ';
-$labels['typeworkfax'] = 'Робочий факÑ';
-$labels['typecar'] = 'Ðвтомобіль';
+$labels['typemobile'] = 'Мобільний';
+$labels['typemain'] = 'ОÑновний';
+$labels['typehomefax'] = 'Домашній факÑ';
+$labels['typeworkfax'] = 'Робочий факÑ';
+$labels['typecar'] = 'Ðвтомобіль';
$labels['typepager'] = 'Пейджер';
$labels['typevideo'] = 'Відео';
-$labels['typeassistant'] = 'Помічник';
-$labels['typehomepage'] = 'Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка';
-$labels['typeblog'] = 'Блог';
+$labels['typeassistant'] = 'Помічник';
+$labels['typehomepage'] = 'Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка';
+$labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профіль';
+
$labels['addfield'] = 'Додати поле...';
-$labels['addcontact'] = 'Додати вибрані контакти до ÑпиÑку контактів';
+$labels['addcontact'] = 'Додати обрані контакти до ÑпиÑку контактів';
$labels['editcontact'] = 'Редагувати контакт';
$labels['contacts'] = 'Контакти';
-$labels['contactproperties'] = 'ВлаÑтивоÑÑ‚Ñ– контакта';
+$labels['contactproperties'] = 'ВлаÑтивоÑÑ‚Ñ– контакту';
$labels['personalinfo'] = 'ОÑобова інформаціÑ';
+
$labels['edit'] = 'Правка';
$labels['cancel'] = 'СкаÑувати';
$labels['save'] = 'Зберегти';
@@ -287,69 +332,80 @@ $labels['rename'] = 'Перейменувати';
$labels['addphoto'] = 'Додати';
$labels['replacephoto'] = 'Замінити';
$labels['uploadphoto'] = 'Завантажити фотографію';
-$labels['newcontact'] = 'Створити новий контакт';
-$labels['deletecontact'] = 'Видалити вибрані контакти';
-$labels['composeto'] = 'Створити лиÑта Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð½Ð¸Ñ… контактів';
+
+$labels['newcontact'] = 'Створити новий контакт';
+$labels['deletecontact'] = 'Видалити обрані контакти';
+$labels['composeto'] = 'ÐапиÑати лиÑта до обраних контактів';
$labels['contactsfromto'] = 'Контакти $from - $to / $count';
-$labels['print'] = 'Друкувати';
-$labels['export'] = 'ЕкÑпортувати';
-$labels['exportall'] = 'ЕкÑпортувати вÑе';
-$labels['exportsel'] = 'ЕкÑпортувати виділені';
-$labels['exportvcards'] = 'ЕкÑпортувати контакти у формат vCard';
+$labels['print'] = 'Друкувати';
+$labels['export'] = 'ЕкÑпортувати';
+$labels['exportall'] = 'ЕкÑпортувати вÑе';
+$labels['exportsel'] = 'ЕкÑпортувати обрані';
+$labels['exportvcards'] = 'ЕкÑпортувати контакти у формат vCard';
$labels['newcontactgroup'] = 'Створити нову групу контактів';
-$labels['grouprename'] = 'Перейменувати групу';
-$labels['groupdelete'] = 'Видалити групу';
+$labels['grouprename'] = 'Перейменувати групу';
+$labels['groupdelete'] = 'Видалити групу';
$labels['groupremoveselected'] = 'Видалити обрані контакти з групи';
-$labels['previouspage'] = 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñторінка';
-$labels['firstpage'] = 'Перша Ñторінка';
-$labels['nextpage'] = 'ÐаÑтупна Ñторінка';
-$labels['lastpage'] = 'ОÑÑ‚Ð°Ð½Ð½Ñ Ñторінка';
+
+$labels['previouspage'] = 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñторінка';
+$labels['firstpage'] = 'Перша Ñторінка';
+$labels['nextpage'] = 'ÐаÑтупна Ñторінка';
+$labels['lastpage'] = 'ОÑÑ‚Ð°Ð½Ð½Ñ Ñторінка';
+
$labels['group'] = 'Група';
$labels['groups'] = 'Групи';
$labels['personaladrbook'] = 'ПерÑональні адреÑи';
-$labels['searchsave'] = 'Зберегти пошук';
-$labels['searchdelete'] = 'Видалити пошук';
+
+$labels['searchsave'] = 'Зберегти пошуковий запит';
+$labels['searchdelete'] = 'Видалити пошуковий запит';
+
$labels['import'] = 'Імпорт';
$labels['importcontacts'] = 'Імпортувати контакти';
$labels['importfromfile'] = 'Імпортувати з файлу:';
+$labels['importtarget'] = 'Додати нові контакти до адреÑної книги';
$labels['importreplace'] = 'Замінити вÑÑŽ адреÑну книгу';
-$labels['importgroupsexisting'] = 'Лише Ð´Ð»Ñ Ñ–Ñнуючих груп';
-$labels['importdesc'] = 'Ви можете завантажити контакти з Ñ–Ñнуючої адреÑної книги.<br/>Ð’ даний Ñ‡Ð°Ñ Ð¼Ð¸ підтримуємо імпорт Ð°Ð´Ñ€ÐµÑ Ð² форматі візитної картки <a href="http://en.wikipedia.org/wiki/VCard"> vCard</ a> або CSV (дані розділені комами).';
+$labels['importdesc'] = 'Ви можете завантажити контакти з Ñ–Ñнуючої адреÑної книги.<br/>Ð’ даний Ñ‡Ð°Ñ Ð¼Ð¸ підтримуємо імпорт Ð°Ð´Ñ€ÐµÑ Ñƒ форматі візитної картки <a href="http://en.wikipedia.org/wiki/VCard"> vCard</ a> або CSV (дані розділені комами).';
$labels['done'] = 'Готово';
+
+// settings
$labels['settingsfor'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ';
$labels['about'] = 'Про програму';
$labels['preferences'] = 'Параметри';
$labels['userpreferences'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
$labels['editpreferences'] = 'Редагувати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
+
$labels['identities'] = 'Профілі';
$labels['manageidentities'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»Ñми';
$labels['newidentity'] = 'Ðовий профіль';
+
$labels['newitem'] = 'Ðовий';
$labels['edititem'] = 'Редагувати';
-$labels['preferhtml'] = 'Показувати в HTML';
-$labels['defaultcharset'] = 'ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° замовчуванннÑм';
+
+$labels['preferhtml'] = 'Показувати у HTML';
+$labels['defaultcharset'] = 'ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° замовчуваннÑм';
$labels['htmlmessage'] = 'ЛиÑÑ‚ у HTML';
$labels['messagepart'] = 'ЧаÑтина';
$labels['digitalsig'] = 'Цифровий підпиÑ';
$labels['dateformat'] = 'Формат дати';
$labels['timeformat'] = 'Формат чаÑу';
$labels['prettydate'] = 'Дати у зручному форматі';
-$labels['setdefault'] = 'Ð’Ñтановити за замовчуваннÑм';
-$labels['autodetect'] = 'Визначати автоматично';
-$labels['language'] = 'Мова';
-$labels['timezone'] = 'ЧаÑовий поÑÑ';
-$labels['pagesize'] = 'РÑдків на Ñторінці';
+$labels['setdefault'] = 'Ð’Ñтановити за замовчуваннÑм';
+$labels['autodetect'] = 'визначити автоматично';
+$labels['language'] = 'Мова';
+$labels['timezone'] = 'ЧаÑовий поÑÑ';
+$labels['pagesize'] = 'РÑдків на Ñторінці';
$labels['signature'] = 'ПідпиÑ';
-$labels['dstactive'] = 'Літній/зимовий чаÑ';
-$labels['showinextwin'] = 'Відкрити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð² новому вікні';
-$labels['composeextwin'] = 'Створити в новому вікні';
-$labels['htmleditor'] = 'Створювати лиÑти в HTML';
-$labels['htmlonreply'] = 'тільки у відповідь на HTML повідомленнÑ';
-$labels['htmlonreplyandforward'] = 'під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ відповіді на Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ HTML';
-$labels['htmlsignature'] = 'ÐŸÑ–Ð´Ð¿Ð¸Ñ Ð² HTML';
+$labels['dstactive'] = 'Літній/зимовий чаÑ';
+$labels['showinextwin'] = 'Відкрити лиÑÑ‚ у новому вікні';
+$labels['composeextwin'] = 'Створити у новому вікні';
+$labels['htmleditor'] = 'Створювати лиÑти у HTML';
+$labels['htmlonreply'] = 'тільки у відповідь на лиÑÑ‚ у HTML';
+$labels['htmlonreplyandforward'] = 'під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ відповіді на лиÑÑ‚ у HTML';
+$labels['htmlsignature'] = 'ÐŸÑ–Ð´Ð¿Ð¸Ñ Ñƒ HTML';
+$labels['showemail'] = 'Показати адреÑу з ім\'Ñм Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
$labels['previewpane'] = 'Показати панель переглÑду';
$labels['skin'] = 'Тема';
-$labels['logoutclear'] = 'Очищати кошик при виході';
+$labels['logoutclear'] = 'Очищати папку Видалені при виході';
$labels['logoutcompact'] = 'СтиÑкати папку Вхідні при завершенні';
$labels['uisettings'] = 'Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
$labels['serversettings'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñервера';
@@ -357,43 +413,43 @@ $labels['mailboxview'] = 'Вид інтерфейÑу';
$labels['mdnrequests'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ прочитаннÑ';
$labels['askuser'] = 'запитати кориÑтувача';
$labels['autosend'] = 'відправлÑти автоматично';
-$labels['autosendknown'] = 'відправити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¸Ð¼ контактам, в іншому випадку запитати мене';
-$labels['autosendknownignore'] = 'відправити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¸Ð¼ контактам, в іншому випадку ігнорувати';
+$labels['autosendknown'] = 'відправити лиÑÑ‚ моїм контактам, у іншому випадку запитати мене';
+$labels['autosendknownignore'] = 'відправити лиÑÑ‚ моїм контактам, у іншому випадку ігнорувати';
$labels['ignore'] = 'ігнорувати';
$labels['readwhendeleted'] = 'Позначати Ñк прочитане при видаленні';
$labels['flagfordeletion'] = 'Позначати Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ видаленнÑ';
$labels['skipdeleted'] = 'Ðе показувати видалені лиÑти';
-$labels['deletealways'] = 'ВидалÑти лиÑти при невдалому переміщенні до кошика';
-$labels['deletejunk'] = 'ВидалÑти Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· папки СПÐÐœ минаючи Корзину';
+$labels['deletealways'] = 'ВидалÑти лиÑти при невдалому переміщенні у Видалені';
+$labels['deletejunk'] = 'ВидалÑти лиÑти з папки СПÐÐœ минаючи Видалені';
$labels['showremoteimages'] = 'Показувати віддалені зображеннÑ';
$labels['fromknownsenders'] = 'від відомих відправників';
$labels['always'] = 'завжди';
-$labels['showinlineimages'] = 'Показувати вкладені Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð½Ð¸Ð·Ñƒ лиÑта';
-$labels['autosavedraft'] = 'ÐÐ²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð½ÐµÑ‚ÐºÐ¸';
-$labels['everynminutes'] = 'кожні $n хвилин';
-$labels['refreshinterval'] = 'Оновити (перевірити нові повідомленнÑ, тощо)';
-$labels['never'] = 'ніколи';
-$labels['immediately'] = 'одразу';
+$labels['showinlineimages'] = 'Показувати додані Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð½Ð¸Ð·Ñƒ лиÑта';
+$labels['autosavedraft'] = 'ÐÐ²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð½ÐµÑ‚ÐºÐ¸';
+$labels['everynminutes'] = 'кожні $n хвилин';
+$labels['refreshinterval'] = 'Оновити (перевірити нові лиÑти, тощо)';
+$labels['never'] = 'ніколи';
+$labels['immediately'] = 'одразу';
$labels['messagesdisplaying'] = 'Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð»Ð¸Ñтів';
$labels['messagescomposition'] = 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð»Ð¸Ñтів';
-$labels['mimeparamfolding'] = 'Імена вкладень';
-$labels['2231folding'] = 'Повний RFC 2231 (Thunderbird)';
+$labels['mimeparamfolding'] = 'Імена додатків';
+$labels['2231folding'] = 'повний RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'RFC 2047 (інші поштові клієнти)';
$labels['force7bit'] = 'ВикориÑтовувати MIME ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ 8-бітних Ñимволів';
$labels['advancedoptions'] = 'Додаткові параметри';
-$labels['focusonnewmessage'] = 'ФокуÑувати вікно браузера при новому лиÑÑ‚Ñ–';
+$labels['focusonnewmessage'] = 'ФокуÑувати вікно переглÑдача при новому лиÑÑ‚Ñ–';
$labels['checkallfolders'] = 'ПеревірÑти нові лиÑти у вÑÑ–Ñ… папках';
$labels['displaynext'] = 'ПіÑÐ»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ/Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð»Ð¸Ñта відображати наÑтупний';
-$labels['defaultfont'] = 'Шрифт за замовчуваннÑм HTML повідомленнÑ';
+$labels['defaultfont'] = 'Шрифт Ð´Ð»Ñ HTML за замовчуваннÑм';
$labels['mainoptions'] = 'ОÑновні налаштуваннÑ';
-$labels['browseroptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°';
+$labels['browseroptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñдача';
$labels['section'] = 'Розділ';
$labels['maintenance'] = 'Додатково';
$labels['newmessage'] = 'Ðовий лиÑÑ‚';
$labels['signatureoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу';
$labels['whenreplying'] = 'При відповіді';
-$labels['replyempty'] = 'не цитувати оригінальне повідомленнÑ';
+$labels['replyempty'] = 'не цитувати оригінальний лиÑÑ‚';
$labels['replytopposting'] = 'починати новий лиÑÑ‚ перед цитованим';
$labels['replybottomposting'] = 'починати новий лиÑÑ‚ піÑÐ»Ñ Ñ†Ð¸Ñ‚Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾';
$labels['replyremovesignature'] = 'При відповіді видалÑти первинний Ð¿Ñ–Ð´Ð¿Ð¸Ñ Ð· лиÑта';
@@ -401,32 +457,33 @@ $labels['autoaddsignature'] = 'Ðвтоматично додавати підпÐ
$labels['newmessageonly'] = 'тільки до нових лиÑтів';
$labels['replyandforwardonly'] = 'тільки при відповідÑÑ… та переÑилках';
$labels['insertsignature'] = 'Додати підпиÑ';
-$labels['previewpanemarkread'] = 'Позначити переглÑнуті лиÑти Ñк прочитані';
-$labels['afternseconds'] = 'через $n Ñекунд';
-$labels['reqmdn'] = 'Завжди вимагати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ доÑтавку';
-$labels['reqdsn'] = 'Завжди вимагати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾Ñтавки';
-$labels['replysamefolder'] = 'РозміÑтити відповіді у тій же папці, де знаходитьÑÑ Ð¾Ñ€Ð¸Ð³Ñ–Ð½Ð°Ð»';
+$labels['previewpanemarkread'] = 'Позначити переглÑнуті лиÑти Ñк прочитані';
+$labels['afternseconds'] = 'через $n Ñекунд';
+$labels['reqmdn'] = 'Завжди повідомлÑти про прочитаннÑ';
+$labels['reqdsn'] = 'Завжди повідомлÑти про доÑтавку';
+$labels['replysamefolder'] = 'Розміщувати відповіді у папці вихідного лиÑта';
$labels['defaultabook'] = 'ÐдреÑна книга за замовчуваннÑм';
-$labels['autocompletesingle'] = 'ПропуÑкати додаткові адреÑи в автозавершенні';
+$labels['autocompletesingle'] = 'ПропуÑкати додаткові адреÑи у автозавершенні';
$labels['listnamedisplay'] = 'Виводити ÑпиÑок контактів Ñк';
-$labels['spellcheckbeforesend'] = 'Перевірити орфографію перед відправкою повідомленнÑ';
+$labels['spellcheckbeforesend'] = 'ПеревірÑти орфографію перед відправкою';
$labels['spellcheckoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ орфографії';
-$labels['spellcheckignoresyms'] = 'Ігнорувати Ñлова із Ñимволами';
-$labels['spellcheckignorenums'] = 'Ігнорувати Ñлова із чиÑлами';
-$labels['spellcheckignorecaps'] = 'Ігнорувати Ñлова із великими буквами';
+$labels['spellcheckignoresyms'] = 'Ігнорувати Ñлова з Ñимволами';
+$labels['spellcheckignorenums'] = 'Ігнорувати Ñлова з чиÑлами';
+$labels['spellcheckignorecaps'] = 'Ігнорувати Ñлова з великими літерами';
$labels['addtodict'] = 'Додати до Ñловника';
-$labels['mailtoprotohandler'] = 'ЗареєÑтрувати обробник Ð´Ð»Ñ Ð¿Ð¾Ñилань mailto';
-$labels['forwardmode'] = 'ПереÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ';
+$labels['mailtoprotohandler'] = 'ЗареєÑтрувати цей Ñервер Ñк обробник поÑилань mailto:';
+$labels['forwardmode'] = 'ПереÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð»Ð¸Ñтів';
$labels['inline'] = 'у текÑÑ‚Ñ–';
-$labels['asattachment'] = 'Ñк вкладеннÑ';
-$labels['folder'] = 'Папка';
-$labels['folders'] = 'Папки';
-$labels['foldername'] = 'Ðазва папки';
-$labels['subscribed'] = 'ПідпиÑані';
+$labels['asattachment'] = 'Ñк додаток';
+
+$labels['folder'] = 'Папка';
+$labels['folders'] = 'Папки';
+$labels['foldername'] = 'Ðазва папки';
+$labels['subscribed'] = 'ПідпиÑані';
$labels['messagecount'] = 'ЛиÑти';
-$labels['create'] = 'Створити';
-$labels['createfolder'] = 'Створити нову папку';
-$labels['managefolders'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ°Ð¼Ð¸';
+$labels['create'] = 'Створити';
+$labels['createfolder'] = 'Створити нову папку';
+$labels['managefolders'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ°Ð¼Ð¸';
$labels['specialfolders'] = 'ОÑобливі папки';
$labels['properties'] = 'ВлаÑтивоÑÑ‚Ñ–';
$labels['folderproperties'] = 'ВлаÑтивоÑÑ‚Ñ– папки';
@@ -436,23 +493,29 @@ $labels['info'] = 'ІнформаціÑ';
$labels['getfoldersize'] = 'Показати розмір папки';
$labels['changesubscription'] = 'Змінити підпиÑку';
$labels['foldertype'] = 'Тип каталогу';
-$labels['personalfolder'] = 'Приватний каталог';
-$labels['otherfolder'] = 'Каталог іншого кориÑтувача';
-$labels['sharedfolder'] = 'Публічний каталог';
+$labels['personalfolder'] = 'Приватний каталог';
+$labels['otherfolder'] = 'Каталог іншого кориÑтувача';
+$labels['sharedfolder'] = 'Публічний каталог';
+
$labels['sortby'] = 'ВідÑортувати за';
-$labels['sortasc'] = 'Сортувати за зроÑтаннÑм';
+$labels['sortasc'] = 'Сортувати за зроÑтаннÑм';
$labels['sortdesc'] = 'Сортувати за ÑпаданнÑм';
$labels['undo'] = 'Відмінити';
+
$labels['installedplugins'] = 'Ð’Ñтановлені плагіни';
$labels['plugin'] = 'ДоповненнÑ';
$labels['version'] = 'ВерÑÑ–Ñ';
$labels['source'] = 'Джерело';
$labels['license'] = 'ЛіцензіÑ';
$labels['support'] = 'Отримати підтримку';
-$labels['B'] = 'б';
-$labels['KB'] = 'Кб';
-$labels['MB'] = 'Мб';
-$labels['GB'] = 'Гб';
+
+// units
+$labels['B'] = 'Б';
+$labels['KB'] = 'кБ';
+$labels['MB'] = 'МБ';
+$labels['GB'] = 'ГБ';
+
+// character sets
$labels['unicode'] = 'Юнікод';
$labels['english'] = 'ÐнглійÑьке';
$labels['westerneuropean'] = 'ЗахідноєвропейÑьке';
@@ -471,4 +534,5 @@ $labels['vietnamese'] = 'Ð’\'єтнамÑьке';
$labels['japanese'] = 'ЯпонÑьке';
$labels['korean'] = 'КорейÑьке';
$labels['chinese'] = 'КитайÑьке';
+
?>
diff --git a/program/localization/uk_UA/messages.inc b/program/localization/uk_UA/messages.inc
index 620e1520b..0b52e4d6c 100644
--- a/program/localization/uk_UA/messages.inc
+++ b/program/localization/uk_UA/messages.inc
@@ -15,22 +15,25 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'Виникла помилка!';
-$messages['loginfailed'] = 'Ðевдала Ñпроба входу';
+
+$messages = array();
+$messages['errortitle'] = 'Виникла помилка!';
+$messages['loginfailed'] = 'Ðевдала Ñпроба входу';
$messages['cookiesdisabled'] = 'Ваш переглÑдач не приймає cookie';
$messages['sessionerror'] = 'Ваша ÑеÑÑ–Ñ Ð·Ð°Ñтаріла';
-$messages['storageerror'] = 'Ðевдале з`Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· IMAP Ñервером';
+$messages['storageerror'] = 'Ðевдале з\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· IMAP Ñервером';
$messages['servererror'] = 'Помилка Ñервера!';
$messages['servererrormsg'] = 'Помилка Ñервера: $msg';
$messages['dberror'] = 'Помилка бази даних!';
$messages['requesttimedout'] = 'Тайм-аут запиту';
-$messages['errorreadonly'] = 'Ðеможливо виконати операцію. Папка доÑтупна тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.';
-$messages['errornoperm'] = 'Ðеможливо виконати операцію. ДоÑтуп заборонено';
-$messages['erroroverquota'] = 'Ðеможливо виконати операцію. Ðемає вільного міÑÑ†Ñ Ð½Ð° диÑку.';
+$messages['errorreadonly'] = 'Ðеможливо виконати операцію - папка доÑтупна тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ';
+$messages['errornoperm'] = 'Ðеможливо виконати операцію - доÑтуп заборонено';
+$messages['erroroverquota'] = 'Ðеможливо виконати операцію - немає вільного міÑÑ†Ñ Ð½Ð° диÑку';
+$messages['erroroverquotadelete'] = 'Ðемає вільного міÑÑ†Ñ Ð½Ð° диÑку - натиÑніть SHIFT+DEL Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¸Ñта';
$messages['invalidrequest'] = 'Ðевірний запит! Дані не збережено.';
-$messages['invalidhost'] = 'Ðевірне ім\'Ñ Ñерверу.';
+$messages['invalidhost'] = 'Ðевірне ім\'Ñ Ñервера';
$messages['nomessagesfound'] = 'ЛиÑтів не знайдено';
-$messages['loggedout'] = 'Вашу ÑеÑÑ–ÑŽ завершено. Ð’Ñього найкращого!';
+$messages['loggedout'] = 'Вашу ÑеÑÑ–ÑŽ завершено. УÑього найкращого!';
$messages['mailboxempty'] = 'Поштова Ñкринька порожнÑ';
$messages['refreshing'] = 'ОновленнÑ...';
$messages['loading'] = 'ЗавантаженнÑ...';
@@ -41,37 +44,38 @@ $messages['checkingmail'] = 'Перевірка нових лиÑтів...';
$messages['sendingmessage'] = 'Відправка лиÑта...';
$messages['messagesent'] = 'ЛиÑÑ‚ уÑпішно відправлено';
$messages['savingmessage'] = 'Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð»Ð¸Ñта...';
-$messages['messagesaved'] = 'Збережено в Чернетках';
+$messages['messagesaved'] = 'Збережено у Чернетках';
$messages['successfullysaved'] = 'Збережено';
$messages['addedsuccessfully'] = 'Контакт уÑпішно доданий до ÑпиÑку контактів';
$messages['contactexists'] = 'Контакт з такою електронною адреÑою вже Ñ–Ñнує';
-$messages['contactnameexists'] = 'Контакт з таким Ñамим іменем вже Ñ–Ñнує.';
-$messages['blockedimages'] = 'З метою безпеки Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð· зовнішніх джерел заблоковано у цьому лиÑÑ‚Ñ–.';
-$messages['encryptedmessage'] = 'ЛиÑÑ‚ зашифровано Ñ– не може бути відображено.';
+$messages['contactnameexists'] = 'Контакт з таким ім\'Ñм вже Ñ–Ñнує';
+$messages['blockedimages'] = 'З метою безпеки у цьому лиÑÑ‚Ñ– заблоковано Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð· зовнішніх джерел';
+$messages['encryptedmessage'] = 'ЛиÑÑ‚ зашифровано Ñ– не може бути відображено';
$messages['nocontactsfound'] = 'Контакти не знайдені';
$messages['contactnotfound'] = 'Запитаний контакт не знайдений';
-$messages['contactsearchonly'] = 'Введіть деÑкі критерії пошуку, щоб знайти контакти';
+$messages['contactsearchonly'] = 'Щоб знайти контакти введіть критерії пошуку';
$messages['sendingfailed'] = 'Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ лиÑта';
$messages['senttooquickly'] = 'Будь лаÑка, зачекайте $sec Ñекунд Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸ лиÑта';
-$messages['errorsavingsent'] = 'Помилка при збереженні відправленого повідомленнÑ.';
+$messages['errorsavingsent'] = 'Помилка при збереженні відправленого лиÑта';
+$messages['errorsaving'] = 'Помилка при збереженні';
$messages['errormoving'] = 'Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñтити лиÑти';
$messages['errorcopying'] = 'Ðе вдалоÑÑ Ð·ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ñ‚Ð¸ лиÑти';
$messages['errordeleting'] = 'Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ лиÑти';
$messages['errormarking'] = 'Ðе вдалоÑÑ Ð¿Ð¾Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ лиÑти';
-$messages['deletecontactconfirm'] = 'Ви дійÑно бажаєте видалити вибрані контакти?';
+$messages['deletecontactconfirm'] = 'Ви дійÑно бажаєте видалити обрані контакти?';
$messages['deletegroupconfirm'] = 'Ви дійÑно хочете видалити обрану групу?';
-$messages['deletemessagesconfirm'] = 'Ви дійÑно бажаєте видалити вибрані лиÑти?';
+$messages['deletemessagesconfirm'] = 'Ви дійÑно бажаєте видалити обрані лиÑти?';
$messages['deletefolderconfirm'] = 'Ви дійÑно бажаєте видалити цю папку?';
-$messages['purgefolderconfirm'] = 'Ви дійÑно бажаєте видалити вÑÑ– лиÑти у цій папці?';
+$messages['purgefolderconfirm'] = 'Ви дійÑно бажаєте видалити уÑÑ– лиÑти у цій папці?';
$messages['contactdeleting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів)...';
$messages['groupdeleting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸...';
$messages['folderdeleting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸...';
$messages['foldermoving'] = 'ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸...';
$messages['foldersubscribing'] = 'ПідпиÑати папку...';
$messages['folderunsubscribing'] = 'ВідпиÑати папку...';
-$messages['formincomplete'] = 'Заповнено не вÑÑ– полÑ';
+$messages['formincomplete'] = 'Заповнено не уÑÑ– полÑ';
$messages['noemailwarning'] = 'Будь лаÑка, введіть коректну адреÑу електронної пошти';
-$messages['nonamewarning'] = 'Будь лаÑка, введіть ім`Ñ';
+$messages['nonamewarning'] = 'Будь лаÑка, введіть ім\'Ñ';
$messages['nopagesizewarning'] = 'Будь лаÑка, введіть розмір Ñторінки';
$messages['nosenderwarning'] = 'Будь лаÑка, введіть адреÑу електронної пошти відправника';
$messages['norecipientwarning'] = 'Будь лаÑка, вкажіть принаймні одного отримувача';
@@ -79,10 +83,10 @@ $messages['nosubjectwarning'] = 'Ðе вказано тему лиÑта. БаÐ
$messages['nobodywarning'] = 'Відправити лиÑта без текÑту?';
$messages['notsentwarning'] = 'ЛиÑÑ‚ не було відправлено. Ви бажаєте відхилити відправку?';
$messages['noldapserver'] = 'Будь лаÑка, виберіть LDAP Ñервер Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ';
-$messages['nosearchname'] = 'Будь лаÑка, введіть ім`Ñ Ñ‡Ð¸ електронну адреÑу';
-$messages['notuploadedwarning'] = 'ДеÑкі Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð½Ðµ було завантажено. Будь лаÑка, почекайте або відмініть завантаженнÑ.';
-$messages['searchsuccessful'] = 'Зайдено $nr лиÑтів';
-$messages['contactsearchsuccessful'] = '$nr контактів знайдено.';
+$messages['nosearchname'] = 'Будь лаÑка, введіть ім\'Ñ Ñ‡Ð¸ електронну адреÑу';
+$messages['notuploadedwarning'] = 'ДеÑкі додатки не було завантажено. Будь лаÑка, почекайте або відмініть завантаженнÑ.';
+$messages['searchsuccessful'] = 'Знайдено $nr лиÑтів';
+$messages['contactsearchsuccessful'] = '$nr контактів знайдено';
$messages['searchnomatch'] = 'ЛиÑтів не знайдено';
$messages['searching'] = 'Пошук...';
$messages['checking'] = 'Перевірка...';
@@ -94,38 +98,38 @@ $messages['folderpurged'] = 'Папка видалена';
$messages['folderexpunged'] = 'Папка очищена';
$messages['deletedsuccessfully'] = 'Видалено уÑпішно';
$messages['converting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ...';
-$messages['messageopenerror'] = 'Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· Ñервера';
+$messages['messageopenerror'] = 'Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ лиÑÑ‚ з Ñервера';
$messages['fileuploaderror'] = 'Ðе вдалоÑÑ Ð²ÐºÐ»Ð°Ñти файл';
-$messages['filesizeerror'] = 'Розмір вибраного файлу перевищує макÑимально дозволений ($size)';
-$messages['copyerror'] = 'Ðе вдалоÑÑ Ñкопіювати жодного контакту.';
+$messages['filesizeerror'] = 'Розмір обраного файлу перевищує макÑимально дозволений ($size)';
+$messages['copysuccess'] = 'Скопійовано $nr адреÑ';
+$messages['copyerror'] = 'Ðе вдалоÑÑ Ñкопіювати жодну адреÑу';
$messages['sourceisreadonly'] = 'Дане джерело Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ñтупне лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ';
$messages['errorsavingcontact'] = 'Ðеможливо зберегти адреÑу контакту';
$messages['movingmessage'] = 'ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð»Ð¸Ñта...';
$messages['copyingmessage'] = 'ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñта...';
$messages['copyingcontact'] = 'ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів)...';
-$messages['deletingmessage'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¸Ñта (ів)';
-$messages['markingmessage'] = 'ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¸Ñта (ів)';
+$messages['deletingmessage'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¸Ñта(ів)';
+$messages['markingmessage'] = 'ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¸Ñта(ів)';
$messages['addingmember'] = 'Ð”Ð¾Ð´Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів) до групи...';
$messages['removingmember'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів) з групи...';
$messages['receiptsent'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾';
$messages['errorsendingreceipt'] = 'Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ прочитаннÑ';
$messages['deleteidentityconfirm'] = 'Ви дійÑно бажаєте видалити цей профіль?';
-$messages['nodeletelastidentity'] = 'Ви не можете видалити цей профіль, він у Ð’Ð°Ñ Ð¾Ñтанній.';
-$messages['forbiddencharacter'] = 'Ім\'Ñ Ð¿Ð°Ð¿ÐºÐ¸ міÑтить заборонені Ñимволи';
+$messages['nodeletelastidentity'] = 'Ви не можете видалити оÑтанній профіль';
+$messages['forbiddencharacter'] = 'Ім\'Ñ Ð¿Ð°Ð¿ÐºÐ¸ міÑтить неприпуÑтимі Ñимволи';
$messages['selectimportfile'] = 'Виберіть файл Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ';
$messages['addresswriterror'] = 'Обрана адреÑна книга недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу';
$messages['contactaddedtogroup'] = 'Контакти уÑпішно додано до цієї групи';
-$messages['contactremovedfromgroup'] = 'УКонтакти уÑпішно видалено з цієї групи';
-$messages['nogroupassignmentschanged'] = 'Розподіл за групами не змінено.';
-$messages['importwait'] = 'ІмпортуваннÑ, будь лаÑка, зачекайте...';
+$messages['contactremovedfromgroup'] = 'Контакти уÑпішно видалено з цієї групи';
+$messages['nogroupassignmentschanged'] = 'Розподіл за групами не змінено';
+$messages['importwait'] = 'Зачекайте, будь лаÑка, відбуваєтьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ...';
$messages['importformaterror'] = 'Помилка імпорту! Завантажений файл має невідомий формат даних.';
$messages['importconfirm'] = '<b>УÑпішно імпортовано $inserted контактів, пропущено $skipped Ñ–Ñнуючих</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Пропущені $skipped наÑвні запиÑи</b>';
-$messages['importmessageerror'] = 'Імпорт не вдавÑÑ! Завантажений файл не Ñ” припуÑтимим Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ файлом поштової Ñкриньки';
$messages['opnotpermitted'] = 'Ð”Ñ–Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð°!';
-$messages['nofromaddress'] = 'Ð’ обраному профілі не виÑтачає адреÑи електронної пошти';
-$messages['editorwarning'] = 'ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð² режим звичайного текÑту Ñпричинить втрату вÑього форматуваннÑ. Продовжити?';
-$messages['httpreceivedencrypterror'] = 'Помилка конфігурації. Ðегайно звернітьÑÑ Ð´Ð¾ адмініÑтратора. <b>Ваше Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ буде відправлено.</b>';
+$messages['nofromaddress'] = 'У обраному профілі не виÑтачає адреÑи електронної пошти';
+$messages['editorwarning'] = 'ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñƒ режим звичайного текÑту Ñпричинить втрату вÑього форматуваннÑ. Продовжити?';
+$messages['httpreceivedencrypterror'] = 'Помилка конфігурації. Ðегайно звернітьÑÑ Ð´Ð¾ адмініÑтратора. <b>Ваш лиÑÑ‚ не буде відправлено.</b>';
$messages['smtpconnerror'] = 'Помилка SMTP-Ñервера ($code): Ðе вдалоÑÑ Ð·\'єднатиÑÑ Ð· Ñервером';
$messages['smtpautherror'] = 'Помилка SMTP-Ñервера ($code): Ðевдала Ñпроба автентифікації';
$messages['smtpfromerror'] = 'Помилка SMTP-Ñервера ($code): Ðе вдалоÑÑ Ð²ÐºÐ°Ð·Ð°Ñ‚Ð¸ відправника "$from" ($msg)';
@@ -133,33 +137,35 @@ $messages['smtptoerror'] = 'Помилка SMTP-Ñервера ($code): Ðе вÐ
$messages['smtprecipientserror'] = 'Помилка SMTP: Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ ÑпиÑок отримувачів';
$messages['smtperror'] = 'Помилка SMTP: $msg';
$messages['emailformaterror'] = 'Ðевірна електронна адреÑа: $email';
-$messages['toomanyrecipients'] = 'Занадто багато отримувачів. Зменшіть Ñ—Ñ… чиÑло до $max.';
-$messages['maxgroupmembersreached'] = 'ЧиÑло Ð°Ð´Ñ€ÐµÑ Ñƒ групі перевищило макÑимум у $max.';
+$messages['toomanyrecipients'] = 'Занадто багато отримувачів. Зменшіть Ñ—Ñ… чиÑло до $max';
+$messages['maxgroupmembersreached'] = 'ЧиÑло Ð°Ð´Ñ€ÐµÑ Ñƒ групі перевищило макÑимум у $max';
+$messages['internalerror'] = 'Виникла Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз.';
$messages['contactdelerror'] = 'Ðеможливо видалити контакт(и)';
$messages['contactdeleted'] = 'Контакт(и) видалено уÑпішно';
-$messages['contactrestoreerror'] = 'Ðеможливо відновити видалений(Ñ–) контакт(и).';
-$messages['contactrestored'] = 'Контакт(и) вдало відновлено.';
+$messages['contactrestoreerror'] = 'Ðеможливо відновити видалений(Ñ–) контакт(и)';
+$messages['contactrestored'] = 'Контакт(и) уÑпішно відновлено';
$messages['groupdeleted'] = 'Група видалена уÑпішно';
$messages['grouprenamed'] = 'Група перейменована уÑпішно';
$messages['groupcreated'] = 'Група Ñтворена уÑпішно';
-$messages['savedsearchdeleted'] = 'Збережений пошук вдало видалено.';
-$messages['savedsearchdeleteerror'] = 'Ðеможливо видалити збережений пошук.';
-$messages['savedsearchcreated'] = 'Збережений пошук вдало Ñтворено.';
-$messages['savedsearchcreateerror'] = 'Ðе вдалоÑÑŒ Ñтворити збережений пошук.';
+$messages['savedsearchdeleted'] = 'Збережений пошуковий запит уÑпішно видалено';
+$messages['savedsearchdeleteerror'] = 'Ðеможливо видалити збережений пошуковий запит';
+$messages['savedsearchcreated'] = 'Пошуковий запит уÑпішно збережено';
+$messages['savedsearchcreateerror'] = 'Ðе вдалоÑÑŒ зберегти пошуковий запит';
$messages['messagedeleted'] = 'ЛиÑÑ‚(и) видалено уÑпішно';
$messages['messagemoved'] = 'ЛиÑÑ‚(и) переміщено уÑпішно';
$messages['messagecopied'] = 'ЛиÑÑ‚(и) Ñкопійовано уÑпішно';
-$messages['messagemarked'] = 'ЛиÑÑ‚(и) помічено уÑпішно';
-$messages['autocompletechars'] = 'Введіть щонайменьше $min Ñимволів Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ';
+$messages['messagemarked'] = 'ЛиÑÑ‚(и) позначено уÑпішно';
+$messages['autocompletechars'] = 'Введіть щонайменше $min Ñимволів Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ';
$messages['autocompletemore'] = 'Знайдено багато відповідних запиÑів. Будь лаÑка введіть більше Ñимволів.';
-$messages['namecannotbeempty'] = 'Ð†Ð¼â€™Ñ Ð½Ðµ може бути пуÑтим';
-$messages['nametoolong'] = 'Занадто довге ім’Ñ';
+$messages['namecannotbeempty'] = 'Ім\'Ñ Ð½Ðµ може бути пуÑтим';
+$messages['nametoolong'] = 'Занадто довге ім\'Ñ';
$messages['folderupdated'] = 'Папка відновлена';
$messages['foldercreated'] = 'Папка Ñтворена';
$messages['invalidimageformat'] = 'Ðевірний формат зображеннÑ';
-$messages['mispellingsfound'] = 'Знайдено орфографічні помилки у повідомленні.';
-$messages['parentnotwritable'] = 'Ðеможливо Ñтворити/переміÑтити папку до обраної батьківÑької папки. Ðема прав доÑтупу.';
-$messages['messagetoobig'] = 'ЧаÑтина Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ велика Ð´Ð»Ñ Ð¾Ð¿Ñ€Ð°Ñ†ÑŽÐ²Ð°Ð½Ð½Ñ.';
-$messages['attachmentvalidationerror'] = 'УВÐГÐ! Це Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ñ” підозрілим, тому що його тип не збігаєтьÑÑ Ð· типом, оголошеним у повідомленні. Якщо ви не довірÑєте відправнику, ви не повинні відкривати його в браузері, оÑкільки його вміÑÑ‚ може бути шкідливим.<br/><br/><em>Очікуване: $expected; знайдене: $detected </em>';
-$messages['noscriptwarning'] = 'Увага: Даний клієнт електронної пошти потрібує Javascript! Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб викориÑтовувати його необхідно включити підтримку Javascript в налаштуваннÑÑ… вашого браузера.';
+$messages['mispellingsfound'] = 'У лиÑÑ‚Ñ– знайдено орфографічні помилки';
+$messages['parentnotwritable'] = 'Ðеможливо Ñтворити/переміÑтити папку до обраної батьківÑької папки - немає прав доÑтупу';
+$messages['messagetoobig'] = 'ЧаÑтина лиÑта занадто велика Ð´Ð»Ñ Ð¾Ð¿Ñ€Ð°Ñ†ÑŽÐ²Ð°Ð½Ð½Ñ';
+$messages['attachmentvalidationerror'] = 'УВÐГÐ! Цей додаток Ñ” підозрілим бо його тип (визначений Ñк <em>$detected</em>) не збігаєтьÑÑ Ð· оголошеним у лиÑÑ‚Ñ– типом (<em>$expected</em>). Ðе відкривайте цей додаток Ñкщо Ñ” Ñумніви - його вміÑÑ‚ може бути шкідливим!<br/><br/>';
+$messages['noscriptwarning'] = 'Увага: Цей клієнт електронної пошти потрібує JavaScript. Ð”Ð»Ñ Ð¹Ð¾Ð³Ð¾ викориÑÑ‚Ð°Ð½Ð½Ñ Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¾ включити підтримку JavaScript у налаштуваннÑÑ… переглÑдача.';
+
?>
diff --git a/program/localization/vi_VN/labels.inc b/program/localization/vi_VN/labels.inc
index 6bd6d4402..f1cf95149 100644
--- a/program/localization/vi_VN/labels.inc
+++ b/program/localization/vi_VN/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Chào bạn đã đến với $product';
$labels['username'] = 'Tên đăng nhập';
$labels['password'] = 'Mật khẩu';
$labels['server'] = 'Máy chủ';
$labels['login'] = 'Äăng nhập';
+
+// taskbar
$labels['logout'] = 'Thoát';
$labels['mail'] = 'ThÆ°';
$labels['settings'] = 'Tùy chá»n';
$labels['addressbook'] = 'Sổ địa chỉ';
+
+// mailbox names
$labels['inbox'] = 'Há»™p thÆ°';
$labels['drafts'] = 'Thư nháp';
$labels['sent'] = 'Äã gá»­i';
$labels['trash'] = 'Sá»t rác';
$labels['junk'] = 'Thư rác';
+
+// message listing
$labels['subject'] = 'Tiêu Ä‘á»';
$labels['from'] = 'NgÆ°á»i gá»­i';
$labels['sender'] = 'NgÆ°á»i gá»­i';
@@ -43,20 +53,27 @@ $labels['priority'] = 'Äá»™ Æ°u tiên';
$labels['organization'] = 'Tổ chức';
$labels['readstatus'] = 'Trạng thái của thư';
$labels['listoptions'] = 'Danh sách lá»±a chá»n';
+
$labels['mailboxlist'] = 'Các thư mục';
$labels['messagesfromto'] = 'Thư từ $from đến $to trong tổng số $count';
$labels['threadsfromto'] = 'Dòng thư từ $from đến $to của tổng số $count';
$labels['messagenrof'] = 'Thư thứ $nr trong tổng số $count';
$labels['fromtoshort'] = '$from - $to của $count';
+
$labels['copy'] = 'Sao chép';
$labels['move'] = 'Di Chuyển';
$labels['moveto'] = 'Di chuyển tới...';
$labels['download'] = 'Tải vá»';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Hiển thị';
$labels['showanyway'] = 'Tiếp tục hiển thị';
+
$labels['filename'] = 'Tên tập tin';
$labels['filesize'] = 'Kích cỡ tập tin';
+
$labels['addtoaddressbook'] = 'Thêm vào danh bạ';
+
+// weekdays short
$labels['sun'] = 'Chủ Nhật';
$labels['mon'] = 'Thứ Hai';
$labels['tue'] = 'Thứ Ba';
@@ -64,6 +81,8 @@ $labels['wed'] = 'Thứ Tư';
$labels['thu'] = 'Thứ Năm';
$labels['fri'] = 'Thứ Sáu';
$labels['sat'] = 'Thứ Bảy';
+
+// weekdays long
$labels['sunday'] = 'Chủ Nhật';
$labels['monday'] = 'Thứ Hai';
$labels['tuesday'] = 'Thứ Ba';
@@ -71,6 +90,8 @@ $labels['wednesday'] = 'Thứ Tư';
$labels['thursday'] = 'Thứ Năm';
$labels['friday'] = 'Thứ Sáu';
$labels['saturday'] = 'Thứ Bảy';
+
+// months short
$labels['jan'] = 'Tháng Một';
$labels['feb'] = 'Tháng Hai';
$labels['mar'] = 'Tháng Ba';
@@ -83,6 +104,8 @@ $labels['sep'] = 'Tháng Chín';
$labels['oct'] = 'Tháng MÆ°á»i';
$labels['nov'] = 'Tháng MÆ°á»i Má»™t';
$labels['dec'] = 'Tháng MÆ°á»i Hai';
+
+// months long
$labels['longjan'] = 'Tháng Một';
$labels['longfeb'] = 'Tháng Hai';
$labels['longmar'] = 'Tháng Ba';
@@ -95,7 +118,10 @@ $labels['longsep'] = 'Tháng Chín';
$labels['longoct'] = 'Tháng MÆ°á»i';
$labels['longnov'] = 'Tháng MÆ°á»i Má»™t';
$labels['longdec'] = 'Tháng MÆ°á»i Hai';
+
$labels['today'] = 'Hôm nay';
+
+// toolbar buttons
$labels['refresh'] = 'Nạp lại';
$labels['checkmail'] = 'Kiểm tra thư mới';
$labels['compose'] = 'Soạn thư';
@@ -128,6 +154,7 @@ $labels['moreactions'] = 'Thêm hành động...';
$labels['more'] = 'Thêm';
$labels['back'] = 'Quay lại';
$labels['options'] = 'Tuỳ chá»n';
+
$labels['select'] = 'Lá»±a chá»n';
$labels['all'] = 'Tất cả';
$labels['none'] = 'Không có';
@@ -135,7 +162,7 @@ $labels['currpage'] = 'Trang hiện tại';
$labels['unread'] = 'ChÆ°a Ä‘á»c';
$labels['flagged'] = 'Äã đánh dấu';
$labels['unanswered'] = 'ChÆ°a trả lá»i';
-$labels['withattachment'] = 'Có tệp tin đính kèm';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Äã xóa';
$labels['undeleted'] = 'Chưa xóa được';
$labels['invert'] = 'Äảo ngược';
@@ -146,6 +173,7 @@ $labels['expand-all'] = 'Mở rộng tất cả';
$labels['expand-unread'] = 'Mở rá»™ng thÆ° chÆ°a Ä‘á»c';
$labels['collapse-all'] = 'Äóng hết';
$labels['threaded'] = 'Äã nhóm theo chủ Ä‘á» thÆ°';
+
$labels['autoexpand_threads'] = 'Mở rộng các chủ đỠthư';
$labels['do_expand'] = 'Tất cả các chủ đỠthư';
$labels['expand_only_unread'] = 'Chỉ vá»›i những thÆ° chÆ°a Ä‘á»c';
@@ -161,23 +189,27 @@ $labels['listcolumns'] = 'Các cột danh sách';
$labels['listsorting'] = 'Cột sắp xếp';
$labels['listorder'] = 'Thứ tự sắp xếp';
$labels['listmode'] = 'Xem dạng danh sách';
+
$labels['folderactions'] = 'Thao tác với thư mục';
$labels['compact'] = 'Nén';
$labels['empty'] = 'Trống';
+
$labels['quota'] = 'Lượng đĩa sử dụng';
$labels['unknown'] = 'Không rõ';
$labels['unlimited'] = 'không giới hạn';
+
$labels['quicksearch'] = 'Tìm nhanh';
$labels['resetsearch'] = 'Thiết lập lại tìm kiếm';
$labels['searchmod'] = 'Tìm kiếm với từ khóa và ký tự đặc biệt [() : " - ]';
$labels['msgtext'] = 'Toàn bộ thư';
$labels['body'] = 'Ná»™i dung thÆ°';
-$labels['type'] = 'Äịnh dạng';
-$labels['namex'] = 'HỠtên';
+
$labels['openinextwin'] = 'Mở trong khung cửa mới';
$labels['emlsave'] = 'Tải vỠtheo định dạng .eml';
-$labels['changeformattext'] = 'Hiển thị ở chế độ text';
-$labels['changeformathtml'] = 'Hiển thị ở chế độ HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Sá»­a nhÆ° má»™t email má»›i';
$labels['send'] = 'Gá»­i';
$labels['sendmessage'] = 'Gá»­i thÆ°';
@@ -189,22 +221,26 @@ $labels['returnreceipt'] = 'Báo nhận';
$labels['dsn'] = 'Thông báo trạng thái gửi thư';
$labels['mailreplyintro'] = 'Vào ngày $date, $sender viết:';
$labels['originalmessage'] = 'Thư gốc';
+
$labels['editidents'] = 'Chỉnh sửa nhận diện';
$labels['spellcheck'] = 'Äánh vần';
$labels['checkspelling'] = 'Kiểm tra chính tả';
$labels['resumeediting'] = 'Tiếp tục soạn thảo';
$labels['revertto'] = 'Trở lại với';
+
$labels['attach'] = 'Äính kèm';
$labels['attachments'] = 'Các đính kèm';
$labels['upload'] = 'Tải lên';
$labels['uploadprogress'] = '$percent ($current từ $total)';
$labels['close'] = 'Äóng';
$labels['messageoptions'] = 'Tùy chá»n cho thÆ°...';
+
$labels['low'] = 'Thấp';
$labels['lowest'] = 'Thấp nhất';
$labels['normal'] = 'Bình thÆ°á»ng';
$labels['high'] = 'Cao';
$labels['highest'] = 'Cao nhất';
+
$labels['nosubject'] = '(Không có chủ Ä‘á»)';
$labels['showimages'] = 'Hiển thị ảnh';
$labels['alwaysshow'] = 'Luôn luôn hiển thị ảnh từ $sender';
@@ -212,19 +248,25 @@ $labels['isdraft'] = 'Äây là thÆ° nháp';
$labels['andnmore'] = 'Thêm $nr';
$labels['togglemoreheaders'] = 'Hiển thị chi tiết thông tin thư';
$labels['togglefullheaders'] = 'Mở/đóng chi tiết thông tin thư';
+
$labels['htmltoggle'] = 'Mã HTML';
$labels['plaintoggle'] = 'Văn bản thô';
$labels['savesentmessagein'] = 'Lưu thư đã gửi trong';
$labels['dontsave'] = 'Không lưu';
$labels['maxuploadsize'] = 'Dung lượng tập tin tối đa cho phép là $size';
+
$labels['addcc'] = 'Thêm Cc';
$labels['addbcc'] = 'Thêm Bcc';
$labels['addreplyto'] = 'Thêm trả lá»i tá»›i';
$labels['addfollowupto'] = 'Thêm sự theo dõi tới';
+
+// mdn
$labels['mdnrequest'] = 'NgÆ°á»i gá»­i thÆ° này muốn nhận được thông báo khi bạn Ä‘á»c thÆ°. Bạn có muốn cho ngÆ°á»i gá»­i biết thông báo này không?';
$labels['receiptread'] = 'Biên nhận (đã Ä‘á»c)';
$labels['yourmessage'] = 'Äây là sá»± trả lại xác nhận cho thÆ° của bạn';
$labels['receiptnote'] = 'LÆ°u ý: Biên nhận này chỉ báo rằng thÆ° đã được hiển thị trên máy tính của ngÆ°á»i nhận. Không bảo đảm rằng ngÆ°á»i nhận đó đã có Ä‘á»c hoặc hiểu ná»™i dung thÆ°.';
+
+// address boook
$labels['name'] = 'Tên hiển thị';
$labels['firstname'] = 'Tên Gá»i';
$labels['surname'] = 'Tên Há»';
@@ -259,6 +301,7 @@ $labels['search'] = 'Tìm kiếm';
$labels['advsearch'] = 'Tìm kiếm chi tiết';
$labels['advanced'] = 'Nâng cao';
$labels['other'] = 'Loại khác';
+
$labels['typehome'] = 'Thư mục chính';
$labels['typework'] = 'CÆ¡ quan';
$labels['typeother'] = 'Loại khác';
@@ -273,12 +316,14 @@ $labels['typeassistant'] = 'Trợ lý';
$labels['typehomepage'] = 'Trang nhà';
$labels['typeblog'] = 'Trang nhật ký';
$labels['typeprofile'] = 'Lý lịch';
+
$labels['addfield'] = 'Thêm lĩnh vực...';
$labels['addcontact'] = 'Thêm một liên hệ mới';
$labels['editcontact'] = 'Sửa liên lạc';
$labels['contacts'] = 'Danh bạ';
$labels['contactproperties'] = 'Tính chất của liên hệ';
$labels['personalinfo'] = 'Thông tin cá nhân';
+
$labels['edit'] = 'Chỉnh sửa';
$labels['cancel'] = 'Huá»·';
$labels['save'] = 'LÆ°u';
@@ -287,6 +332,7 @@ $labels['rename'] = 'Äổi tên';
$labels['addphoto'] = 'Thêm';
$labels['replacephoto'] = 'Thay thế';
$labels['uploadphoto'] = 'Tải ảnh lên';
+
$labels['newcontact'] = 'Tạo danh bạ mới';
$labels['deletecontact'] = 'Xoá các liên lạc đã chá»n';
$labels['composeto'] = 'Soạn thư cho';
@@ -300,32 +346,41 @@ $labels['newcontactgroup'] = 'Tạo nhóm liên lạc mới';
$labels['grouprename'] = 'Äổi tên nhóm';
$labels['groupdelete'] = 'Xóa nhóm';
$labels['groupremoveselected'] = 'Xóa bá» các liên lạc được chá»n từ nhóm';
+
$labels['previouspage'] = 'Hiển thị trang trước';
$labels['firstpage'] = 'Hiển thị trang đầu tiên';
$labels['nextpage'] = 'Hiển thị trang kế tiếp';
$labels['lastpage'] = 'Hiển thị trang cuối';
+
$labels['group'] = 'Nhóm';
$labels['groups'] = 'Các nhóm';
-$labels['listgroup'] = 'Danh sách các thành viên nhóm';
$labels['personaladrbook'] = 'Các địa chỉ cá nhân';
+
$labels['searchsave'] = 'Lưu tìm kiếm';
$labels['searchdelete'] = 'Xóa tìm kiếm';
+
$labels['import'] = 'Nhập';
$labels['importcontacts'] = 'Nhập liên lạc';
$labels['importfromfile'] = 'Nhập từ tập tin:';
+$labels['importtarget'] = 'Thêm liên lạc mới vào sổ địa chỉ';
$labels['importreplace'] = 'Thay thế toàn bộ sổ địa chỉ';
$labels['importdesc'] = 'Bạn có thể cập nhật các liên hệ từ một sổ địa chỉ có sẵn.<br />Hiện tại, chúng tôi hỗ trợ nhập địa chỉ từ dạng dữ liệu <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> hoặc CSV (dạng thức dữ liệu ngăn cách bằng dấu phẩy)';
$labels['done'] = 'Hoàn tất';
+
+// settings
$labels['settingsfor'] = 'Thiết lập cho';
$labels['about'] = 'Lá»i ngõ';
$labels['preferences'] = 'Sở thích';
$labels['userpreferences'] = 'Sở thích ngÆ°á»i dùng';
$labels['editpreferences'] = 'Chỉnh sửa sở thích';
+
$labels['identities'] = 'Các nhận diện';
$labels['manageidentities'] = 'Quản lý nhận diện cho trương mục này';
$labels['newidentity'] = 'Nhận diện mới';
+
$labels['newitem'] = 'Mục mới';
$labels['edititem'] = 'Sửa đổi mục';
+
$labels['preferhtml'] = 'Hiển thị HTML';
$labels['defaultcharset'] = 'Bộ ký tự mặc định';
$labels['htmlmessage'] = 'Thư theo định dạng HTML';
@@ -347,6 +402,7 @@ $labels['htmleditor'] = 'Soạn thư dạng HTML';
$labels['htmlonreply'] = 'Chỉ trả lá»i lại bằng thÆ° HTML';
$labels['htmlonreplyandforward'] = 'Khi chuyển tiếp hoặc trả lá»i thÆ° theo định dạng HTML';
$labels['htmlsignature'] = 'Chữ ký HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Hiển thị ô Xem thử';
$labels['skin'] = 'BỠmặt giao diện';
$labels['logoutclear'] = 'Xóa sạch rác khi thoát';
@@ -419,6 +475,7 @@ $labels['mailtoprotohandler'] = 'Xác định cách xử lý giao thức mailto:
$labels['forwardmode'] = 'Chuyển tiếp thư';
$labels['inline'] = 'nội tuyến';
$labels['asattachment'] = 'dạng gửi kèm';
+
$labels['folder'] = 'Thư mục';
$labels['folders'] = 'Các thư mục';
$labels['foldername'] = 'Tên thư mục';
@@ -439,20 +496,26 @@ $labels['foldertype'] = 'Kiểu thư mục';
$labels['personalfolder'] = 'Thư mục cá nhân';
$labels['otherfolder'] = 'ThÆ° mục khác của NgÆ°á»i dùng';
$labels['sharedfolder'] = 'Thư mục công khai';
+
$labels['sortby'] = 'Soạn theo';
$labels['sortasc'] = 'Soạn tăng dần';
$labels['sortdesc'] = 'Soạn giảm dần';
$labels['undo'] = 'Hoàn lại';
+
$labels['installedplugins'] = 'Các chương trình phụ trợ đã được cài đặt';
$labels['plugin'] = 'Phần bổ sung';
$labels['version'] = 'Phiên bản';
$labels['source'] = 'Nguồn';
$labels['license'] = 'Bản quyá»n';
$labels['support'] = 'Yêu cầu hỗ trợ';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Tiếng Anh';
$labels['westerneuropean'] = 'Tiếng Tây Âu';
@@ -471,4 +534,5 @@ $labels['vietnamese'] = 'Tiếng Việt';
$labels['japanese'] = 'Tiếng Nhật';
$labels['korean'] = 'Tiếng Hàn';
$labels['chinese'] = 'Tiếng Hoa';
+
?>
diff --git a/program/localization/vi_VN/messages.inc b/program/localization/vi_VN/messages.inc
index b2d7c71ff..50bf71846 100644
--- a/program/localization/vi_VN/messages.inc
+++ b/program/localization/vi_VN/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Xuất hiện 1 lỗi';
$messages['loginfailed'] = 'Không đăng nhập được';
$messages['cookiesdisabled'] = 'Trình duyệt không hỗ trợ cookies';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Lỗi cơ sở dữ liệu';
$messages['requesttimedout'] = 'Yêu cầu hết hạn';
$messages['errorreadonly'] = 'Không thể thá»±c hiện thao tác. ThÆ° mục chỉ cho phép Ä‘á»c.';
$messages['errornoperm'] = 'Bạn không đủ quyá»n hạn để thá»±c hiện thao tác này.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$messages['invalidrequest'] = 'Yêu cầu không hợp lệ! Không có dữ liệu nào được lưu.';
$messages['invalidhost'] = 'Sai thông tin máy chủ';
$messages['nomessagesfound'] = 'Không thấy có thư nào trong hộp thư này.';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'Không tìm thấy liên lạc được yêu cáº
$messages['contactsearchonly'] = 'Gõ một vài từ tìm kiếm để tìm liên hệ';
$messages['sendingfailed'] = 'Không gửi được thư';
$messages['senttooquickly'] = 'Xin đợi vài giây trước khi gửi thư này';
+$messages['errorsavingsent'] = 'Xuất hiện một lỗi trong khi lưu thư đã gửi';
+$messages['errorsaving'] = 'Lỗi trong quá trình lưu.';
$messages['errormoving'] = 'Không thể chuyển được thư';
$messages['errorcopying'] = 'Không thể sao chép thư';
$messages['errordeleting'] = 'Không thể xóa được thư';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Loại bỠđịnh dạng...';
$messages['messageopenerror'] = 'Không thể tải thư từ máy chủ';
$messages['fileuploaderror'] = 'Tải tập tin lên thất bại';
$messages['filesizeerror'] = 'Tập tin được tải lên vượt quá dung lượng tối đa....';
+$messages['copysuccess'] = 'Sao chép thành công $nr địa chỉ.';
+$messages['copyerror'] = 'Không thể sao chép đỉa chỉ nào.';
$messages['sourceisreadonly'] = 'Nguồn địa chỉ này chỉ cho Ä‘á»c';
$messages['errorsavingcontact'] = 'Không thể lưu địa chỉ liên lạc';
$messages['movingmessage'] = 'Äang chuyển thÆ°...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'Lá»—i SMTP: $msg';
$messages['emailformaterror'] = 'Äịa chỉ email không hợp lệ';
$messages['toomanyrecipients'] = 'Quá nhiá»u ngÆ°á»i nhận. Hãy giảm số lượng ngÆ°á»i nhận xuống tối Ä‘a là $max.';
$messages['maxgroupmembersreached'] = 'Số lượng thành viên trong nhóm vượt quá mức tối đa là $max.';
+$messages['internalerror'] = 'Xuất hiện một lỗi nội bộ. Xin hãy thử lại';
$messages['contactdelerror'] = 'Không thể xóa liên lạc';
$messages['contactdeleted'] = 'Liên lạc được xóa thành công';
$messages['contactrestoreerror'] = 'Không thể khôi phục liên lạc đã xóa';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'Không thể tạo/chuyển folder vào folder
$messages['messagetoobig'] = 'Một phần thư quá lớn để xử lý nó.';
$messages['attachmentvalidationerror'] = 'Cảnh báo: Tệp tin đính kèm có dấu hiệu nguy hiểm, vì kiểu tệp tin không trùng vá»›i kiểu được khai báo sá»­ dụng trong thÆ°. Nếu bạn không biết ngÆ°á»i gá»­i, bạn không nên mở thÆ° vì nó có thể có các dữ liệu gây hại. <br/><br/><em>Dá»± kiến: $expected; được tìm thấy: $detected</em>';
$messages['noscriptwarning'] = 'Cảnh báo: Dịch vụ webmail này yêu cầu sá»­ dụng Javascript. Äể sá»­ dụng, bạn cần kích hoạt há»— trợ Javascript trong cấu hình trình duyệt Internet Ä‘ang sá»­ dụng.';
+
?>
diff --git a/program/localization/zh_CN/labels.inc b/program/localization/zh_CN/labels.inc
index 1d9c04733..23a42b96d 100644
--- a/program/localization/zh_CN/labels.inc
+++ b/program/localization/zh_CN/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '欢迎使用 $product';
$labels['username'] = '用户å';
$labels['password'] = '密ç ';
$labels['server'] = 'æœåŠ¡å™¨';
$labels['login'] = '登录';
+
+// taskbar
$labels['logout'] = '注销';
$labels['mail'] = '邮件';
$labels['settings'] = '设置';
$labels['addressbook'] = '通讯录';
+
+// mailbox names
$labels['inbox'] = '收件箱';
$labels['drafts'] = 'è‰ç¨¿ç®±';
$labels['sent'] = 'å·²å‘é€é‚®ä»¶';
$labels['trash'] = '已删除邮件';
$labels['junk'] = '垃圾邮件';
+
+// message listing
$labels['subject'] = '主题';
$labels['from'] = 'å‘件人';
$labels['sender'] = 'å‘件人';
@@ -43,11 +53,13 @@ $labels['priority'] = '优先级';
$labels['organization'] = '组织';
$labels['readstatus'] = '阅读状æ€';
$labels['listoptions'] = '列表选项';
+
$labels['mailboxlist'] = '邮件夹';
-$labels['messagesfromto'] = '从 $from 到 $to,共计 $count å°é‚®ä»¶';
-$labels['threadsfromto'] = '从 $from 到 $to,共计 $count 个主题';
+$labels['messagesfromto'] = '第 $from 到 $to,共计 $count å°é‚®ä»¶';
+$labels['threadsfromto'] = '第 $from 到 $to,共计 $count 个主题';
$labels['messagenrof'] = '第 $nr å°é‚®ä»¶ï¼Œå…±è®¡ $count å°';
-$labels['fromtoshort'] = '$from – $to 共计 $count 个';
+$labels['fromtoshort'] = '自 $from – $to 统计 $count';
+
$labels['copy'] = 'å¤åˆ¶';
$labels['move'] = '移动';
$labels['moveto'] = '移至...';
@@ -55,9 +67,13 @@ $labels['download'] = '下载';
$labels['open'] = '打开';
$labels['showattachment'] = '显示';
$labels['showanyway'] = '总是显示';
+
$labels['filename'] = '文件å';
$labels['filesize'] = '文件大å°';
+
$labels['addtoaddressbook'] = '添加至通讯录';
+
+// weekdays short
$labels['sun'] = '星期日';
$labels['mon'] = '星期一';
$labels['tue'] = '星期二';
@@ -65,6 +81,8 @@ $labels['wed'] = '星期三';
$labels['thu'] = '星期四';
$labels['fri'] = '星期五';
$labels['sat'] = '星期六';
+
+// weekdays long
$labels['sunday'] = '星期日';
$labels['monday'] = '星期一';
$labels['tuesday'] = '星期二';
@@ -72,6 +90,8 @@ $labels['wednesday'] = '星期三';
$labels['thursday'] = '星期四';
$labels['friday'] = '星期五';
$labels['saturday'] = '星期六';
+
+// months short
$labels['jan'] = '一月';
$labels['feb'] = '二月';
$labels['mar'] = '三月';
@@ -84,6 +104,8 @@ $labels['sep'] = 'ä¹æœˆ';
$labels['oct'] = 'å月';
$labels['nov'] = 'å一月';
$labels['dec'] = 'å二月';
+
+// months long
$labels['longjan'] = '一月';
$labels['longfeb'] = '二月';
$labels['longmar'] = '三月';
@@ -96,7 +118,10 @@ $labels['longsep'] = 'ä¹æœˆ';
$labels['longoct'] = 'å月';
$labels['longnov'] = 'å一月';
$labels['longdec'] = 'å二月';
+
$labels['today'] = '今天';
+
+// toolbar buttons
$labels['refresh'] = '刷新';
$labels['checkmail'] = '检查新邮件';
$labels['compose'] = '撰写新邮件';
@@ -118,17 +143,18 @@ $labels['firstmessage'] = '显示第一å°é‚®ä»¶';
$labels['nextmessage'] = '下一å°';
$labels['lastmessage'] = '最åŽä¸€å°';
$labels['backtolist'] = '返回邮件列表';
-$labels['viewsource'] = '显示æ¥æº';
-$labels['mark'] = '标记为';
+$labels['viewsource'] = '显示原始邮件文件';
+$labels['mark'] = '标记';
$labels['markmessages'] = '标记选中的邮件为';
$labels['markread'] = '已读';
$labels['markunread'] = '未读';
-$labels['markflagged'] = 'é‡è¦';
-$labels['markunflagged'] = ' ä¸é‡è¦';
+$labels['markflagged'] = '已标记';
+$labels['markunflagged'] = '未标记';
$labels['moreactions'] = '更多æ“作...';
$labels['more'] = '更多';
$labels['back'] = '返回';
-$labels['options'] = '个人选项';
+$labels['options'] = '选项';
+
$labels['select'] = '选择';
$labels['all'] = '全部';
$labels['none'] = 'æ— ';
@@ -136,7 +162,7 @@ $labels['currpage'] = '当å‰é¡µ';
$labels['unread'] = '未读邮件';
$labels['flagged'] = '已标记邮件';
$labels['unanswered'] = '未回å¤é‚®ä»¶';
-$labels['withattachment'] = '包å«é™„件';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = '已删除邮件';
$labels['undeleted'] = '未删除邮件';
$labels['invert'] = 'å选';
@@ -147,6 +173,7 @@ $labels['expand-all'] = '展开全部';
$labels['expand-unread'] = '展开未读';
$labels['collapse-all'] = '收起全部';
$labels['threaded'] = '所有邮件';
+
$labels['autoexpand_threads'] = '展开消æ¯ä¸»é¢˜';
$labels['do_expand'] = '所有主题';
$labels['expand_only_unread'] = '仅未读消æ¯';
@@ -162,21 +189,27 @@ $labels['listcolumns'] = '列表列';
$labels['listsorting'] = '排åºåˆ—';
$labels['listorder'] = '排åº';
$labels['listmode'] = '列表视图样å¼';
+
$labels['folderactions'] = '文件夹æ“作...';
$labels['compact'] = '压缩';
$labels['empty'] = '清空';
+
$labels['quota'] = '邮箱容é‡';
$labels['unknown'] = '未知';
$labels['unlimited'] = 'æ— é™åˆ¶';
+
$labels['quicksearch'] = '快速查找';
$labels['resetsearch'] = '清空';
$labels['searchmod'] = '修改æœç´¢';
$labels['msgtext'] = 'æ•´å°é‚®ä»¶';
$labels['body'] = '正文';
+
$labels['openinextwin'] = '在新窗å£ä¸­æ‰“å¼€';
$labels['emlsave'] = '下载(.eml)';
-$labels['changeformattext'] = '以文本格å¼æ˜¾ç¤º';
-$labels['changeformathtml'] = '以 HTML æ ¼å¼æ˜¾ç¤º';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = '以新邮件编辑';
$labels['send'] = 'å‘é€';
$labels['sendmessage'] = 'ç«‹å³å‘é€';
@@ -188,42 +221,52 @@ $labels['returnreceipt'] = '需è¦å·²è¯»å›žæ‰§';
$labels['dsn'] = '投递状æ€é€šçŸ¥';
$labels['mailreplyintro'] = '在 $date,$sender 写é“:';
$labels['originalmessage'] = '原始邮件';
+
$labels['editidents'] = '编辑身份';
$labels['spellcheck'] = '拼写';
$labels['checkspelling'] = '拼写检查';
$labels['resumeediting'] = '继续编辑';
$labels['revertto'] = 'æ¢å¤è‡³';
+
$labels['attach'] = '附加';
$labels['attachments'] = '附件';
$labels['upload'] = '上传';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = '关闭';
$labels['messageoptions'] = '邮件选项...';
+
$labels['low'] = '低';
$labels['lowest'] = '最低';
$labels['normal'] = '普通';
$labels['high'] = '高';
$labels['highest'] = '最高';
+
$labels['nosubject'] = '(无主题)';
$labels['showimages'] = '显示图片';
-$labels['alwaysshow'] = '总是显示æ¥è‡ª $sender 的图片';
+$labels['alwaysshow'] = '总是在æ¥è‡ª $sender 的邮件中显示图片';
$labels['isdraft'] = '这是一å°è‰ç¨¿';
-$labels['andnmore'] = '第 $nr å°æˆ–更多...';
+$labels['andnmore'] = '第$nrå°æˆ–更多...';
$labels['togglemoreheaders'] = '显示更多消æ¯å¤´';
$labels['togglefullheaders'] = '切æ¢è‡³åŽŸå§‹æ¶ˆæ¯å¤´';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = '纯文本';
$labels['savesentmessagein'] = 'ä¿å­˜å·²å‘é€é‚®ä»¶è‡³';
$labels['dontsave'] = 'ä¸ä¿å­˜';
$labels['maxuploadsize'] = '上传附件最大ä¸è¶…过 $size';
+
$labels['addcc'] = '添加抄é€';
$labels['addbcc'] = '添加密é€';
$labels['addreplyto'] = '添加回å¤';
$labels['addfollowupto'] = '添加投递组';
+
+// mdn
$labels['mdnrequest'] = 'å‘件人è¦æ±‚在您阅读这å°é‚®ä»¶æ—¶å‘é€å·²è¯»é€šçŸ¥ã€‚您是å¦å¸Œæœ›é€šçŸ¥å‘件人?';
$labels['receiptread'] = 'å‘é€å›žæ‰§(已读)';
$labels['yourmessage'] = '这是您的邮件回执';
$labels['receiptnote'] = '注æ„:回执åªè¡¨ç¤ºé‚®ä»¶åœ¨æ”¶ä»¶äººçš„电脑上被打开过,ä¸è¡¨ç¤ºæ”¶ä»¶äººå·²ç»é˜…读或了解邮件内容。';
+
+// address boook
$labels['name'] = '显示å称';
$labels['firstname'] = 'åå­—';
$labels['surname'] = '姓æ°';
@@ -258,6 +301,7 @@ $labels['search'] = '查询';
$labels['advsearch'] = '高级查询';
$labels['advanced'] = '高级选项';
$labels['other'] = '其他';
+
$labels['typehome'] = '家庭';
$labels['typework'] = '工作';
$labels['typeother'] = '其他';
@@ -272,12 +316,14 @@ $labels['typeassistant'] = '助ç†';
$labels['typehomepage'] = '主页';
$labels['typeblog'] = 'åšå®¢';
$labels['typeprofile'] = '资料';
+
$labels['addfield'] = '新增æ¡ç›®...';
$labels['addcontact'] = '新建è”系人';
$labels['editcontact'] = '编辑è”系人';
$labels['contacts'] = 'è”系人';
$labels['contactproperties'] = 'è”系人信æ¯';
$labels['personalinfo'] = '个人信æ¯';
+
$labels['edit'] = '编辑';
$labels['cancel'] = 'å–消';
$labels['save'] = 'ä¿å­˜';
@@ -286,6 +332,7 @@ $labels['rename'] = 'é‡å‘½å';
$labels['addphoto'] = '上传';
$labels['replacephoto'] = '替æ¢ç…§ç‰‡';
$labels['uploadphoto'] = '上传照片';
+
$labels['newcontact'] = '新建è”系人';
$labels['deletecontact'] = '删除选中的è”系人';
$labels['composeto'] = '写信至选中的è”系人';
@@ -297,33 +344,43 @@ $labels['exportsel'] = '导出选中';
$labels['exportvcards'] = '导出è”系人为 vCard æ ¼å¼';
$labels['newcontactgroup'] = '创建新的è”系人群组';
$labels['grouprename'] = 'é‡å‘½å群组';
-$labels['groupdelete'] = '删除群组';
+$labels['groupdelete'] = '删除群组组';
$labels['groupremoveselected'] = '删除选中';
+
$labels['previouspage'] = '上一页';
-$labels['firstpage'] = '首页';
+$labels['firstpage'] = '第一页';
$labels['nextpage'] = '下一页';
-$labels['lastpage'] = '末页';
+$labels['lastpage'] = '最åŽä¸€é¡µ';
+
$labels['group'] = '分组';
$labels['groups'] = '分组';
$labels['personaladrbook'] = '个人通讯录';
+
$labels['searchsave'] = 'ä¿å­˜æœç´¢';
$labels['searchdelete'] = '删除æœç´¢';
+
$labels['import'] = '导入';
$labels['importcontacts'] = '导入通讯录';
$labels['importfromfile'] = '从文件导入';
+$labels['importtarget'] = '添加新è”系人至通讯录:';
$labels['importreplace'] = '替æ¢å…¨éƒ¨é€šè®¯å½•';
$labels['importdesc'] = '您å¯ä»¥ä»Žé€šè®¯å½•æ–‡ä»¶ä¸Šä¼ è”系人,目å‰å·²æ”¯æŒ <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> å’Œ CSV(逗å·åˆ†éš”)æ ¼å¼';
$labels['done'] = '完æˆ';
+
+// settings
$labels['settingsfor'] = '设置';
$labels['about'] = '关于';
$labels['preferences'] = '选项';
$labels['userpreferences'] = '个人选项';
$labels['editpreferences'] = '修改个人选项';
-$labels['identities'] = 'å‘件人身份';
+
+$labels['identities'] = 'å‘件身份';
$labels['manageidentities'] = '管ç†æ­¤è´¦å·çš„身份';
$labels['newidentity'] = '添加身份';
+
$labels['newitem'] = '添加æ¡ç›®';
$labels['edititem'] = '编辑æ¡ç›®';
+
$labels['preferhtml'] = '以 HTML æ ¼å¼æ˜¾ç¤º';
$labels['defaultcharset'] = '默认字符集';
$labels['htmlmessage'] = 'HTML 邮件';
@@ -342,16 +399,16 @@ $labels['dstactive'] = 'å¤ä»¤æ—¶';
$labels['showinextwin'] = '在新窗å£ä¸­æ‰“å¼€';
$labels['composeextwin'] = '在新窗å£ä¸­æ’°å†™';
$labels['htmleditor'] = '使用 HTML 编辑器';
-$labels['htmlonreply'] = 'ä»…å½“å›žå¤ HTML 邮件时';
-$labels['htmlonreplyandforward'] = '仅当回å¤æˆ–è½¬å‘ HTML 邮件时';
+$labels['htmlonreply'] = 'ä»…å½“å›žå¤ HTML 邮件';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = '使用 HTML ç­¾å';
-$labels['showemail'] = '显示邮件地å€æ—¶æ˜¾ç¤ºåå­—';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = '显示预览窗å£';
$labels['skin'] = 'ç•Œé¢çš®è‚¤';
$labels['logoutclear'] = '退出时清空回收站';
$labels['logoutcompact'] = '退出时压缩收件箱';
$labels['uisettings'] = '用户界é¢';
-$labels['serversettings'] = 'æœåŠ¡ç«¯è®¾ç½®';
+$labels['serversettings'] = 'æœåŠ¡å™¨è®¾ç½®';
$labels['mailboxview'] = '显示邮件';
$labels['mdnrequests'] = 'å‘件人请求回执';
$labels['askuser'] = '询问用户';
@@ -363,7 +420,7 @@ $labels['readwhendeleted'] = '删除åŽæ ‡è®°ä¸ºå·²è¯»';
$labels['flagfordeletion'] = '标记邮件为已删除而ä¸æ˜¯å®žé™…删除';
$labels['skipdeleted'] = 'ä¸æ˜¾ç¤ºæ ‡è®°ä¸ºå·²åˆ é™¤çš„邮件';
$labels['deletealways'] = '如果移动邮件到回收站失败,则删除';
-$labels['deletejunk'] = '直接删除垃圾邮箱中的邮件';
+$labels['deletejunk'] = '在ã€';
$labels['showremoteimages'] = '显示内嵌的图片';
$labels['fromknownsenders'] = 'æ¥è‡ªå·²çŸ¥å‘件人';
$labels['always'] = '总是';
@@ -379,7 +436,7 @@ $labels['mimeparamfolding'] = '附件å';
$labels['2231folding'] = '完整的 RFC 2231(Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2232(MS Outlook)';
$labels['2047folding'] = '完整的 RFC 2047(其它)';
-$labels['force7bit'] = '对 8 ä½å­—符使用 MIME ç¼–ç ';
+$labels['force7bit'] = '对8ä½å­—符使用 MIME ç¼–ç ';
$labels['advancedoptions'] = '高级选项';
$labels['focusonnewmessage'] = '新邮件到达时将窗å£æå‡ä¸ºç„¦ç‚¹çª—å£';
$labels['checkallfolders'] = '检查所有邮件夹里的新邮件';
@@ -404,7 +461,7 @@ $labels['previewpanemarkread'] = '标记预览邮件为已读';
$labels['afternseconds'] = '$n 秒之åŽ';
$labels['reqmdn'] = '总是è¦æ±‚回执';
$labels['reqdsn'] = '总是è¦æ±‚投递状æ€é€šçŸ¥';
-$labels['replysamefolder'] = 'ä¿å­˜å›žå¤é‚®ä»¶åˆ°é‚®ä»¶ç›¸åŒçš„文件夹';
+$labels['replysamefolder'] = 'ä¿å­˜å›žå¤é‚®ä»¶åˆ°é‚®ä»¶ç›¸åŒçš„目录';
$labels['defaultabook'] = '默认地å€è–„';
$labels['autocompletesingle'] = '跳过自动完æˆçš„电å­é‚®ä»¶åœ°å€';
$labels['listnamedisplay'] = '列出è”系人为';
@@ -414,19 +471,20 @@ $labels['spellcheckignoresyms'] = '忽略带符å·çš„å•è¯';
$labels['spellcheckignorenums'] = '忽略带数字的å•è¯';
$labels['spellcheckignorecaps'] = '忽略所有大写字æ¯çš„å•è¯';
$labels['addtodict'] = '添加到字典中';
-$labels['mailtoprotohandler'] = 'æ³¨å†Œä¸ºå¤„ç† mailto 链接的程åº';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
$labels['forwardmode'] = '邮件转å‘æ–¹å¼';
$labels['inline'] = '内嵌';
$labels['asattachment'] = '作为附件';
-$labels['folder'] = '文件夹管ç†';
-$labels['folders'] = '文件夹管ç†';
+
+$labels['folder'] = '目录管ç†';
+$labels['folders'] = '目录管ç†';
$labels['foldername'] = '邮件夹å称';
$labels['subscribed'] = '已订阅';
$labels['messagecount'] = '邮件数é‡';
$labels['create'] = '建立';
$labels['createfolder'] = '建立新邮件夹';
$labels['managefolders'] = '管ç†é‚®ä»¶å¤¹';
-$labels['specialfolders'] = '自定义邮件夹';
+$labels['specialfolders'] = '定义邮件夹';
$labels['properties'] = '属性';
$labels['folderproperties'] = '文件夹属性';
$labels['parentfolder'] = '父文件夹';
@@ -434,24 +492,30 @@ $labels['location'] = 'ä½ç½®';
$labels['info'] = 'ä¿¡æ¯';
$labels['getfoldersize'] = '获得文件夹容é‡';
$labels['changesubscription'] = '更改订阅';
-$labels['foldertype'] = '文件夹类型';
-$labels['personalfolder'] = 'ç§æœ‰æ–‡ä»¶å¤¹';
-$labels['otherfolder'] = '他人文件夹';
-$labels['sharedfolder'] = '共享文件夹';
+$labels['foldertype'] = '目录类型';
+$labels['personalfolder'] = 'ç§æœ‰ç›®å½•';
+$labels['otherfolder'] = '他人目录';
+$labels['sharedfolder'] = '共享目录';
+
$labels['sortby'] = '排åº';
$labels['sortasc'] = '递增排åº';
$labels['sortdesc'] = '递å‡æŽ’åº';
$labels['undo'] = '撤销';
+
$labels['installedplugins'] = '已安装æ’件';
$labels['plugin'] = 'æ’件';
$labels['version'] = '版本';
$labels['source'] = 'æºä»£ç ';
$labels['license'] = '许å¯åè®®';
$labels['support'] = '支æŒ';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = '英语';
$labels['westerneuropean'] = '西欧';
@@ -470,4 +534,5 @@ $labels['vietnamese'] = '越å—语';
$labels['japanese'] = '日文';
$labels['korean'] = '韩语';
$labels['chinese'] = '中文';
+
?>
diff --git a/program/localization/zh_CN/messages.inc b/program/localization/zh_CN/messages.inc
index bf6e8cf2f..43703e311 100644
--- a/program/localization/zh_CN/messages.inc
+++ b/program/localization/zh_CN/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'å‘生错误ï¼';
$messages['loginfailed'] = '登录失败。';
$messages['cookiesdisabled'] = '您的æµè§ˆå™¨ä¸æ”¯æŒ Cookies。';
@@ -34,7 +36,7 @@ $messages['nomessagesfound'] = '此邮件夹内无邮件。';
$messages['loggedout'] = '您已æˆåŠŸæ³¨é”€ï¼Œå†è§ï¼';
$messages['mailboxempty'] = '邮件夹为空。';
$messages['refreshing'] = '正在刷新...';
-$messages['loading'] = '正在载入...';
+$messages['loading'] = '正在登录...';
$messages['uploading'] = '正在上传文件...';
$messages['uploadingmany'] = '正在上传文件...';
$messages['loadingdata'] = '正在载入数æ®...';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = '未找到指定的è”系人。';
$messages['contactsearchonly'] = '请输入è”系人的æœç´¢æ¡ä»¶';
$messages['sendingfailed'] = 'å‘é€å¤±è´¥ã€‚';
$messages['senttooquickly'] = '您需è¦ç­‰å¾…$sec秒æ‰èƒ½å‘é€é‚®ä»¶ã€‚';
+$messages['errorsavingsent'] = 'ä¿å­˜å·²å‘é€é‚®ä»¶æ—¶å‘生错误。';
+$messages['errorsaving'] = 'ä¿å­˜æ—¶å‘生错误。';
$messages['errormoving'] = '无法移动邮件。';
$messages['errorcopying'] = '无法å¤åˆ¶é‚®ä»¶ã€‚';
$messages['errordeleting'] = '无法删除邮件。';
@@ -97,16 +101,13 @@ $messages['converting'] = 'æ ¼å¼è½¬æ¢ä¸­...';
$messages['messageopenerror'] = '无法从æœåŠ¡å™¨åŠ è½½é‚®ä»¶å†…容。';
$messages['fileuploaderror'] = '文件上传失败。';
$messages['filesizeerror'] = '上传的文件超过了 $size 的大å°é™åˆ¶ã€‚';
-$messages['copysuccess'] = 'æˆåŠŸå¤åˆ¶ $nr 个è”系人。';
-$messages['movesuccess'] = 'æˆåŠŸç§»åŠ¨ $nr 个è”系人。';
-$messages['copyerror'] = '无法å¤åˆ¶è”系人。';
-$messages['moveerror'] = '无法移动è”系人。';
+$messages['copysuccess'] = 'æˆåŠŸå¤åˆ¶ $nr 个地å€ã€‚';
+$messages['copyerror'] = '无法å¤åˆ¶åœ°å€ã€‚';
$messages['sourceisreadonly'] = 'æºåœ°å€ä¸ºåªè¯»ã€‚';
$messages['errorsavingcontact'] = '无法ä¿å­˜è”系人地å€ã€‚';
$messages['movingmessage'] = '正在移动邮件...';
$messages['copyingmessage'] = '正在å¤åˆ¶é‚®ä»¶...';
$messages['copyingcontact'] = '正在å¤åˆ¶è”系人...';
-$messages['movingcontact'] = '移动è”系人...';
$messages['deletingmessage'] = '正在删除邮件...';
$messages['markingmessage'] = '正在标记邮件...';
$messages['addingmember'] = '正在添加è”系人至群组...';
@@ -115,7 +116,7 @@ $messages['receiptsent'] = 'æˆåŠŸå‘é€ä¸€ä¸ªå·²è¯»å›žæ‰§ã€‚';
$messages['errorsendingreceipt'] = '无法å‘é€å·²è¯»å›žæ‰§ã€‚';
$messages['deleteidentityconfirm'] = '是å¦åˆ é™¤è¯¥èº«ä»½ï¼Ÿ';
$messages['nodeletelastidentity'] = '无法删除该身份,这是最åŽä¸€ä¸ªã€‚';
-$messages['forbiddencharacter'] = '文件夹å包å«ç¦æ­¢å­—符。';
+$messages['forbiddencharacter'] = '目录å包å«ç¦æ­¢å­—符。';
$messages['selectimportfile'] = '请选择è¦ä¸Šä¼ çš„文件。';
$messages['addresswriterror'] = '选中的通讯录ä¸å¯å†™ã€‚';
$messages['contactaddedtogroup'] = '添加è”系人至该群组æˆåŠŸã€‚';
@@ -125,8 +126,6 @@ $messages['importwait'] = '正在导入,请ç¨åŽ...';
$messages['importformaterror'] = '导入失败ï¼æ–‡ä»¶æ— æ•ˆã€‚';
$messages['importconfirm'] = '<b>æˆåŠŸå¯¼å…¥ $inserted è”系人</b>';
$messages['importconfirmskipped'] = '<b>跳过已存在的 $skipped 项目</b>';
-$messages['importmessagesuccess'] = 'æˆåŠŸå¯¼å…¥ $nr æ¡ä¿¡æ¯';
-$messages['importmessageerror'] = '导入失败ï¼æ–‡ä»¶æ— æ•ˆ';
$messages['opnotpermitted'] = 'ä¸å…许的æ“作!';
$messages['nofromaddress'] = '选中的身份没有邮件地å€ã€‚';
$messages['editorwarning'] = '切æ¢è‡³çº¯æ–‡æœ¬ç¼–辑器将导致邮件正文中的所有文本格å¼å¤±æ•ˆï¼Œæ‚¨ç¡®å®šè¦è¿™æ ·åšå—?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP 错误: $msg';
$messages['emailformaterror'] = '无效的邮件地å€ï¼š$email';
$messages['toomanyrecipients'] = '收件人太多,请å‡å°‘人数至 $max。';
$messages['maxgroupmembersreached'] = '组员数é‡è¶…过最大值 $max。';
+$messages['internalerror'] = 'å‘生一个内部错误,请é‡è¯•ã€‚';
$messages['contactdelerror'] = '无法删除è”系人。';
$messages['contactdeleted'] = '删除è”系人æˆåŠŸã€‚';
$messages['contactrestoreerror'] = '无法æ¢å¤å·²åˆ é™¤çš„è”系人。';
@@ -163,8 +163,9 @@ $messages['folderupdated'] = 'æˆåŠŸæ›´æ–°æ–‡ä»¶å¤¹';
$messages['foldercreated'] = 'æˆåŠŸåˆ›å»ºæ–‡ä»¶å¤¹';
$messages['invalidimageformat'] = 'éžæ³•çš„图åƒç±»åž‹ã€‚';
$messages['mispellingsfound'] = '检查到拼写错误。';
-$messages['parentnotwritable'] = '无法创建/转移文件夹至指定的上级文件夹,没有æƒé™ã€‚';
+$messages['parentnotwritable'] = '无法创建/转移文件夹至指定的上级目录,æƒé™ä¸è¶³ã€‚';
$messages['messagetoobig'] = '邮件过大无法处ç†ã€‚';
$messages['attachmentvalidationerror'] = '警告ï¼è¯¥é™„件很å¯ç–‘,因为其自身的格å¼ä¸Žé‚®ä»¶ä¸­å£°æ˜Žçš„æ ¼å¼ä¸ç¬¦ã€‚如果您ä¸ä¿¡ä»»å‘é€äººï¼Œåˆ™ä¸åº”该在æµè§ˆå™¨ä¸­æ‰“开该附件。<br/><br/><em>声明格å¼ï¼š$expected;实际格å¼ï¼š$detected</em>';
$messages['noscriptwarning'] = '警告:本程åºéœ€è¦ Javascript 支æŒï¼è¯·åœ¨æµè§ˆå™¨è®¾ç½®ä¸­å¯ç”¨ Javascript。';
+
?>
diff --git a/program/localization/zh_TW/csv2vcard.inc b/program/localization/zh_TW/csv2vcard.inc
index 36c5495e1..9fcacc818 100644
--- a/program/localization/zh_TW/csv2vcard.inc
+++ b/program/localization/zh_TW/csv2vcard.inc
@@ -15,7 +15,14 @@
| Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
*/
+
+// This is a list of CSV column names specified in CSV file header
+// These must be original texts used in Outlook/Thunderbird exported csv files
+// Encoding UTF-8
+
$map = array();
+
+// MS Outlook 2010
$map['anniversary'] = "紀念日";
$map['assistants_name'] = "助ç†";
$map['assistants_phone'] = "助ç†é›»è©±";
@@ -62,6 +69,8 @@ $map['spouse'] = "é…å¶";
$map['suffix'] = "稱謂";
$map['title'] = "頭銜";
$map['web_page'] = "網é ";
+
+// Thunderbird
$map['last'] = "姓";
$map['first'] = "å";
$map['birth_day'] = "生日 (日)";
diff --git a/program/localization/zh_TW/labels.inc b/program/localization/zh_TW/labels.inc
index 4250e5137..a545f2f81 100644
--- a/program/localization/zh_TW/labels.inc
+++ b/program/localization/zh_TW/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '歡迎使用 $product';
$labels['username'] = '使用者å稱';
$labels['password'] = '使用者密碼';
$labels['server'] = '伺æœå™¨';
$labels['login'] = '登入';
+
+// taskbar
$labels['logout'] = '登出';
$labels['mail'] = 'é›»å­éƒµä»¶';
$labels['settings'] = '設定';
$labels['addressbook'] = '通訊錄';
+
+// mailbox names
$labels['inbox'] = '收件匣';
$labels['drafts'] = 'è‰ç¨¿åŒ£';
$labels['sent'] = '寄件備份';
$labels['trash'] = '垃圾桶';
$labels['junk'] = '垃圾郵件';
-$labels['show_real_foldernames'] = '顯示特殊資料夾的實際å稱';
+
+// message listing
$labels['subject'] = '主旨';
$labels['from'] = '寄件者';
$labels['sender'] = '寄件者';
@@ -44,21 +53,27 @@ $labels['priority'] = '優先順åº';
$labels['organization'] = '組織';
$labels['readstatus'] = '讀信狀態';
$labels['listoptions'] = '列表é¸é …...';
+
$labels['mailboxlist'] = '資料夾';
$labels['messagesfromto'] = '郵件 $from 至 $to,共有 $count å°éƒµä»¶';
$labels['threadsfromto'] = '郵件串 $from 至 $to,共有 $count 個';
$labels['messagenrof'] = '第 $nr å°éƒµä»¶ï¼Œå…±æœ‰ $count å°';
$labels['fromtoshort'] = '自 $from – $to 統計 $count';
+
$labels['copy'] = '複製';
$labels['move'] = '移動';
$labels['moveto'] = '移至...';
$labels['download'] = '下載';
-$labels['open'] = 'é–‹å•Ÿ';
+$labels['open'] = 'Open';
$labels['showattachment'] = '顯示';
$labels['showanyway'] = '總是顯示';
+
$labels['filename'] = '檔案å稱';
$labels['filesize'] = '檔案大å°';
+
$labels['addtoaddressbook'] = '新增至通訊錄';
+
+// weekdays short
$labels['sun'] = '週日';
$labels['mon'] = '週一';
$labels['tue'] = '週二';
@@ -66,6 +81,8 @@ $labels['wed'] = '週三';
$labels['thu'] = '週四';
$labels['fri'] = '週五';
$labels['sat'] = '週六';
+
+// weekdays long
$labels['sunday'] = '星期日';
$labels['monday'] = '星期一';
$labels['tuesday'] = '星期二';
@@ -73,6 +90,8 @@ $labels['wednesday'] = '星期三';
$labels['thursday'] = '星期四';
$labels['friday'] = '星期五';
$labels['saturday'] = '星期六';
+
+// months short
$labels['jan'] = '一';
$labels['feb'] = '二';
$labels['mar'] = '三';
@@ -85,6 +104,8 @@ $labels['sep'] = 'ä¹';
$labels['oct'] = 'å';
$labels['nov'] = 'å一';
$labels['dec'] = 'å二';
+
+// months long
$labels['longjan'] = '一月';
$labels['longfeb'] = '二月';
$labels['longmar'] = '三月';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'ä¹æœˆ';
$labels['longoct'] = 'å月';
$labels['longnov'] = 'å一月';
$labels['longdec'] = 'å二月';
+
$labels['today'] = '今日';
+
+// toolbar buttons
$labels['refresh'] = 'é‡æ–°æ•´ç†';
$labels['checkmail'] = '檢查新郵件';
$labels['compose'] = '撰寫新郵件';
@@ -119,17 +143,18 @@ $labels['firstmessage'] = '顯示第一å°éƒµä»¶';
$labels['nextmessage'] = '顯示下一å°éƒµä»¶';
$labels['lastmessage'] = '顯示最後一å°éƒµä»¶';
$labels['backtolist'] = '回到郵件清單';
-$labels['viewsource'] = '顯示郵件原始內容';
+$labels['viewsource'] = '顯示原始郵件';
$labels['mark'] = '標記';
-$labels['markmessages'] = '標記é¸å–的郵件';
+$labels['markmessages'] = '標記é¸å–的郵件為';
$labels['markread'] = '標示為已讀å–';
$labels['markunread'] = '標示為未讀å–';
$labels['markflagged'] = '標上旗標';
$labels['markunflagged'] = '移除旗標';
-$labels['moreactions'] = '更多動作...';
+$labels['moreactions'] = '資料夾動作...';
$labels['more'] = '更多';
-$labels['back'] = '返回';
+$labels['back'] = '上一é ';
$labels['options'] = 'é¸é …';
+
$labels['select'] = 'é¸å–';
$labels['all'] = '全部郵件';
$labels['none'] = 'ç„¡';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'ç›®å‰é é¢';
$labels['unread'] = '未讀å–的郵件';
$labels['flagged'] = '已加標記的郵件';
$labels['unanswered'] = '未回覆的郵件';
-$labels['withattachment'] = '包å«é™„件';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = '已刪除的郵件';
$labels['undeleted'] = '未刪除的郵件';
$labels['invert'] = 'åé¸';
@@ -148,6 +173,7 @@ $labels['expand-all'] = '全部展開';
$labels['expand-unread'] = '展開未讀å–';
$labels['collapse-all'] = '全部收起';
$labels['threaded'] = '郵件串';
+
$labels['autoexpand_threads'] = 'åªå±•é–‹éƒµä»¶ä¸²';
$labels['do_expand'] = '所有郵件串';
$labels['expand_only_unread'] = 'åªå±•é–‹æœªè®€è¨Šæ¯';
@@ -163,23 +189,27 @@ $labels['listcolumns'] = '列出欄ä½';
$labels['listsorting'] = '排åºæ¬„ä½';
$labels['listorder'] = '排åºé †åº';
$labels['listmode'] = '清單檢視模å¼';
+
$labels['folderactions'] = '資料夾動作...';
$labels['compact'] = '壓縮';
$labels['empty'] = '清空';
-$labels['importmessages'] = '匯入郵件';
+
$labels['quota'] = 'ç£ç¢Ÿä½¿ç”¨é‡';
$labels['unknown'] = '未知';
$labels['unlimited'] = 'ç„¡é™åˆ¶';
+
$labels['quicksearch'] = '快速æœå°‹';
$labels['resetsearch'] = 'é‡è¨­æœå°‹';
$labels['searchmod'] = '修改æœå°‹';
$labels['msgtext'] = 'æ•´å°éƒµä»¶';
$labels['body'] = '內文';
-$labels['namex'] = 'å稱';
+
$labels['openinextwin'] = '在新視窗開啟';
$labels['emlsave'] = '下載(.eml)';
-$labels['changeformattext'] = '以純文字格å¼é¡¯ç¤º';
-$labels['changeformathtml'] = '以 HTML æ ¼å¼é¡¯ç¤º';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = '以新郵件編輯';
$labels['send'] = '寄出';
$labels['sendmessage'] = 'ç«‹å³å¯„出';
@@ -190,23 +220,27 @@ $labels['editortype'] = '編輯器類型';
$labels['returnreceipt'] = 'è¦æ±‚讀å–回æ¢';
$labels['dsn'] = '傳é€ç‹€æ…‹é€šçŸ¥';
$labels['mailreplyintro'] = '$sender 於 $date 寫到:';
-$labels['originalmessage'] = '原始郵件';
+$labels['originalmessage'] = '郵件顯示設定';
+
$labels['editidents'] = '編輯身份資訊';
$labels['spellcheck'] = '拼字';
$labels['checkspelling'] = '拼字檢查';
$labels['resumeediting'] = '繼續編輯';
$labels['revertto'] = 'æ¢å¾©è‡³';
+
$labels['attach'] = '附件';
$labels['attachments'] = '附加檔案';
$labels['upload'] = '上傳';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = '關閉';
$labels['messageoptions'] = '郵件é¸é …...';
+
$labels['low'] = '低';
$labels['lowest'] = '最低';
$labels['normal'] = '普通';
$labels['high'] = '高';
$labels['highest'] = '最高';
+
$labels['nosubject'] = '(沒有主旨)';
$labels['showimages'] = '顯示圖片';
$labels['alwaysshow'] = 'æ°¸é é¡¯ç¤ºä¾†è‡ª $sender 的圖片';
@@ -214,19 +248,25 @@ $labels['isdraft'] = '這是一å°è‰ç¨¿';
$labels['andnmore'] = '第$nrå°æˆ–是更多...';
$labels['togglemoreheaders'] = '顯示更多的訊æ¯è¡¨é ­';
$labels['togglefullheaders'] = '切æ›åŽŸå§‹è¨Šæ¯è¡¨é ­';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = '純文字';
$labels['savesentmessagein'] = '儲存寄件備份至';
$labels['dontsave'] = 'ä¸è¦å„²å­˜';
$labels['maxuploadsize'] = '上傳檔案大å°é™åˆ¶ç‚º $size';
+
$labels['addcc'] = '新增副本';
$labels['addbcc'] = '新增密件副本';
$labels['addreplyto'] = '新增回覆地å€';
$labels['addfollowupto'] = '新增 信件跟隨至';
+
+// mdn
$labels['mdnrequest'] = '此郵件的寄件者希望在你閱讀此郵件時å—到通知。你想è¦é€šçŸ¥å¯„件者嗎?';
$labels['receiptread'] = '郵件回æ¢ï¼ˆå·²é–±è®€ï¼‰';
$labels['yourmessage'] = '這是你郵件的郵件回æ¢';
$labels['receiptnote'] = '注æ„:此回æ¢åªèƒ½ç¢ºèªæ”¶ä»¶è€…的電腦顯示了郵件,並ä¸èƒ½ä¿è­‰æ”¶ä»¶è€…已閱讀或了解郵件的內容。';
+
+// address boook
$labels['name'] = '顯示å稱';
$labels['firstname'] = 'å稱';
$labels['surname'] = '姓æ°';
@@ -261,6 +301,7 @@ $labels['search'] = 'æœå°‹';
$labels['advsearch'] = '進階æœå°‹';
$labels['advanced'] = '進階設定';
$labels['other'] = '其他';
+
$labels['typehome'] = 'ä½å®¶';
$labels['typework'] = '工作';
$labels['typeother'] = '其他';
@@ -275,12 +316,14 @@ $labels['typeassistant'] = '助ç†';
$labels['typehomepage'] = '首é ';
$labels['typeblog'] = '部è½æ ¼';
$labels['typeprofile'] = '設定檔';
+
$labels['addfield'] = '新增欄ä½...';
$labels['addcontact'] = '新增è¯çµ¡äºº';
$labels['editcontact'] = '編輯è¯çµ¡äºº';
$labels['contacts'] = 'è¯çµ¡äºº';
$labels['contactproperties'] = 'è¯çµ¡äººè³‡è¨Š';
$labels['personalinfo'] = '個人資訊';
+
$labels['edit'] = '編輯';
$labels['cancel'] = 'å–消';
$labels['save'] = '儲存';
@@ -289,6 +332,7 @@ $labels['rename'] = 'é‡æ–°å‘½å';
$labels['addphoto'] = '新增';
$labels['replacephoto'] = 'å–代';
$labels['uploadphoto'] = '上傳相片';
+
$labels['newcontact'] = '建立新è¯çµ¡äººè³‡æ–™';
$labels['deletecontact'] = '刪除所é¸æ“‡çš„è¯çµ¡äºº';
$labels['composeto'] = '寄信至所é¸æ“‡çš„è¯çµ¡äºº';
@@ -302,33 +346,41 @@ $labels['newcontactgroup'] = '新增è¯çµ¡äººç¾¤çµ„';
$labels['grouprename'] = 'é‡æ–°å‘½å群組';
$labels['groupdelete'] = '刪除群組';
$labels['groupremoveselected'] = '從群組中刪除é¸æ“‡çš„è¯çµ¡äºº';
+
$labels['previouspage'] = '顯示上一é ';
$labels['firstpage'] = '顯示第一é ';
$labels['nextpage'] = '顯示下一é ';
$labels['lastpage'] = '顯示最後一é ';
+
$labels['group'] = '群組';
$labels['groups'] = '群組';
$labels['personaladrbook'] = '個人通訊錄';
+
$labels['searchsave'] = '儲存æœå°‹çµæžœ';
$labels['searchdelete'] = '刪除æœå°‹çµæžœ';
+
$labels['import'] = '匯入通訊錄';
$labels['importcontacts'] = '由檔案匯入通訊錄';
$labels['importfromfile'] = 'é¸æ“‡ä½ è¦åŒ¯å…¥çš„檔案:';
+$labels['importtarget'] = '新增連絡人至通訊錄:';
$labels['importreplace'] = '以匯入的資料å–代已存在的é‡è¤‡è³‡æ–™';
-$labels['importgroupsall'] = '全部(如有必è¦,新增群組)';
-$labels['importgroupsexisting'] = '僅é™æ–¼æ—¢æœ‰ç¾¤çµ„';
$labels['importdesc'] = '您å¯ä»¥å°‡å·²å­˜åœ¨çš„資料匯入通訊錄,目å‰æ”¯æ´åŒ¯å…¥ <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> 與 CSV (逗點分隔)æ ¼å¼è³‡æ–™';
$labels['done'] = '完æˆ';
+
+// settings
$labels['settingsfor'] = '設定';
$labels['about'] = '關於';
$labels['preferences'] = '設定';
$labels['userpreferences'] = '個人設定';
$labels['editpreferences'] = '編輯個人設定';
+
$labels['identities'] = '身份資訊';
$labels['manageidentities'] = '管ç†æ­¤å¸³è™Ÿçš„身份資訊';
$labels['newidentity'] = '新增身份資訊';
+
$labels['newitem'] = '新增項目';
$labels['edititem'] = '編輯項目';
+
$labels['preferhtml'] = '使用 HTML 顯示';
$labels['defaultcharset'] = 'é è¨­ç·¨ç¢¼';
$labels['htmlmessage'] = 'HTML 郵件';
@@ -350,14 +402,14 @@ $labels['htmleditor'] = '使用 HTML 撰寫郵件';
$labels['htmlonreply'] = 'åªæœ‰åœ¨å›žè¦†HTML信件時';
$labels['htmlonreplyandforward'] = 'åªæœ‰åœ¨è½‰å¯„或回覆HTML信件時';
$labels['htmlsignature'] = 'HTML ç°½å檔';
-$labels['showemail'] = '一併顯示å稱和電郵地å€';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = '顯示é è¦½çª—æ ¼';
$labels['skin'] = '版é¢é¢¨æ ¼';
$labels['logoutclear'] = '登出時清空垃圾桶';
$labels['logoutcompact'] = '登出時壓縮收件匣';
-$labels['uisettings'] = '使用者介é¢';
+$labels['uisettings'] = '使用介é¢è¨­å®š';
$labels['serversettings'] = '伺æœå™¨è¨­å®š';
-$labels['mailboxview'] = '信箱顯示';
+$labels['mailboxview'] = '信箱顯示設定';
$labels['mdnrequests'] = '讀å–回æ¢å›žæ‡‰';
$labels['askuser'] = 'è©¢å•ä½¿ç”¨è€…';
$labels['autosend'] = '自動é€å‡º';
@@ -371,20 +423,20 @@ $labels['deletealways'] = '如果移到垃圾桶失敗,就直接刪除';
$labels['deletejunk'] = '直接從垃圾郵件刪除';
$labels['showremoteimages'] = '顯示é ç«¯éƒµä»¶å…§æ–‡ä¸­çš„圖片';
$labels['fromknownsenders'] = '從已知的寄件者';
-$labels['always'] = '是';
+$labels['always'] = '總是接å—';
$labels['showinlineimages'] = '將附加檔案的圖片顯示於郵件最後';
$labels['autosavedraft'] = '自動儲存è‰ç¨¿';
$labels['everynminutes'] = 'æ¯ $n 分é˜';
$labels['refreshinterval'] = 'é‡æ–°æ•´ç† (確èªæ˜¯å¦æ–°éƒµä»¶)';
-$labels['never'] = 'æ°¸ä¸';
+$labels['never'] = '絕å°ä¸è¦';
$labels['immediately'] = '馬上';
-$labels['messagesdisplaying'] = '郵件顯示';
-$labels['messagescomposition'] = '撰寫郵件';
+$labels['messagesdisplaying'] = '郵件顯示設定';
+$labels['messagescomposition'] = '撰寫郵件設定';
$labels['mimeparamfolding'] = '附加檔案å稱的編碼方å¼';
$labels['2231folding'] = '完全 RFC 2231 模å¼ï¼ˆThunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 æ··åˆæ¨¡å¼ï¼ˆMS Outlook)';
$labels['2047folding'] = '完全 RFC 2047 模å¼ï¼ˆå…¶ä»–)';
-$labels['force7bit'] = 'å° 8 ä½å…ƒå­—元使用 MIME 編碼';
+$labels['force7bit'] = '使用 MIME 編碼å°æ–¼ 8 ä½å…ƒå­—å…ƒ';
$labels['advancedoptions'] = '顯示進階設定é¸é …';
$labels['focusonnewmessage'] = '收到新郵件時使ç€è¦½å™¨ç²å¾—焦點';
$labels['checkallfolders'] = '檢查所有資料夾中的新郵件';
@@ -409,7 +461,7 @@ $labels['previewpanemarkread'] = '標示已é è¦½è¨Šæ¯ç‚ºå·²è®€å–';
$labels['afternseconds'] = '$n 秒之後';
$labels['reqmdn'] = 'æ°¸é ç´¢å–讀å–回æ¢';
$labels['reqdsn'] = '總是è¦æ±‚傳é€ç‹€æ…‹é€šçŸ¥';
-$labels['replysamefolder'] = '將回信放在與原信件相åŒçš„資料夾';
+$labels['replysamefolder'] = '將回覆與回覆信件放置於相åŒè³‡æ–™å¤¾';
$labels['defaultabook'] = 'é è¨­é€šè¨ŠéŒ„';
$labels['autocompletesingle'] = '在自動完æˆä¸­ç•¥éŽå¦ä¸€å€‹email';
$labels['listnamedisplay'] = '標記è¯çµ¡äººç‚º';
@@ -423,6 +475,7 @@ $labels['mailtoprotohandler'] = '註冊mailto:å”定處ç†ç¨‹å¼';
$labels['forwardmode'] = '郵件轉寄方å¼';
$labels['inline'] = '放入內文';
$labels['asattachment'] = '當æˆé™„件';
+
$labels['folder'] = '資料夾';
$labels['folders'] = '資料夾';
$labels['foldername'] = '資料夾å稱';
@@ -431,7 +484,7 @@ $labels['messagecount'] = '郵件數目';
$labels['create'] = '建立';
$labels['createfolder'] = '建立新資料夾';
$labels['managefolders'] = '管ç†è³‡æ–™å¤¾';
-$labels['specialfolders'] = '特殊資料夾';
+$labels['specialfolders'] = 'é è¨­è³‡æ–™å¤¾è¨­å®š';
$labels['properties'] = '屬性';
$labels['folderproperties'] = '資料夾屬性';
$labels['parentfolder'] = '上一層資料夾';
@@ -443,20 +496,26 @@ $labels['foldertype'] = '資料夾類型';
$labels['personalfolder'] = 'ç§äººè³‡æ–™å¤¾';
$labels['otherfolder'] = '其他使用者資料夾';
$labels['sharedfolder'] = '公用資料夾';
+
$labels['sortby'] = '排åº';
$labels['sortasc'] = 'éžå¢žæŽ’åº';
$labels['sortdesc'] = 'éžæ¸›æŽ’åº';
$labels['undo'] = '復原';
+
$labels['installedplugins'] = '已安è£çš„æ’件';
$labels['plugin'] = '擴充套件';
$labels['version'] = '版本';
$labels['source'] = '來æº';
$labels['license'] = '授權許å¯';
$labels['support'] = 'å–得支æ´';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'è¬åœ‹ç¢¼';
$labels['english'] = '英語';
$labels['westerneuropean'] = '西æ­èªžç³»';
@@ -475,4 +534,5 @@ $labels['vietnamese'] = '越å—';
$labels['japanese'] = '日本';
$labels['korean'] = '韓國';
$labels['chinese'] = '國語';
+
?>
diff --git a/program/localization/zh_TW/messages.inc b/program/localization/zh_TW/messages.inc
index c52116a55..5605ba815 100644
--- a/program/localization/zh_TW/messages.inc
+++ b/program/localization/zh_TW/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = '發生錯誤ï¼';
$messages['loginfailed'] = '登入失敗';
$messages['cookiesdisabled'] = 'ä½ çš„ç€è¦½å™¨ä¸æŽ¥å— cookies';
@@ -42,7 +44,7 @@ $messages['checkingmail'] = '檢查新郵件...';
$messages['sendingmessage'] = '寄出郵件中...';
$messages['messagesent'] = '郵件寄出æˆåŠŸ';
$messages['savingmessage'] = '儲存郵件中...';
-$messages['messagesaved'] = '郵件已經儲存至è‰ç¨¿åŒ£';
+$messages['messagesaved'] = '訊æ¯å·²ç¶“存至';
$messages['successfullysaved'] = '儲存æˆåŠŸ';
$messages['addedsuccessfully'] = 'è¯çµ¡äººå·²ç¶“æˆåŠŸåœ°æ–°å¢žè‡³é€šè¨ŠéŒ„';
$messages['contactexists'] = 'æ­¤è¯çµ¡äººçš„é›»å­éƒµä»¶ä½å€å·²å­˜åœ¨';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = '找ä¸åˆ°è¦æ±‚çš„è¯çµ¡äºº';
$messages['contactsearchonly'] = '輸入關éµå­—找尋連絡人';
$messages['sendingfailed'] = '郵件寄出失敗';
$messages['senttooquickly'] = '你寄出的郵件太éŽæ–¼é »ç¹ï¼Œè«‹ç¨å€™ $sec 秒後å†è©¦ä¸€æ¬¡ã€‚';
+$messages['errorsavingsent'] = '儲存寄件備份時發生錯誤';
+$messages['errorsaving'] = '儲存時發生錯誤';
$messages['errormoving'] = '無法移動此郵件';
$messages['errorcopying'] = '無法訊æ¯';
$messages['errordeleting'] = '無法刪除此郵件';
@@ -97,16 +101,13 @@ $messages['converting'] = '移除郵件格å¼ä¸­...';
$messages['messageopenerror'] = '無法從伺æœå™¨è¼‰å…¥éƒµä»¶';
$messages['fileuploaderror'] = '檔案上傳失敗';
$messages['filesizeerror'] = '上傳的檔案超éŽäº† $size 的大å°é™åˆ¶';
-$messages['copysuccess'] = 'æˆåŠŸè¤‡è£½ $nr 個è¯çµ¡äººã€‚';
-$messages['movesuccess'] = 'æˆåŠŸç§»å‹• $nr 個è¯çµ¡äººã€‚';
-$messages['copyerror'] = '無法複製任何è¯çµ¡äººã€‚';
-$messages['moveerror'] = '無法移動任何è¯çµ¡äººã€‚';
+$messages['copysuccess'] = '複製 $nr 個ä½å€æˆåŠŸ';
+$messages['copyerror'] = '無法複製任何ä½å€';
$messages['sourceisreadonly'] = '此來æºä½å€æ˜¯å”¯è®€çš„';
$messages['errorsavingcontact'] = '無法儲存連絡人的ä½å€';
$messages['movingmessage'] = '移動郵件中...';
$messages['copyingmessage'] = '複製訊æ¯...';
$messages['copyingcontact'] = '複製群組...';
-$messages['movingcontact'] = '正在移動連絡人...';
$messages['deletingmessage'] = '刪除訊æ¯...';
$messages['markingmessage'] = '標示訊æ¯...';
$messages['addingmember'] = '新增連絡人至群組';
@@ -125,8 +126,6 @@ $messages['importwait'] = '匯入中,請ç¨å€™...';
$messages['importformaterror'] = '匯入失敗ï¼ä¸Šè¼‰çš„檔案格å¼ä¸æ”¯æ´';
$messages['importconfirm'] = '<b>æˆåŠŸåŒ¯å…¥ $inserted ç­†è³‡æ–™ï¼Œç•¥éŽ $skipped 筆已存在的資料</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>ç•¥éŽ $skipped 個已存在的項目</b>';
-$messages['importmessagesuccess'] = 'æˆåŠŸåŒ¯å…¥ $nr å°éƒµä»¶';
-$messages['importmessageerror'] = '匯入失敗ï¼ä¸Šè¼‰çš„檔案ä¸æ˜¯æœ‰æ•ˆçš„郵件或資料夾檔案';
$messages['opnotpermitted'] = 'ä¸å…許的æ“作';
$messages['nofromaddress'] = '在é¸æ“‡çš„身分中éºå¤±äº†é›»å­éƒµä»¶ä½å€';
$messages['editorwarning'] = '切æ›åˆ°ç´”文字編輯模å¼å°‡æœƒéºå¤±æ‰€æœ‰è¨­å®šçš„樣å¼ã€‚您確定è¦ç¹¼çºŒå—Žï¼Ÿ';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP 錯誤:$msg';
$messages['emailformaterror'] = '錯誤電å­éƒµä»¶ï¼š$email';
$messages['toomanyrecipients'] = '太多收件人。請減少至 $max 人';
$messages['maxgroupmembersreached'] = '太多群組æˆå“¡ï¼Œè¶…éŽæœ€å¤§äººæ•¸ $max 人';
+$messages['internalerror'] = '內部發生錯誤。請å†æ¬¡å˜—試';
$messages['contactdelerror'] = '無法刪除è¯çµ¡äºº';
$messages['contactdeleted'] = 'è¯çµ¡äººæˆåŠŸåˆªé™¤';
$messages['contactrestoreerror'] = '無法復原刪除的連絡人';
@@ -168,4 +168,5 @@ $messages['messagetoobig'] = '郵件太大無法處ç†';
$messages['attachmentvalidationerror'] = '警告ï¼é€™å€‹é™„件是å¯ç–‘的,因為它的檔案類型與其宣稱的ä¸åŒã€‚如果您ä¸èƒ½ç›¸ä¿¡å¯„件者請ä¸è¦é–‹å•Ÿé™„件,它å¯èƒ½å«æœ‰æƒ¡æ„的內容。<br /><br />
<em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = '警告:使用Webmail需è¦Javascript支æ´ï¼Œè«‹æª¢æŸ¥æ‚¨ç€è¦½å™¨çš„Javascript設定';
+
?>
diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc
index d4387194a..480a9b52e 100644
--- a/program/steps/addressbook/copy.inc
+++ b/program/steps/addressbook/copy.inc
@@ -57,16 +57,10 @@ foreach ($cids as $source => $cid)
foreach ($cid as $cid) {
$a_record = $CONTACTS->get_record($cid, true);
- // avoid copying groups
- if ($a_record['_type'] == 'group')
- continue;
-
// Check if contact exists, if so, we'll need it's ID
// Note: Some addressbooks allows empty email address field
- // @TODO: should we check all email addresses?
- $email = $CONTACTS->get_col_values('email', $a_record, true);
- if (!empty($email))
- $result = $TARGET->search('email', $email[0], 1, true, true);
+ if (!empty($a_record['email']))
+ $result = $TARGET->search('email', $a_record['email'], 1, true, true);
else if (!empty($a_record['name']))
$result = $TARGET->search('name', $a_record['name'], 1, true, true);
else
@@ -120,7 +114,7 @@ foreach ($cids as $source => $cid)
}
}
-if (!$success)
+if ($success == 0)
$OUTPUT->show_message($errormsg, 'error');
else
$OUTPUT->show_message('copysuccess', 'notice', array('nr' => $success));
diff --git a/program/steps/addressbook/delete.inc b/program/steps/addressbook/delete.inc
index 3bb2ef500..56118583c 100644
--- a/program/steps/addressbook/delete.inc
+++ b/program/steps/addressbook/delete.inc
@@ -68,14 +68,48 @@ foreach ($cids as $source => $cid)
$page = isset($_SESSION['page']) ? $_SESSION['page'] : 1;
// update saved search after data changed
-if (($records = rcmail_search_update(true)) !== false) {
+if (($search_request = $_REQUEST['_search']) && isset($_SESSION['search'][$search_request])) {
+ $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
+ $afields = $RCMAIL->config->get('contactlist_fields');
+ $search = (array)$_SESSION['search'][$search_request];
+ $records = array();
+
+ // Get records from all sources (refresh search)
+ foreach ($search as $s => $set) {
+ $source = $RCMAIL->get_address_book($s);
+
+ // reset page
+ $source->set_page(1);
+ $source->set_pagesize(9999);
+ $source->set_search_set($set);
+
+ // get records
+ $result = $source->list_records($afields);
+
+ if (!$result->count) {
+ unset($search[$s]);
+ continue;
+ }
+
+ while ($row = $result->next()) {
+ $row['sourceid'] = $s;
+ $key = rcube_addressbook::compose_contact_key($row, $sort_col);
+ $records[$key] = $row;
+ }
+ unset($result);
+
+ $search[$s] = $source->get_search_set();
+ }
+
+ $_SESSION['search'][$search_request] = $search;
+
// create resultset object
$count = count($records);
$first = ($page-1) * $PAGE_SIZE;
$result = new rcube_result_set($count, $first);
- $pages = ceil((count($records) + $delcnt) / $PAGE_SIZE);
// get records from the next page to add to the list
+ $pages = ceil((count($records) + $delcnt) / $PAGE_SIZE);
if ($_GET['_from'] != 'show' && $pages > 1 && $page < $pages) {
// sort the records
ksort($records, SORT_LOCALE_STRING);
diff --git a/program/steps/addressbook/export.inc b/program/steps/addressbook/export.inc
index 1e988feab..11c9ca493 100644
--- a/program/steps/addressbook/export.inc
+++ b/program/steps/addressbook/export.inc
@@ -5,7 +5,7 @@
| program/steps/addressbook/export.inc |
| |
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2008-2013, The Roundcube Dev Team |
+ | Copyright (C) 2008-2011, The Roundcube Dev Team |
| Copyright (C) 2011, Kolab Systems AG |
| |
| Licensed under the GNU General Public License version 3 or |
@@ -21,46 +21,6 @@
+-----------------------------------------------------------------------+
*/
-
-/**
- * Copy contact record properties into a vcard object
- */
-function prepare_for_export(&$record, $source = null)
-{
- $groups = $source && $source->groups && $source->export_groups ? $source->get_record_groups($record['ID']) : null;
-
- if (empty($record['vcard'])) {
- $vcard = new rcube_vcard();
- if ($source) {
- $vcard->extend_fieldmap($source->vcard_map);
- }
- $vcard->load($record['vcard']);
- $vcard->reset();
-
- foreach ($record as $key => $values) {
- list($field, $section) = explode(':', $key);
- foreach ((array)$values as $value) {
- if (is_array($value) || @strlen($value)) {
- $vcard->set($field, $value, strtoupper($section));
- }
- }
- }
-
- // append group names
- if ($groups) {
- $vcard->set('groups', join(',', $groups), null);
- }
-
- $record['vcard'] = $vcard->export(true);
- }
- // patch categories to alread existing vcard block
- else if ($record['vcard'] && !empty($groups) && !strpos($record['vcard'], 'CATEGORIES:')) {
- $vgroups = 'CATEGORIES:' . rcube_vcard::vcard_quote(join(',', $groups));
- $record['vcard'] = str_replace('END:VCARD', $vgroups . rcube_vcard::$eol . 'END:VCARD', $record['vcard']);
- }
-}
-
-
// Use search result
if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search']]))
{
@@ -80,15 +40,11 @@ if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search
// get records
$result = $source->list_records();
- while ($record = $result->next()) {
- // because vcard_map is per-source we need to create vcard here
- prepare_for_export($record, $source);
-
- $record['sourceid'] = $s;
- $key = rcube_addressbook::compose_contact_key($record, $sort_col);
- $records[$key] = $record;
+ while ($row = $result->next()) {
+ $row['sourceid'] = $s;
+ $key = rcube_addressbook::compose_contact_key($row, $sort_col);
+ $records[$key] = $row;
}
-
unset($result);
}
@@ -100,35 +56,6 @@ if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search
$result = new rcube_result_set($count);
$result->records = array_values($records);
}
-// selected contacts
-else if (!empty($_REQUEST['_cid'])) {
- $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
- $records = array();
-
- // Selected contact IDs (with multi-source support)
- $cids = rcmail_get_cids();
-
- foreach ($cids as $s => $ids) {
- $source = $RCMAIL->get_address_book($s);
- $result = $source->search('ID', $ids, 1, true, true);
-
- while ($record = $result->next()) {
- // because vcard_map is per-source we need to create vcard here
- prepare_for_export($record, $source);
-
- $record['sourceid'] = $s;
- $key = rcube_addressbook::compose_contact_key($record, $sort_col);
- $records[$key] = $record;
- }
- }
-
- ksort($records, SORT_LOCALE_STRING);
-
- // create resultset object
- $count = count($records);
- $result = new rcube_result_set($count);
- $result->records = array_values($records);
-}
// selected directory/group
else {
$CONTACTS = rcmail_contact_source(null, true);
@@ -141,15 +68,33 @@ else {
// send downlaod headers
header('Content-Type: text/x-vcard; charset='.RCMAIL_CHARSET);
-header('Content-Disposition: attachment; filename="contacts.vcf"');
+header('Content-Disposition: attachment; filename="rcube_contacts.vcf"');
while ($result && ($row = $result->next())) {
- prepare_for_export($row, $CONTACTS);
+ // we already have a vcard record
+ if ($row['vcard'] && $row['name']) {
+ // fix folding and end-of-line chars
+ $row['vcard'] = preg_replace('/\r|\n\s+/', '', $row['vcard']);
+ $row['vcard'] = preg_replace('/\n/', rcube_vcard::$eol, $row['vcard']);
+ echo rcube_vcard::rfc2425_fold($row['vcard']) . rcube_vcard::$eol;
+ }
+ // copy values into vcard object
+ else {
+ $vcard = new rcube_vcard();
+ $vcard->extend_fieldmap($CONTACTS->vcard_map);
+ $vcard->load($row['vcard']);
+ $vcard->reset();
+
+ foreach ($row as $key => $values) {
+ list($field, $section) = explode(':', $key);
+ foreach ((array)$values as $value) {
+ if (is_array($value) || @strlen($value))
+ $vcard->set($field, $value, strtoupper($section));
+ }
+ }
- // fix folding and end-of-line chars
- $row['vcard'] = preg_replace('/\r|\n\s+/', '', $row['vcard']);
- $row['vcard'] = preg_replace('/\n/', rcube_vcard::$eol, $row['vcard']);
- echo rcube_vcard::rfc2425_fold($row['vcard']) . rcube_vcard::$eol;
+ echo $vcard->export(true) . rcube_vcard::$eol;
+ }
}
exit;
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index f94d15338..989b7c1c4 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -183,10 +183,11 @@ function rcmail_directory_list($attrib)
$attrib['id'] = 'rcmdirectorylist';
$out = '';
+ $local_id = '0';
$jsdata = array();
$line_templ = html::tag('li', array(
- 'id' => 'rcmli%s', 'class' => '%s', 'noclose' => true),
+ 'id' => 'rcmli%s', 'class' => '%s'),
html::a(array('href' => '%s',
'rel' => '%s',
'onclick' => "return ".JS_OBJECT_NAME.".command('list','%s',this)"), '%s'));
@@ -212,7 +213,7 @@ function rcmail_directory_list($attrib)
$name = !empty($source['name']) ? $source['name'] : $id;
$out .= sprintf($line_templ,
- rcube_utils::html_identifier($id, true),
+ html_identifier($id),
$class_name,
Q(rcmail_url(null, array('_source' => $id))),
$source['id'],
@@ -223,11 +224,10 @@ function rcmail_directory_list($attrib)
$groupdata = rcmail_contact_groups($groupdata);
$jsdata = $groupdata['jsdata'];
$out = $groupdata['out'];
- $out .= '</li>';
}
$line_templ = html::tag('li', array(
- 'id' => 'rcmli%s', 'class' => '%s'),
+ 'id' => 'rcmliS%s', 'class' => '%s'),
html::a(array('href' => '#', 'rel' => 'S%s',
'onclick' => "return ".JS_OBJECT_NAME.".command('listsearch', '%s', this)"), '%s'));
@@ -245,17 +245,14 @@ function rcmail_directory_list($attrib)
$class_name .= ' ' . $source['class_name'];
$out .= sprintf($line_templ,
- rcube_utils::html_identifier('S'.$id, true),
+ html_identifier($id),
$class_name,
$id,
$js_id, (!empty($source['name']) ? Q($source['name']) : Q($id)));
}
$OUTPUT->set_env('contactgroups', $jsdata);
- $OUTPUT->set_env('collapsed_abooks', (string)$RCMAIL->config->get('collapsed_abooks',''));
$OUTPUT->add_gui_object('folderlist', $attrib['id']);
- $OUTPUT->include_script('treelist.js');
-
// add some labels to client
$OUTPUT->add_label('deletegroupconfirm', 'groupdeleting', 'addingmember', 'removingmember');
@@ -267,23 +264,19 @@ function rcmail_contact_groups($args)
{
global $RCMAIL;
- $groups_html = '';
$groups = $RCMAIL->get_address_book($args['source'])->list_groups();
if (!empty($groups)) {
$line_templ = html::tag('li', array(
- 'id' => 'rcmli%s', 'class' => 'contactgroup'),
+ 'id' => 'rcmliG%s', 'class' => 'contactgroup'),
html::a(array('href' => '#',
'rel' => '%s:%s',
'onclick' => "return ".JS_OBJECT_NAME.".command('listgroup',{'source':'%s','id':'%s'},this)"), '%s'));
- // append collapse/expand toggle and open a new <ul>
- $is_collapsed = strpos($RCMAIL->config->get('collapsed_abooks',''), '&'.rawurlencode($args['source']).'&') !== false;
- $args['out'] .= html::div('treetoggle ' . ($is_collapsed ? 'collapsed' : 'expanded'), '&nbsp;');
-
+ $jsdata = array();
foreach ($groups as $group) {
- $groups_html .= sprintf($line_templ,
- rcube_utils::html_identifier('G' . $args['source'] . $group['ID'], true),
+ $args['out'] .= sprintf($line_templ,
+ html_identifier($args['source'] . $group['ID']),
$args['source'], $group['ID'],
$args['source'], $group['ID'], Q($group['name'])
);
@@ -293,10 +286,6 @@ function rcmail_contact_groups($args)
}
}
- $args['out'] .= html::tag('ul',
- array('class' => 'groups', 'style' => ($is_collapsed || empty($groups) ? "display:none;" : null)),
- $groups_html);
-
return $args;
}
@@ -307,7 +296,7 @@ function rcmail_contacts_list($attrib)
global $CONTACTS, $OUTPUT;
// define list of cols to be displayed
- $a_show_cols = array('name','action');
+ $a_show_cols = array('name');
// add id to message list table if not specified
if (!strlen($attrib['id']))
@@ -322,7 +311,7 @@ function rcmail_contacts_list($attrib)
$OUTPUT->include_script('list.js');
// add some labels to client
- $OUTPUT->add_label('deletecontactconfirm', 'copyingcontact', 'movingcontact', 'contactdeleting');
+ $OUTPUT->add_label('deletecontactconfirm', 'copyingcontact', 'contactdeleting');
return $out;
}
@@ -336,73 +325,31 @@ function rcmail_js_contacts_list($result, $prefix='')
return;
// define list of cols to be displayed
- $a_show_cols = array('name','action');
+ $a_show_cols = array('name');
while ($row = $result->next()) {
- $row['CID'] = $row['ID'];
- $row['email'] = reset(rcube_addressbook::get_col_values('email', $row, true));
-
- $source_id = $OUTPUT->get_env('source');
$a_row_cols = array();
- $classes = array($row['_type'] ? $row['_type'] : 'person');
+ $classes = array('person'); // org records will follow some day
// build contact ID with source ID
if (isset($row['sourceid'])) {
$row['ID'] = $row['ID'].'-'.$row['sourceid'];
- $source_id = $row['sourceid'];
}
// format each col
foreach ($a_show_cols as $col) {
- $val = '';
- switch ($col) {
- case 'name':
- $val = Q(rcube_addressbook::compose_list_name($row));
- break;
-
- case 'action':
- if ($row['_type'] == 'group') {
- $val = html::a(array(
- 'href' => '#list',
- 'rel' => $row['ID'],
- 'title' => rcube_label('listgroup'),
- 'onclick' => sprintf("return %s.command('pushgroup',{'source':'%s','id':'%s'},this,event)", JS_OBJECT_NAME, $source_id, $row['CID']),
- ), '&raquo;');
- }
- else
- $val = '&nbsp;';
- break;
-
- default:
- $val = Q($row[$col]);
- break;
- }
-
- $a_row_cols[$col] = $val;
+ $val = $col == 'name' ? rcube_addressbook::compose_list_name($row) : $row[$col];
+ $a_row_cols[$col] = Q($val);
}
if ($row['readonly'])
$classes[] = 'readonly';
- $OUTPUT->command($prefix.'add_contact_row', $row['ID'], $a_row_cols, join(' ', $classes), array_intersect_key($row, array('ID'=>1,'readonly'=>1,'_type'=>1,'email'=>1,'name'=>1)));
+ $OUTPUT->command($prefix.'add_contact_row', $row['ID'], $a_row_cols, join(' ', $classes));
}
}
-function rcmail_contacts_list_title($attrib)
-{
- global $OUTPUT;
-
- $attrib += array('label' => 'contacts', 'id' => 'rcmabooklisttitle', 'tag' => 'span');
- unset($attrib['name']);
-
- $OUTPUT->add_gui_object('addresslist_title', $attrib['id']);
- $OUTPUT->add_label('contacts');
-
- return html::tag($attrib['tag'], $attrib, rcube_label($attrib['label']), html::$common_attrib);
-}
-
-
// similar function as /steps/settings/identities.inc::rcmail_identity_frame()
function rcmail_contact_frame($attrib)
{
@@ -471,7 +418,7 @@ function rcmail_get_type_label($type)
function rcmail_contact_form($form, $record, $attrib = null)
{
- global $RCMAIL;
+ global $RCMAIL, $CONFIG;
// Allow plugins to modify contact form content
$plugin = $RCMAIL->plugins->exec_hook('contact_form', array(
@@ -480,7 +427,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
$form = $plugin['form'];
$record = $plugin['record'];
$edit_mode = $RCMAIL->action != 'show';
- $del_button = $attrib['deleteicon'] ? html::img(array('src' => $RCMAIL->output->get_skin_file($attrib['deleteicon']), 'alt' => rcube_label('delete'))) : rcube_label('delete');
+ $del_button = $attrib['deleteicon'] ? html::img(array('src' => $CONFIG['skin_path'] . $attrib['deleteicon'], 'alt' => rcube_label('delete'))) : rcube_label('delete');
unset($attrib['deleteicon']);
$out = '';
@@ -593,13 +540,22 @@ function rcmail_contact_form($form, $record, $attrib = null)
// iterate over possible subtypes and collect values with their subtype
if (is_array($colprop['subtypes'])) {
$values = $subtypes = array();
- foreach (rcube_addressbook::get_col_values($field, $record) as $st => $vals) {
- foreach((array)$vals as $value) {
- $i = count($values);
- $subtypes[$i] = $st;
- $values[$i] = $value;
+ foreach ($colprop['subtypes'] as $i => $st) {
+ $newval = false;
+ if ($record[$field.':'.$st]) {
+ $subtypes[count($values)] = $st;
+ $newval = $record[$field.':'.$st];
+ }
+ else if ($i == 0 && $record[$field]) {
+ $subtypes[count($values)] = $st;
+ $newval = $record[$field];
+ }
+ if ($newval !== false) {
+ if (is_array($newval) && isset($newval[0]))
+ $values = array_merge($values, $newval);
+ else
+ $values[] = $newval;
}
- // TODO: add $st to $select_subtype if missing ?
}
}
else {
@@ -737,42 +693,23 @@ function rcmail_contact_form($form, $record, $attrib = null)
function rcmail_contact_photo($attrib)
{
- global $SOURCE_ID, $CONTACTS, $CONTACT_COLTYPES, $RCMAIL;
+ global $SOURCE_ID, $CONTACTS, $CONTACT_COLTYPES, $RCMAIL, $CONFIG;
if ($result = $CONTACTS->get_result())
$record = $result->first();
- $photo_img = $attrib['placeholder'] ? $RCMAIL->output->get_skin_file($attrib['placeholder']) : 'program/resources/blank.gif';
- if ($record['_type'] == 'group' && $attrib['placeholdergroup'])
- $photo_img = $RCMAIL->output->get_skin_file($attrib['placeholdergroup']);
-
+ $photo_img = $attrib['placeholder'] ? $CONFIG['skin_path'] . $attrib['placeholder'] : 'program/resources/blank.gif';
$RCMAIL->output->set_env('photo_placeholder', $photo_img);
unset($attrib['placeholder']);
$plugin = $RCMAIL->plugins->exec_hook('contact_photo', array('record' => $record, 'data' => $record['photo']));
- // check if we have photo data from contact form
- if ($GLOBALS['EDIT_RECORD']) {
- $rec = $GLOBALS['EDIT_RECORD'];
- if ($rec['photo'] == '-del-') {
- $record['photo'] = '';
- }
- else if ($_SESSION['contacts']['files'][$rec['photo']]) {
- $record['photo'] = $file_id = $rec['photo'];
- }
- }
-
if ($plugin['url'])
$photo_img = $plugin['url'];
else if (preg_match('!^https?://!i', $record['photo']))
$photo_img = $record['photo'];
- else if ($record['photo']) {
- $url = array('_action' => 'photo', '_cid' => $record['ID'], '_source' => $SOURCE_ID);
- if ($file_id) {
- $url['_photo'] = $ff_value = $file_id;
- }
- $photo_img = $RCMAIL->url($url);
- }
+ else if ($record['photo'])
+ $photo_img = $RCMAIL->url(array('_action' => 'photo', '_cid' => $record['ID'], '_source' => $SOURCE_ID));
else
$ff_value = '-del-'; // will disable delete-photo action
@@ -795,54 +732,6 @@ function rcmail_format_date_col($val)
return format_date($val, $RCMAIL->config->get('date_format', 'Y-m-d'), false);
}
-/**
- * Updates saved search after data changed
- */
-function rcmail_search_update($return = false)
-{
- global $RCMAIL;
-
- if (($search_request = $_REQUEST['_search']) && isset($_SESSION['search'][$search_request])) {
- $search = (array)$_SESSION['search'][$search_request];
- $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
- $afields = $return ? $RCMAIL->config->get('contactlist_fields') : array('name', 'email');
- $records = array();
-
- foreach ($search as $s => $set) {
- $source = $RCMAIL->get_address_book($s);
-
- // reset page
- $source->set_page(1);
- $source->set_pagesize(9999);
- $source->set_search_set($set);
-
- // get records
- $result = $source->list_records($afields);
-
- if (!$result->count) {
- unset($search[$s]);
- continue;
- }
-
- if ($return) {
- while ($row = $result->next()) {
- $row['sourceid'] = $s;
- $key = rcube_addressbook::compose_contact_key($row, $sort_col);
- $records[$key] = $row;
- }
- unset($result);
- }
-
- $search[$s] = $source->get_search_set();
- }
-
- $_SESSION['search'][$search_request] = $search;
-
- return $records;
- }
-
- return false;
-}
/**
* Returns contact ID(s) and source(s) from GET/POST data
@@ -900,7 +789,6 @@ $OUTPUT->add_handlers(array(
'directorylist' => 'rcmail_directory_list',
// 'groupslist' => 'rcmail_contact_groups',
'addresslist' => 'rcmail_contacts_list',
- 'addresslisttitle' => 'rcmail_contacts_list_title',
'addressframe' => 'rcmail_contact_frame',
'recordscountdisplay' => 'rcmail_rowcount_display',
'searchform' => array($OUTPUT, 'search_form')
@@ -909,6 +797,7 @@ $OUTPUT->add_handlers(array(
// register action aliases
$RCMAIL->register_action_map(array(
'add' => 'edit.inc',
+ 'photo' => 'show.inc',
'group-create' => 'groups.inc',
'group-rename' => 'groups.inc',
'group-delete' => 'groups.inc',
diff --git a/program/steps/addressbook/import.inc b/program/steps/addressbook/import.inc
index 60f5d7b61..915aac884 100644
--- a/program/steps/addressbook/import.inc
+++ b/program/steps/addressbook/import.inc
@@ -40,7 +40,6 @@ function rcmail_import_form($attrib)
'multiple' => 'multiple',
));
$form = html::p(null, html::label('rcmimportfile', rcube_label('importfromfile')) . $upload->show());
- $table = new html_table(array('cols' => 2));
// addressbook selector
if (count($writable_books) > 1) {
@@ -49,31 +48,17 @@ function rcmail_import_form($attrib)
foreach ($writable_books as $book)
$select->add($book['name'], $book['id']);
- $table->add('title', html::label('rcmimporttarget', rcube_label('importtarget')));
- $table->add(null, $select->show($target));
+ $form .= html::p(null, html::label('rcmimporttarget', rcube_label('importtarget'))
+ . $select->show($target));
}
else {
$abook = new html_hiddenfield(array('name' => '_target', 'value' => key($writable_books)));
$form .= $abook->show();
}
- // selector for group import options
- if (count($writable_books) >= 1 || $writable_books[0]->groups) {
- $select = new html_select(array('name' => '_groups', 'id' => 'rcmimportgroups', 'is_escaped' => true));
- $select->add(rcube_label('none'), '0');
- $select->add(rcube_label('importgroupsall'), '1');
- $select->add(rcube_label('importgroupsexisting'), '2');
-
- $table->add('title', html::label('rcmimportgroups', rcube_label('importgroups')));
- $table->add(null, $select->show(get_input_value('_groups', RCUBE_INPUT_GPC)));
- }
-
- // checkbox to replace the entire address book
$check_replace = new html_checkbox(array('name' => '_replace', 'value' => 1, 'id' => 'rcmimportreplace'));
- $table->add('title', html::label('rcmimportreplace', rcube_label('importreplace')));
- $table->add(null, $check_replace->show(get_input_value('_replace', RCUBE_INPUT_GPC)));
-
- $form .= $table->show(array('id' => null) + $attrib);
+ $form .= html::p(null, $check_replace->show(get_input_value('_replace', RCUBE_INPUT_GPC)) .
+ html::label('rcmimportreplace', rcube_label('importreplace')));
$OUTPUT->set_env('writable_source', !empty($writable_books));
$OUTPUT->add_label('selectimportfile','importwait');
@@ -149,50 +134,19 @@ function rcmail_import_buttons($attrib)
}
-/**
- * Returns the matching group id. If group doesn't exist, it'll be created if allowed.
- */
-function rcmail_import_group_id($group_name, $CONTACTS, $create, &$import_groups)
-{
- $group_id = 0;
- foreach ($import_groups as $key => $group) {
- if (strtolower($group['name']) == strtolower($group_name)) {
- $group_id = $group['ID'];
- break;
- }
- }
-
- // create a new group
- if (!$group_id && $create) {
- $new_group = $CONTACTS->create_group($group_name);
- if (!$new_group['ID'])
- $new_group['ID'] = $new_group['id'];
- $import_groups[] = $new_group;
- $group_id = $new_group['ID'];
- }
-
- return $group_id;
-}
-
-
/** The import process **/
$importstep = 'rcmail_import_form';
if (is_array($_FILES['_file'])) {
- $replace = (bool)get_input_value('_replace', RCUBE_INPUT_GPC);
- $target = get_input_value('_target', RCUBE_INPUT_GPC);
- $with_groups = intval(get_input_value('_groups', RCUBE_INPUT_GPC));
+ $replace = (bool)get_input_value('_replace', RCUBE_INPUT_GPC);
+ $target = get_input_value('_target', RCUBE_INPUT_GPC);
$vcards = array();
$upload_error = null;
$CONTACTS = $RCMAIL->get_address_book($target, true);
- if (!$CONTACTS->groups) {
- $with_groups = false;
- }
-
if ($CONTACTS->readonly) {
$OUTPUT->show_message('addresswriterror', 'error');
}
@@ -252,10 +206,6 @@ if (is_array($_FILES['_file'])) {
$CONTACTS->delete_all();
}
- if ($with_groups) {
- $import_groups = $CONTACTS->list_groups();
- }
-
foreach ($vcards as $vcard) {
$a_record = $vcard->get_assoc();
@@ -308,15 +258,6 @@ if (is_array($_FILES['_file'])) {
$success = $plugin['result'];
if ($success) {
- // assign groups for this contact (if enabled)
- if ($with_groups && !empty($a_record['groups'])) {
- foreach (explode(',', $a_record['groups'][0]) as $group_name) {
- if ($group_id = rcmail_import_group_id($group_name, $CONTACTS, $with_groups == 1, $import_groups)) {
- $CONTACTS->add_to_group($group_id, $success);
- }
- }
- }
-
$IMPORT_STATS->inserted++;
$IMPORT_STATS->names[] = $a_record['name'] ? $a_record['name'] : $email;
}
diff --git a/program/steps/addressbook/list.inc b/program/steps/addressbook/list.inc
index aca58d279..1bb28658b 100644
--- a/program/steps/addressbook/list.inc
+++ b/program/steps/addressbook/list.inc
@@ -19,20 +19,47 @@
+-----------------------------------------------------------------------+
*/
-if (!empty($_GET['_page']))
- $page = intval($_GET['_page']);
-else
- $page = !empty($_SESSION['page']) ? $_SESSION['page'] : 1;
-
-$_SESSION['page'] = $page;
+$afields = $RCMAIL->config->get('contactlist_fields');
// Use search result
-if (($records = rcmail_search_update(true)) !== false) {
+if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search']]))
+{
+ $search = (array)$_SESSION['search'][$_REQUEST['_search']];
+ $records = array();
+
+ if (!empty($_GET['_page']))
+ $page = intval($_GET['_page']);
+ else
+ $page = isset($_SESSION['page']) ? $_SESSION['page'] : 1;
+
+ $_SESSION['page'] = $page;
+ $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
+
+ // Get records from all sources
+ foreach ($search as $s => $set) {
+ $source = $RCMAIL->get_address_book($s);
+
+ // reset page
+ $source->set_page(1);
+ $source->set_pagesize(9999);
+ $source->set_search_set($set);
+
+ // get records
+ $result = $source->list_records($afields);
+
+ while ($row = $result->next()) {
+ $row['sourceid'] = $s;
+ $key = rcube_addressbook::compose_contact_key($row, $sort_col);
+ $records[$key] = $row;
+ }
+ unset($result);
+ }
+
// sort the records
ksort($records, SORT_LOCALE_STRING);
// create resultset object
- $count = count($records);
+ $count = count($records);
$first = ($page-1) * $PAGE_SIZE;
$result = new rcube_result_set($count, $first);
@@ -45,7 +72,6 @@ if (($records = rcmail_search_update(true)) !== false) {
}
// List selected directory
else {
- $afields = $RCMAIL->config->get('contactlist_fields');
$CONTACTS = rcmail_contact_source(null, true);
// get contacts for this user
@@ -55,11 +81,6 @@ else {
$OUTPUT->show_message('contactsearchonly', 'notice');
$OUTPUT->command('command', 'advanced-search');
}
-
- if ($CONTACTS->group_id) {
- $OUTPUT->command('set_group_prop', array('ID' => $CONTACTS->group_id)
- + array_intersect_key((array)$CONTACTS->get_group($CONTACTS->group_id), array('name'=>1,'email'=>1)));
- }
}
// update message count display
diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc
index 7911802b9..25bfbd48b 100644
--- a/program/steps/addressbook/save.inc
+++ b/program/steps/addressbook/save.inc
@@ -59,34 +59,15 @@ foreach ($GLOBALS['CONTACT_COLTYPES'] as $col => $colprop) {
}
// assign values and subtypes
else if (is_array($_POST[$fname])) {
- $values = get_input_value($fname, RCUBE_INPUT_POST, true);
+ $values = get_input_value($fname, RCUBE_INPUT_POST, true);
$subtypes = get_input_value('_subtype_' . $col, RCUBE_INPUT_POST);
-
foreach ($values as $i => $val) {
- if ($col == 'email') {
- // extract email from full address specification, e.g. "Name" <addr@domain.tld>
- $addr = rcube_mime::decode_address_list($val, 1, false);
- if (!empty($addr) && ($addr = array_pop($addr)) && $addr['mailto']) {
- $val = $addr['mailto'];
- }
- }
-
$subtype = $subtypes[$i] ? ':'.$subtypes[$i] : '';
$a_record[$col.$subtype][] = $val;
}
}
else if (isset($_POST[$fname])) {
$a_record[$col] = get_input_value($fname, RCUBE_INPUT_POST, true);
-
- // normalize the submitted date strings
- if ($colprop['type'] == 'date') {
- if ($a_record[$col] && ($dt = rcube_utils::anytodatetime($a_record[$col]))) {
- $a_record[$col] = $dt->format('Y-m-d');
- }
- else {
- unset($a_record[$col]);
- }
- }
}
}
@@ -94,10 +75,8 @@ foreach ($GLOBALS['CONTACT_COLTYPES'] as $col => $colprop) {
if (empty($a_record['name'])) {
$a_record['name'] = rcube_addressbook::compose_display_name($a_record, true);
// Reset it if equals to email address (from compose_display_name())
- $email = rcube_addressbook::get_col_values('email', $a_record, true);
- if ($a_record['name'] == $email[0]) {
+ if ($a_record['name'] == $a_record['email'][0])
$a_record['name'] = '';
- }
}
// do input checks (delegated to $CONTACTS instance)
@@ -155,11 +134,11 @@ if (!empty($cid))
$record['email'] = reset($CONTACTS->get_col_values('email', $record, true));
$record['name'] = rcube_addressbook::compose_list_name($record);
- foreach (array('name') as $col)
+ foreach (array('name', 'email') as $col)
$a_js_cols[] = Q((string)$record[$col]);
// update the changed col in list
- $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid, $source, $record);
+ $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid, $source);
// show confirmation
$OUTPUT->show_message('successfullysaved', 'confirmation', null, false);
diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc
index efab5e9e5..d583a6d36 100644
--- a/program/steps/addressbook/show.inc
+++ b/program/steps/addressbook/show.inc
@@ -38,6 +38,58 @@ if ($cid && ($record = $CONTACTS->get_record($cid, true))) {
// get address book name (for display)
rcmail_set_sourcename($CONTACTS);
+// return raw photo of the given contact
+if ($RCMAIL->action == 'photo') {
+ // search for contact first
+ if (!$record && ($email = get_input_value('_email', RCUBE_INPUT_GPC))) {
+ foreach ($RCMAIL->get_address_sources() as $s) {
+ $abook = $RCMAIL->get_address_book($s['id']);
+ $result = $abook->search(array('email'), $email, 1, true, true, 'photo');
+ while ($result && ($record = $result->iterate())) {
+ if ($record['photo'])
+ break 2;
+ }
+ }
+ }
+
+ // read the referenced file
+ if (($file_id = get_input_value('_photo', RCUBE_INPUT_GPC)) && ($tempfile = $_SESSION['contacts']['files'][$file_id])) {
+ $tempfile = $RCMAIL->plugins->exec_hook('attachment_display', $tempfile);
+ if ($tempfile['status']) {
+ if ($tempfile['data'])
+ $data = $tempfile['data'];
+ else if ($tempfile['path'])
+ $data = file_get_contents($tempfile['path']);
+ }
+ }
+ else if ($record['photo']) {
+ $data = is_array($record['photo']) ? $record['photo'][0] : $record['photo'];
+ if (!preg_match('![^a-z0-9/=+-]!i', $data))
+ $data = base64_decode($data, true);
+ }
+
+ // let plugins do fancy things with contact photos
+ $plugin = $RCMAIL->plugins->exec_hook('contact_photo', array('record' => $record, 'email' => $email, 'data' => $data));
+
+ // redirect to url provided by a plugin
+ if ($plugin['url'])
+ $RCMAIL->output->redirect($plugin['url']);
+ else
+ $data = $plugin['data'];
+
+ // deliver alt image
+ if (!$data && ($alt_img = get_input_value('_alt', RCUBE_INPUT_GPC)) && is_file($alt_img))
+ $data = file_get_contents($alt_img);
+
+ // cache for one day if requested by email
+ if (!$cid && $email)
+ $RCMAIL->output->future_expire_header(86400);
+
+ header('Content-Type: ' . rc_image_content_type($data));
+ echo $data ? $data : file_get_contents('program/resources/blank.gif');
+ exit;
+}
+
function rcmail_contact_head($attrib)
{
@@ -49,6 +101,8 @@ function rcmail_contact_head($attrib)
return false;
}
+ $microformats = array('name' => 'fn', 'email' => 'email');
+
$form = array(
'head' => array( // section 'head' is magic!
'content' => array(
@@ -123,7 +177,7 @@ function rcmail_contact_details($attrib)
}
-function rcmail_render_email_value($email)
+function rcmail_render_email_value($email, $col)
{
return html::a(array(
'href' => 'mailto:' . $email,
@@ -134,7 +188,7 @@ function rcmail_render_email_value($email)
}
-function rcmail_render_url_value($url)
+function rcmail_render_url_value($url, $col)
{
$prefix = preg_match('!^(http|ftp)s?://!', $url) ? '' : 'http://';
return html::a(array(
@@ -155,8 +209,9 @@ function rcmail_contact_record_groups($contact_id)
return '';
}
- $members = $CONTACTS->get_record_groups($contact_id);
- $table = new html_table(array('cols' => 2, 'cellspacing' => 0, 'border' => 0));
+ $table = new html_table(array('cols' => 2, 'cellspacing' => 0, 'border' => 0));
+
+ $members = $CONTACTS->get_record_groups($contact_id);
$checkbox = new html_checkbox(array('name' => '_gid[]',
'class' => 'groupmember', 'disabled' => $CONTACTS->readonly));
diff --git a/program/steps/addressbook/undo.inc b/program/steps/addressbook/undo.inc
index c23bd1cb6..9c171143c 100644
--- a/program/steps/addressbook/undo.inc
+++ b/program/steps/addressbook/undo.inc
@@ -46,7 +46,30 @@ foreach ((array)$undo['data'] as $source => $cid)
}
// update saved search after data changed
-rcmail_search_update();
+if ($delcnt && ($search_request = $_REQUEST['_search']) && isset($_SESSION['search'][$search_request])) {
+ $search = (array)$_SESSION['search'][$search_request];
+
+ foreach ($search as $s => $set) {
+ $source = $RCMAIL->get_address_book($s);
+
+ // reset page
+ $source->set_page(1);
+ $source->set_pagesize(9999);
+ $source->set_search_set($set);
+
+ // get records
+ $result = $source->list_records(array('name', 'email'));
+
+ if (!$result->count) {
+ unset($search[$s]);
+ continue;
+ }
+
+ $search[$s] = $source->get_search_set();
+ }
+
+ $_SESSION['search'][$search_request] = $search;
+}
$RCMAIL->session->remove('contact_undo');
diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc
index 8c0b1ffc0..d3c14a38d 100644
--- a/program/steps/mail/check_recent.inc
+++ b/program/steps/mail/check_recent.inc
@@ -52,12 +52,12 @@ foreach ($a_mailboxes as $mbox_name) {
}
// Get mailbox status
- $status = $RCMAIL->storage->folder_status($mbox_name, $diff);
+ $status = $RCMAIL->storage->folder_status($mbox_name);
if ($status & 1) {
// trigger plugin hook
$RCMAIL->plugins->exec_hook('new_messages',
- array('mailbox' => $mbox_name, 'is_current' => $is_current, 'diff' => $diff));
+ array('mailbox' => $mbox_name, 'is_current' => $is_current));
}
rcmail_send_unread_count($mbox_name, true, null,
@@ -81,10 +81,9 @@ foreach ($a_mailboxes as $mbox_name) {
if (empty($_GET['_list']))
continue;
- // get overall message count; allow caching because rcube_storage::folder_status()
- // did a refresh but only in list mode
+ // get overall message count; allow caching because rcube_storage::folder_status() did a refresh
$list_mode = $RCMAIL->storage->get_threading() ? 'THREADS' : 'ALL';
- $all_count = $RCMAIL->storage->count($mbox_name, $list_mode, $list_mode == 'THREADS', false);
+ $all_count = $RCMAIL->storage->count($mbox_name, $list_mode, false, false);
$page = $RCMAIL->storage->get_page();
$page_size = $RCMAIL->storage->get_pagesize();
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 646d2bcd1..0130b1c55 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -54,12 +54,30 @@ if (!is_array($COMPOSE))
$COMPOSE_ID = uniqid(mt_rand());
$_SESSION['compose_data_'.$COMPOSE_ID] = array(
'id' => $COMPOSE_ID,
- 'param' => rcube_utils::request2param(RCUBE_INPUT_GET, 'task|action', true),
+ 'param' => request2param(RCUBE_INPUT_GET),
'mailbox' => $RCMAIL->storage->get_folder(),
);
$COMPOSE =& $_SESSION['compose_data_'.$COMPOSE_ID];
- rcmail_process_compose_params($COMPOSE);
+ // process values like "mailto:foo@bar.com?subject=new+message&cc=another"
+ if ($COMPOSE['param']['to']) {
+ // #1486037: remove "mailto:" prefix
+ $COMPOSE['param']['to'] = preg_replace('/^mailto:/i', '', $COMPOSE['param']['to']);
+ $mailto = explode('?', $COMPOSE['param']['to']);
+ if (count($mailto) > 1) {
+ $COMPOSE['param']['to'] = $mailto[0];
+ parse_str($mailto[1], $query);
+ foreach ($query as $f => $val)
+ $COMPOSE['param'][$f] = $val;
+ }
+ }
+
+ // select folder where to save the sent message
+ $COMPOSE['param']['sent_mbox'] = $RCMAIL->config->get('sent_mbox');
+
+ // pipe compose parameters thru plugins
+ $plugin = $RCMAIL->plugins->exec_hook('message_compose', $COMPOSE);
+ $COMPOSE['param'] = array_merge($COMPOSE['param'], $plugin['param']);
// add attachments listed by message_compose hook
if (is_array($plugin['attachments'])) {
@@ -109,8 +127,7 @@ if (!is_array($COMPOSE))
$OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning', 'cancel',
'nobodywarning', 'notsentwarning', 'notuploadedwarning', 'savingmessage', 'sendingmessage',
'messagesaved', 'converting', 'editorwarning', 'searching', 'uploading', 'uploadingmany',
- 'fileuploaderror', 'sendmessage', 'savenewresponse', 'responsename', 'responsetext', 'save',
- 'savingresponse');
+ 'fileuploaderror', 'sendmessage');
$OUTPUT->set_env('compose_id', $COMPOSE['id']);
$OUTPUT->set_pagetitle(rcube_label('compose'));
@@ -131,11 +148,6 @@ if ($font && !is_array($font)) {
$OUTPUT->set_env('default_font', $font);
}
-// default font size for HTML editor
-if ($font_size = $RCMAIL->config->get('default_font_size')) {
- $OUTPUT->set_env('default_font_size', $font_size);
-}
-
// get reference message and set compose mode
if ($msg_uid = $COMPOSE['param']['draft_uid']) {
$compose_mode = RCUBE_COMPOSE_DRAFT;
@@ -153,8 +165,6 @@ else if ($msg_uid = $COMPOSE['param']['forward_uid']) {
else if ($msg_uid = $COMPOSE['param']['uid']) {
$compose_mode = RCUBE_COMPOSE_EDIT;
}
-
-$COMPOSE['mode'] = $compose_mode;
$OUTPUT->set_env('compose_mode', $compose_mode);
$config_show_sig = $RCMAIL->config->get('show_sig', 1);
@@ -176,18 +186,9 @@ $LINE_LENGTH = $RCMAIL->config->get('line_length', 72);
if (!empty($msg_uid) && empty($COMPOSE['as_attachment']))
{
- $mbox_name = $RCMAIL->storage->get_folder();
-
- // set format before rcube_message construction
- // use the same format as for the message view
- if (isset($_SESSION['msg_formats'][$mbox_name.':'.$msg_uid])) {
- $RCMAIL->config->set('prefer_html', $_SESSION['msg_formats'][$mbox_name.':'.$msg_uid]);
- }
- else {
- $prefer_html = $CONFIG['prefer_html'] || $CONFIG['htmleditor'] || $compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT;
- $RCMAIL->config->set('prefer_html', $prefer_html);
- }
-
+ // similar as in program/steps/mail/show.inc
+ // re-set 'prefer_html' to have possibility to use html part for compose
+ $CONFIG['prefer_html'] = $CONFIG['prefer_html'] || $CONFIG['htmleditor'] || $compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT;
$MESSAGE = new rcube_message($msg_uid);
// make sure message is marked as read
@@ -243,14 +244,6 @@ if (!empty($msg_uid) && empty($COMPOSE['as_attachment']))
}
else {
$MESSAGE = new stdClass();
-
- // apply mailto: URL parameters
- if (!empty($COMPOSE['param']['in-reply-to'])) {
- $COMPOSE['reply_msgid'] = '<' . $COMPOSE['param']['in-reply-to'] . '>';
- }
- if (!empty($COMPOSE['param']['references'])) {
- $COMPOSE['references'] = $COMPOSE['param']['references'];
- }
}
$MESSAGE->compose = array();
@@ -320,8 +313,8 @@ foreach ($parts as $header) {
else if (!empty($MESSAGE->headers->from))
$fvalue = $MESSAGE->headers->from;
- // Reply to message sent by yourself (#1487074, #1489230)
- if (!empty($ident) && in_array($ident['ident'], array($fvalue, $MESSAGE->headers->from))) {
+ // Reply to message sent by yourself (#1487074)
+ if (!empty($ident) && $fvalue == $ident['ident']) {
$fvalue = $MESSAGE->headers->to;
}
}
@@ -405,58 +398,11 @@ $MESSAGE_BODY = rcmail_prepare_message_body();
/****** compose mode functions ********/
-// process compose request parameters
-function rcmail_process_compose_params(&$COMPOSE)
-{
- if ($COMPOSE['param']['to']) {
- $mailto = explode('?', $COMPOSE['param']['to'], 2);
-
- // #1486037: remove "mailto:" prefix
- $COMPOSE['param']['to'] = preg_replace('/^mailto:/i', '', $mailto[0]);
-
- // Supported case-insensitive tokens in mailto URL
- $url_tokens = array('to', 'cc', 'bcc', 'reply-to', 'in-reply-to', 'references', 'subject', 'body');
-
- if (!empty($mailto[1])) {
- parse_str($mailto[1], $query);
- foreach ($query as $f => $val) {
- if (($key = array_search(strtolower($f), $url_tokens)) !== false) {
- $f = $url_tokens[$key];
- }
-
- // merge mailto: addresses with addresses from 'to' parameter
- if ($f == 'to' && !empty($COMPOSE['param']['to'])) {
- $to_addresses = rcube_mime::decode_address_list($COMPOSE['param']['to'], null, true, null, true);
- $add_addresses = rcube_mime::decode_address_list($val, null, true);
- foreach ($add_addresses as $addr) {
- if (!in_array($addr['mailto'], $to_addresses)) {
- $to_addresses[] = $addr['mailto'];
- $COMPOSE['param']['to'] = (!empty($to_addresses) ? ', ' : '') . $addr['string'];
- }
- }
- }
- else {
- $COMPOSE['param'][$f] = $val;
- }
- }
- }
- }
-
- $RCMAIL = rcmail::get_instance();
-
- // select folder where to save the sent message
- $COMPOSE['param']['sent_mbox'] = $RCMAIL->config->get('sent_mbox');
-
- // pipe compose parameters thru plugins
- $plugin = $RCMAIL->plugins->exec_hook('message_compose', $COMPOSE);
- $COMPOSE['param'] = array_merge($COMPOSE['param'], $plugin['param']);
-}
-
function rcmail_compose_headers($attrib)
{
global $MESSAGE;
- list($form_start,) = get_form_tags($attrib);
+ list($form_start, $form_end) = get_form_tags($attrib);
$out = '';
$part = strtolower($attrib['part']);
@@ -520,7 +466,7 @@ function rcmail_compose_headers($attrib)
function rcmail_compose_header_from($attrib)
{
- global $MESSAGE, $OUTPUT, $RCMAIL, $COMPOSE, $compose_mode;
+ global $MESSAGE, $OUTPUT, $RCMAIL, $compose_mode;
// pass the following attributes to the form class
$field_attrib = array('name' => '_from');
@@ -531,7 +477,6 @@ function rcmail_compose_header_from($attrib)
if (count($MESSAGE->identities))
{
$a_signatures = array();
- $identities = array();
$separator = intval($RCMAIL->config->get('reply_mode')) > 0
&& ($compose_mode == RCUBE_COMPOSE_REPLY || $compose_mode == RCUBE_COMPOSE_FORWARD) ? '---' : '-- ';
@@ -569,21 +514,12 @@ function rcmail_compose_header_from($attrib)
$a_signatures[$identity_id]['text'] = $text;
$a_signatures[$identity_id]['html'] = $html;
}
-
- // add bcc and reply-to
- if (!empty($sql_arr['reply-to'])) {
- $identities[$identity_id]['replyto'] = $sql_arr['reply-to'];
- }
- if (!empty($sql_arr['bcc'])) {
- $identities[$identity_id]['bcc'] = $sql_arr['bcc'];
- }
}
$out = $select_from->show($MESSAGE->compose['from']);
// add signatures to client
$OUTPUT->set_env('signatures', $a_signatures);
- $OUTPUT->set_env('identities', $identities);
}
// no identities, display text input field
else {
@@ -627,13 +563,13 @@ function rcmail_compose_editor_mode()
function rcmail_message_is_html()
{
- global $RCMAIL, $MESSAGE;
- return $RCMAIL->config->get('prefer_html') && ($MESSAGE instanceof rcube_message) && $MESSAGE->has_html_part(true);
+ global $MESSAGE;
+ return ($MESSAGE instanceof rcube_message) && $MESSAGE->has_html_part(false, true);
}
function rcmail_prepare_message_body()
{
- global $RCMAIL, $MESSAGE, $COMPOSE, $compose_mode, $HTML_MODE;
+ global $RCMAIL, $MESSAGE, $COMPOSE, $compose_mode, $LINE_LENGTH, $HTML_MODE;
// use posted message body
if (!empty($_POST['_message'])) {
@@ -760,11 +696,6 @@ function rcmail_compose_part_body($part, $isHtml = false)
$body = rcmail_remove_signature($body);
}
}
-
- if ($part->ctype_parameters['format'] == 'flowed') {
- $body = rcube_mime::unfold_flowed($body);
- }
-
// add HTML formatting
$body = rcmail_plain_body($body);
if ($body) {
@@ -785,6 +716,9 @@ function rcmail_compose_part_body($part, $isHtml = false)
$txt = new rcube_html2text($body, false, true, $len);
$body = $txt->get_text();
}
+ else if ($part->ctype_secondary == 'enriched') {
+ $body = rcube_enriched::to_html($body);
+ }
else {
if ($part->ctype_secondary == 'plain' && $part->ctype_parameters['format'] == 'flowed') {
$body = rcube_mime::unfold_flowed($body);
@@ -804,7 +738,7 @@ function rcmail_compose_part_body($part, $isHtml = false)
function rcmail_compose_body($attrib)
{
- global $RCMAIL, $CONFIG, $OUTPUT, $MESSAGE, $compose_mode, $HTML_MODE, $MESSAGE_BODY;
+ global $RCMAIL, $CONFIG, $OUTPUT, $MESSAGE, $compose_mode, $LINE_LENGTH, $HTML_MODE, $MESSAGE_BODY;
list($form_start, $form_end) = get_form_tags($attrib);
unset($attrib['form']);
@@ -853,14 +787,29 @@ function rcmail_compose_body($attrib)
// Set language list
if (!empty($CONFIG['enable_spellcheck'])) {
- $engine = new rcube_spellchecker();
+ $engine = $RCMAIL->config->get('spellcheck_engine','googie');
$dictionary = (bool) $RCMAIL->config->get('spellcheck_dictionary');
- $spellcheck_langs = $engine->languages();
- $lang = $_SESSION['language'];
+ $spellcheck_langs = (array) $RCMAIL->config->get('spellcheck_languages',
+ array('da'=>'Dansk', 'de'=>'Deutsch', 'en' => 'English', 'es'=>'Español',
+ 'fr'=>'Français', 'it'=>'Italiano', 'nl'=>'Nederlands', 'pl'=>'Polski',
+ 'pt'=>'Português', 'ru'=>'РуÑÑкий', 'fi'=>'Suomi', 'sv'=>'Svenska'));
+
+ // googie works only with two-letter codes
+ if ($engine == 'googie') {
+ $lang = strtolower(substr($_SESSION['language'], 0, 2));
+
+ $spellcheck_langs_googie = array();
+ foreach ($spellcheck_langs as $key => $name)
+ $spellcheck_langs_googie[strtolower(substr($key,0,2))] = $name;
+ $spellcheck_langs = $spellcheck_langs_googie;
+ }
+ else {
+ $lang = $_SESSION['language'];
- // if not found in the list, try with two-letter code
- if (!$spellcheck_langs[$lang])
- $lang = strtolower(substr($lang, 0, 2));
+ // if not found in the list, try with two-letter code
+ if (!$spellcheck_langs[$lang])
+ $lang = strtolower(substr($lang, 0, 2));
+ }
if (!$spellcheck_langs[$lang])
$lang = 'en';
@@ -973,7 +922,8 @@ function rcmail_create_forward_body($body, $bodyIsHtml)
if (!isset($COMPOSE['forward_attachments']) && is_array($MESSAGE->mime_parts))
$cid_map = rcmail_write_compose_attachments($MESSAGE, $bodyIsHtml);
- $date = format_date($MESSAGE->headers->date, $RCMAIL->config->get('date_long'));
+ $date = format_date($MESSAGE->headers->date, $RCMAIL->config->get('date_long'));
+ $charset = $RCMAIL->output->get_charset();
if (!$bodyIsHtml) {
$prefix = "\n\n\n-------- " . rcube_label('originalmessage') . " --------\n";
@@ -1025,7 +975,7 @@ function rcmail_create_forward_body($body, $bodyIsHtml)
function rcmail_create_draft_body($body, $bodyIsHtml)
{
- global $MESSAGE, $COMPOSE;
+ global $MESSAGE, $OUTPUT, $COMPOSE;
/**
* add attachments
@@ -1081,14 +1031,7 @@ function rcmail_write_compose_attachments(&$message, $bodyIsHtml)
{
global $RCMAIL, $COMPOSE, $compose_mode;
- $loaded_attachments = array();
- foreach ((array)$COMPOSE['attachments'] as $attachment) {
- $loaded_attachments[$attachment['name'] . $attachment['mimetype']] = $attachment;
- }
-
- $cid_map = array();
- $messages = array();
-
+ $cid_map = $messages = array();
foreach ((array)$message->mime_parts as $pid => $part)
{
if ($part->disposition == 'attachment' || ($part->disposition == 'inline' && $bodyIsHtml) || $part->filename) {
@@ -1124,8 +1067,7 @@ function rcmail_write_compose_attachments(&$message, $bodyIsHtml)
}
}
- if (($attachment = $loaded_attachments[rcmail_attachment_name($part) . $part->mimetype])
- || ($attachment = rcmail_save_attachment($message, $pid))) {
+ if ($attachment = rcmail_save_attachment($message, $pid)) {
$COMPOSE['attachments'][$attachment['id']] = $attachment;
if ($bodyIsHtml && ($part->content_id || $part->content_location)) {
$url = sprintf('%s&_id=%s&_action=display-attachment&_file=rcmfile%s',
@@ -1178,7 +1120,7 @@ function rcmail_write_forward_attachments()
$names = array();
$loaded_attachments = array();
- foreach ((array)$COMPOSE['attachments'] as $attachment) {
+ foreach ((array)$COMPOSE['attachments'] as $id => $attachment) {
$loaded_attachments[$attachment['name'] . $attachment['mimetype']] = $attachment;
}
@@ -1467,7 +1409,7 @@ function rcmail_compose_attachment_form($attrib)
$out = html::div($attrib,
$OUTPUT->form_tag(array('id' => $attrib['id'].'Frm', 'name' => 'uploadform', 'method' => 'post', 'enctype' => 'multipart/form-data'),
- html::div(null, rcmail_compose_attachment_field()) .
+ html::div(null, rcmail_compose_attachment_field(array('size' => $attrib['attachmentfieldsize']))) .
html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
(get_boolean($attrib['buttons']) ? html::div('buttons',
$button->show(rcube_label('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
@@ -1481,7 +1423,7 @@ function rcmail_compose_attachment_form($attrib)
}
-function rcmail_compose_attachment_field($attrib = array())
+function rcmail_compose_attachment_field($attrib)
{
$attrib['type'] = 'file';
$attrib['name'] = '_attachments[]';
@@ -1599,7 +1541,7 @@ function rcmail_editor_selector($attrib)
$select->add(Q(rcube_label('plaintoggle')), 'plain');
return $select->show($useHtml ? 'html' : 'plain');
-/*
+
foreach ($choices as $value => $text) {
$attrib['id'] = '_' . $value;
$attrib['value'] = $value;
@@ -1607,7 +1549,6 @@ function rcmail_editor_selector($attrib)
}
return $selector;
-*/
}
@@ -1701,7 +1642,7 @@ function rcmail_addressbook_list($attrib = array())
$class_name .= ' ' . $source['class_name'];
$out .= sprintf($line_templ,
- html_identifier($id,true),
+ html_identifier($id),
$class_name,
$source['id'],
$js_id, (!empty($source['name']) ? $source['name'] : $id));
@@ -1743,38 +1684,6 @@ function compose_file_drop_area($attrib)
}
-/**
- *
- */
-function rcmail_compose_responses_list($attrib)
-{
- global $RCMAIL, $OUTPUT;
-
- $attrib += array('id' => 'rcmresponseslist', 'tagname' => 'ul', 'cols' => 1);
-
- $jsenv = array();
- $list = new html_table($attrib);
- foreach ($RCMAIL->get_compose_responses(true) as $response) {
- $key = $response['key'];
- $item = html::a(array(
- 'href '=> '#'.urlencode($response['name']),
- 'class' => rtrim('insertresponse ' . $attrib['itemclass']),
- 'unselectable' => 'on',
- 'rel' => $key,
- ), Q($response['name']));
-
- $jsenv[$key] = $response;
- $list->add(array(), $item);
- }
-
- // set client env
- $OUTPUT->set_env('textresponses', $jsenv);
- $OUTPUT->add_gui_object('responseslist', $attrib['id']);
-
- return $list->show();
-}
-
-
// register UI objects
$OUTPUT->add_handlers(array(
'composeheaders' => 'rcmail_compose_headers',
@@ -1791,7 +1700,6 @@ $OUTPUT->add_handlers(array(
'storetarget' => 'rcmail_store_target_selection',
'addressbooks' => 'rcmail_addressbook_list',
'addresslist' => 'rcmail_contacts_list',
- 'responseslist' => 'rcmail_compose_responses_list',
));
$OUTPUT->send('compose');
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 78a977b82..2938e91e1 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -89,15 +89,13 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
}
$threading = (bool) $RCMAIL->storage->get_threading();
- $delimiter = $RCMAIL->storage->get_hierarchy_delimiter();
// set current mailbox and some other vars in client environment
$OUTPUT->set_env('mailbox', $mbox_name);
$OUTPUT->set_env('pagesize', $RCMAIL->storage->get_pagesize());
- $OUTPUT->set_env('delimiter', $delimiter);
+ $OUTPUT->set_env('delimiter', $RCMAIL->storage->get_hierarchy_delimiter());
$OUTPUT->set_env('threading', $threading);
$OUTPUT->set_env('threads', $threading || $RCMAIL->storage->get_capability('THREAD'));
- $OUTPUT->set_env('reply_all_mode', (int) $RCMAIL->config->get('reply_all_mode'));
$OUTPUT->set_env('preview_pane_mark_read', $RCMAIL->config->get('preview_pane_mark_read', 0));
if ($RCMAIL->storage->get_capability('QUOTA')) {
$OUTPUT->set_env('quota', true);
@@ -121,48 +119,11 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
if (!$OUTPUT->ajax_call)
$OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash',
'movingmessage', 'copyingmessage', 'deletingmessage', 'markingmessage',
- 'copy', 'move', 'quota', 'replyall', 'replylist', 'importwait');
+ 'copy', 'move', 'quota');
- $pagetitle = $RCMAIL->localize_foldername($RCMAIL->storage->mod_folder($mbox_name), true);
- $pagetitle = str_replace($delimiter, " \xC2\xBB ", $pagetitle);
-
- $OUTPUT->set_pagetitle($pagetitle);
+ $OUTPUT->set_pagetitle(rcmail_localize_foldername($RCMAIL->storage->mod_folder($mbox_name)));
}
-// register UI objects
-$OUTPUT->add_handlers(array(
- 'mailboxlist' => 'rcmail_mailbox_list',
- 'messages' => 'rcmail_message_list',
- 'messagecountdisplay' => 'rcmail_messagecount_display',
- 'quotadisplay' => 'rcmail_quota_display',
- 'mailboxname' => 'rcmail_mailbox_name_display',
- 'messageheaders' => 'rcmail_message_headers',
- 'messagefullheaders' => 'rcmail_message_full_headers',
- 'messagebody' => 'rcmail_message_body',
- 'messagecontentframe' => 'rcmail_messagecontent_frame',
- 'messageimportform' => 'rcmail_message_import_form',
- 'searchfilter' => 'rcmail_search_filter',
- 'searchform' => array($OUTPUT, 'search_form'),
-));
-
-// register action aliases
-$RCMAIL->register_action_map(array(
- 'refresh' => 'check_recent.inc',
- 'preview' => 'show.inc',
- 'print' => 'show.inc',
- 'move' => 'move_del.inc',
- 'delete' => 'move_del.inc',
- 'send' => 'sendmail.inc',
- 'expunge' => 'folders.inc',
- 'purge' => 'folders.inc',
- 'remove-attachment' => 'attachments.inc',
- 'display-attachment' => 'attachments.inc',
- 'upload' => 'attachments.inc',
- 'group-expand' => 'autocomplete.inc',
-));
-
-
-
/**
* Returns 'to' if current folder is configured Sent or Drafts
* or their subfolders, otherwise returns 'from'.
@@ -178,9 +139,7 @@ function rcmail_message_list_smart_column_name()
$sent_mbox = $RCMAIL->config->get('sent_mbox');
$drafts_mbox = $RCMAIL->config->get('drafts_mbox');
- if ((strpos($mbox.$delim, $sent_mbox.$delim) === 0 || strpos($mbox.$delim, $drafts_mbox.$delim) === 0)
- && strtoupper($mbox) != 'INBOX'
- ) {
+ if (strpos($mbox.$delim, $sent_mbox.$delim) === 0 || strpos($mbox.$delim, $drafts_mbox.$delim) === 0) {
return 'to';
}
@@ -261,7 +220,7 @@ function rcmail_message_list($attrib)
if (!in_array('threads', $a_show_cols))
array_unshift($a_show_cols, 'threads');
- $_SESSION['skin_path'] = $CONFIG['skin_path'];
+ $skin_path = $_SESSION['skin_path'] = $CONFIG['skin_path'];
// set client env
$OUTPUT->add_gui_object('messagelist', $attrib['id']);
@@ -273,13 +232,15 @@ function rcmail_message_list($attrib)
$OUTPUT->include_script('list.js');
- $table = new html_table($attrib);
- if (!$attrib['noheader']) {
- foreach (rcmail_message_list_head($attrib, $a_show_cols) as $cell)
- $table->add_header(array('class' => $cell['className'], 'id' => $cell['id']), $cell['html']);
- }
+ $thead = '';
+ foreach (rcmail_message_list_head($attrib, $a_show_cols) as $cell)
+ $thead .= html::tag('td', array('class' => $cell['className'], 'id' => $cell['id']), $cell['html']);
- return $table->show();
+ return html::tag('table',
+ $attrib,
+ html::tag('thead', null, html::tag('tr', null, $thead)) .
+ html::tag('tbody', null, ''),
+ array('style', 'class', 'id', 'cellpadding', 'cellspacing', 'border', 'summary'));
}
@@ -326,7 +287,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null
$thead = $head_replace ? rcmail_message_list_head($_SESSION['list_attrib'], $a_show_cols) : NULL;
// get name of smart From/To column in folder context
- if (array_search('fromto', $a_show_cols) !== false) {
+ if (($f = array_search('fromto', $a_show_cols)) !== false) {
$smart_col = rcmail_message_list_smart_column_name();
}
@@ -342,7 +303,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null
}
// loop through message headers
- foreach ($a_headers as $header) {
+ foreach ($a_headers as $n => $header) {
if (empty($header))
continue;
@@ -416,6 +377,7 @@ function rcmail_message_list_head($attrib, $a_show_cols)
global $RCMAIL;
$skin_path = $_SESSION['skin_path'];
+ $image_tag = html::img(array('src' => "%s%s", 'alt' => "%s"));
// check to see if we have some settings for sorting
$sort_col = $_SESSION['sort_col'];
@@ -451,7 +413,7 @@ function rcmail_message_list_head($attrib, $a_show_cols)
$cells = array();
// get name of smart From/To column in folder context
- if (array_search('fromto', $a_show_cols) !== false) {
+ if (($f = array_search('fromto', $a_show_cols)) !== false) {
$smart_col = rcmail_message_list_smart_column_name();
}
@@ -642,8 +604,6 @@ function rcmail_check_safe(&$message)
$message->set_safe(true);
}
}
-
- $RCMAIL->plugins->exec_hook('message_check_safe', array('message' => $message));
break;
case 2: // always
@@ -743,10 +703,7 @@ function rcmail_print_body($part, $p = array())
+ $p + array('safe' => false, 'plain' => false, 'inline_html' => true));
// convert html to text/plain
- if ($data['plain'] && ($data['type'] == 'html' || $data['type'] == 'enriched')) {
- if ($data['type'] == 'enriched') {
- $data['body'] = rcube_enriched::to_html($data['body']);
- }
+ if ($data['type'] == 'html' && $data['plain']) {
$txt = new rcube_html2text($data['body'], false, true);
$body = $txt->get_text();
$part->ctype_secondary = 'plain';
@@ -772,13 +729,8 @@ function rcmail_print_body($part, $p = array())
unset($data['body']);
// plaintext postprocessing
- if ($part->ctype_secondary == 'plain') {
- if ($part->ctype_secondary == 'plain' && $part->ctype_parameters['format'] == 'flowed') {
- $body = rcube_mime::unfold_flowed($body);
- }
-
- $body = rcmail_plain_body($body);
- }
+ if ($part->ctype_secondary == 'plain')
+ $body = rcmail_plain_body($body, $part->ctype_parameters['format'] == 'flowed');
// allow post-processing of the message body
$data = $RCMAIL->plugins->exec_hook('message_part_after',
@@ -792,16 +744,16 @@ function rcmail_print_body($part, $p = array())
* Handle links and citation marks in plain text message
*
* @param string Plain text string
+ * @param boolean Text uses format=flowed
*
* @return string Formatted HTML string
*/
-function rcmail_plain_body($body)
+function rcmail_plain_body($body, $flowed=false)
{
global $RCMAIL;
// make links and email-addresses clickable
- $attribs = array('link_attribs' => array('rel' => 'noreferrer', 'target' => '_blank'));
- $replacer = new rcmail_string_replacer($attribs);
+ $replacer = new rcmail_string_replacer;
// search for patterns like links and e-mail addresses and replace with tokens
$body = $replacer->replace($body);
@@ -827,10 +779,48 @@ function rcmail_plain_body($body)
str_repeat('</blockquote>', $quote_level - $q))) . $body[$n];
$last = $n;
}
+ else if ($flowed) {
+ // previous line is flowed
+ if (isset($body[$last]) && $body[$n]
+ && $body[$last][strlen($body[$last])-1] == ' ') {
+ // merge lines
+ $body[$last] .= $body[$n];
+ unset($body[$n]);
+ }
+ else {
+ $last = $n;
+ }
+ }
}
else {
$q = 0;
- if ($quote_level > 0)
+ if ($flowed) {
+ // sig separator - line is fixed
+ if ($body[$n] == '-- ') {
+ $last = $last_sig = $n;
+ }
+ else {
+ // remove space-stuffing
+ if ($body[$n][0] == ' ')
+ $body[$n] = substr($body[$n], 1);
+
+ // previous line is flowed?
+ if (isset($body[$last]) && $body[$n]
+ && $last !== $last_sig
+ && $body[$last][strlen($body[$last])-1] == ' '
+ ) {
+ $body[$last] .= $body[$n];
+ unset($body[$n]);
+ }
+ else {
+ $last = $n;
+ }
+ }
+ if ($quote_level > 0)
+ $body[$last] = $replacer->get_replacement($replacer->add(
+ str_repeat('</blockquote>', $quote_level))) . $body[$last];
+ }
+ else if ($quote_level > 0)
$body[$n] = $replacer->get_replacement($replacer->add(
str_repeat('</blockquote>', $quote_level))) . $body[$n];
}
@@ -901,7 +891,7 @@ function rcmail_washtml_callback($tagname, $attrib, $content, $washtml)
*/
function rcmail_message_headers($attrib, $headers=null)
{
- global $MESSAGE, $PRINT_MODE, $RCMAIL;
+ global $OUTPUT, $MESSAGE, $PRINT_MODE, $RCMAIL;
static $sa_attrib;
// keep header table attrib
@@ -1086,7 +1076,7 @@ function rcmail_message_body($attrib)
$header_attrib[$regs[1]] = $value;
if (!empty($MESSAGE->parts)) {
- foreach ($MESSAGE->parts as $part) {
+ foreach ($MESSAGE->parts as $i => $part) {
if ($part->type == 'headers') {
$out .= html::div('message-partheaders', rcmail_message_headers(sizeof($header_attrib) ? $header_attrib : null, $part->headers));
}
@@ -1190,9 +1180,10 @@ function rcmail_message_body($attrib)
$show_link = array(
'href' => $MESSAGE->get_part_url($attach_prop->mime_id, false),
'onclick' => sprintf(
- 'return %s.command(\'load-attachment\',\'%s\',this)',
+ 'return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)',
JS_OBJECT_NAME,
- $attach_prop->mime_id)
+ $attach_prop->mime_id,
+ $mimetype)
);
$out .= html::p('image-attachment',
html::a($show_link + array('class' => 'image-link', 'style' => sprintf('width:%dpx', $thumbnail_size)),
@@ -1378,15 +1369,18 @@ function rcmail_html4inline($body, $container_id, $body_id='', &$attributes=null
/**
- * parse link (a, link, area) attributes and set correct target
+ * parse link attributes and set correct target
*/
function rcmail_alter_html_link($matches)
{
global $RCMAIL;
- $tag = strtolower($matches[1]);
+ // Support unicode/punycode in top-level domain part
+ $EMAIL_PATTERN = '([a-z0-9][a-z0-9\-\.\+\_]*@[^&@"\'.][^@&"\']*\\.([^\\x00-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,}))';
+
+ $tag = $matches[1];
$attrib = parse_attrib_string($matches[2]);
- $end = '>';
+ $end = '>';
// Remove non-printable characters in URL (#1487805)
if ($attrib['href'])
@@ -1398,36 +1392,12 @@ function rcmail_alter_html_link($matches)
$attrib['href'] = $RCMAIL->url(array('task' => 'utils', 'action' => 'modcss', 'u' => $tempurl, 'c' => $GLOBALS['rcmail_html_container_id']));
$end = ' />';
}
- else if (preg_match('/^mailto:(.+)/i', $attrib['href'], $mailto)) {
- list($mailto, $url) = explode('?', html_entity_decode($mailto[1], ENT_QUOTES, 'UTF-8'), 2);
-
- $url = urldecode($url);
- $mailto = urldecode($mailto);
- $addresses = rcube_mime::decode_address_list($mailto, null, true);
- $mailto = array();
-
- // do sanity checks on recipients
- foreach ($addresses as $idx => $addr) {
- if (rcube_utils::check_email($addr['mailto'], false)) {
- $addresses[$idx] = $addr['mailto'];
- $mailto[] = $addr['string'];
- }
- else {
- unset($addresses[$idx]);
- }
- }
-
- if (!empty($addresses)) {
- $attrib['href'] = 'mailto:' . implode(',', $addresses);
- $attrib['onclick'] = sprintf(
- "return %s.command('compose','%s',this)",
- JS_OBJECT_NAME,
- JQ(implode(',', $mailto) . ($url ? "?$url" : '')));
- }
- else {
- $attrib['href'] = '#NOP';
- $attrib['onclick'] = '';
- }
+ else if (preg_match('/^mailto:'.$EMAIL_PATTERN.'(\?[^"\'>]+)?/i', $attrib['href'], $mailto)) {
+ $attrib['href'] = $mailto[0];
+ $attrib['onclick'] = sprintf(
+ "return %s.command('compose','%s',this)",
+ JS_OBJECT_NAME,
+ JQ($mailto[1].$mailto[3]));
}
else if (empty($attrib['href']) && !$attrib['name']) {
$attrib['href'] = './#NOP';
@@ -1437,11 +1407,6 @@ function rcmail_alter_html_link($matches)
$attrib['target'] = '_blank';
}
- // Better security by adding rel="noreferrer" (#1484686)
- if (($tag == 'a' || $tag == 'area') && $attrib['href'] && $attrib['href'][0] != '#') {
- $attrib['rel'] = 'noreferrer';
- }
-
// allowed attributes for a|link|area tags
$allow = array('href','name','target','onclick','id','class','style','title',
'rel','type','media','alt','coords','nohref','hreflang','shape');
@@ -1465,8 +1430,7 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
$c = count($a_parts);
$j = 0;
$out = '';
- $allvalues = array();
- $show_email = $RCMAIL->config->get('message_show_email');
+ $allvalues = array();
if ($addicon && !isset($_SESSION['writeable_abook'])) {
$_SESSION['writeable_abook'] = $RCMAIL->get_address_sources(true) ? true : false;
@@ -1480,7 +1444,7 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
$valid = check_email($mailto, false);
// phishing email prevention (#1488981), e.g. "valid@email.addr <phishing@email.addr>"
- if (!$show_email && $valid && $name && $name != $mailto && strpos($name, '@')) {
+ if ($name && $valid && $name != $mailto && strpos($name, '@')) {
$name = '';
}
@@ -1492,25 +1456,19 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
$mailto = rcube_idn_to_utf8($mailto);
if ($PRINT_MODE) {
- $address = sprintf('%s &lt;%s&gt;', Q($name), Q($mailto));
+ $out .= ($out ? ', ' : '') . sprintf('%s &lt;%s&gt;', Q($name), $mailto);
+ // for printing we display all addresses
+ continue;
}
else if ($valid) {
if ($linked) {
- $attrs = array(
- 'href' => 'mailto:' . $mailto,
- 'onclick' => sprintf("return %s.command('compose','%s',this)", JS_OBJECT_NAME, JQ(format_email_recipient($mailto, $name))),
- 'class' => "rcmContactAddress",
- );
-
- if ($show_email && $name && $mailto) {
- $content = Q($name ? sprintf('%s <%s>', $name, $mailto) : $mailto);
- }
- else {
- $content = Q($name ? $name : $mailto);
- $attrs['title'] = $mailto;
- }
-
- $address = html::a($attrs, $content);
+ $address = html::a(array(
+ 'href' => 'mailto:'.$mailto,
+ 'onclick' => sprintf("return %s.command('compose','%s',this)", JS_OBJECT_NAME, JQ($mailto)),
+ 'title' => $mailto,
+ 'class' => "rcmContactAddress",
+ ),
+ Q($name ? $name : $mailto));
}
else {
$address = html::span(array('title' => $mailto, 'class' => "rcmContactAddress"),
@@ -1556,15 +1514,6 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
}
if ($moreadrs) {
- if ($PRINT_MODE) {
- $out .= ' ' . html::a(array(
- 'href' => '#more',
- 'class' => 'morelink',
- 'onclick' => '$(this).hide().next().show()',
- ), Q(rcube_label(array('name' => 'andnmore', 'vars' => array('nr' => $moreadrs))))) .
- html::span(array('style' => 'display:none'), join(', ', $allvalues));
- }
- else {
$out .= ' ' . html::a(array(
'href' => '#more',
'class' => 'morelink',
@@ -1574,7 +1523,6 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
JQ($title))
),
Q(rcube_label(array('name' => 'andnmore', 'vars' => array('nr' => $moreadrs)))));
- }
}
return $out;
@@ -1647,6 +1595,45 @@ function rcmail_draftinfo_decode($str)
}
+function rcmail_message_part_controls($attrib)
+{
+ global $MESSAGE, $RCMAIL;
+
+ $part = asciiwords(get_input_value('_part', RCUBE_INPUT_GPC));
+ if (!is_object($MESSAGE) || !is_array($MESSAGE->parts) || !($_GET['_uid'] && $_GET['_part']) || !$MESSAGE->mime_parts[$part])
+ return '';
+
+ $part = $MESSAGE->mime_parts[$part];
+ $table = new html_table(array('cols' => 3));
+
+ $filename = rcmail_attachment_name($part);
+
+ if (!empty($filename)) {
+ $table->add('title', Q(rcube_label('filename')));
+ $table->add('header', Q($filename));
+ $table->add('download-link', html::a(array('href' => './?'.str_replace('_frame=', '_download=', $_SERVER['QUERY_STRING'])), Q(rcube_label('download'))));
+ }
+
+ $table->add('title', Q(rcube_label('filesize')));
+ $table->add('header', Q($RCMAIL->message_part_size($part)));
+
+ return $table->show($attrib);
+}
+
+
+function rcmail_message_part_frame($attrib)
+{
+ global $MESSAGE;
+
+ $part = $MESSAGE->mime_parts[asciiwords(get_input_value('_part', RCUBE_INPUT_GPC))];
+ $ctype_primary = strtolower($part->ctype_primary);
+
+ $attrib['src'] = './?' . str_replace('_frame=', ($ctype_primary=='text' ? '_embed=' : '_preload='), $_SERVER['QUERY_STRING']);
+
+ return html::iframe($attrib);
+}
+
+
/**
* clear message composing settings
*/
@@ -1734,7 +1721,8 @@ function rcmail_send_mdn($message, &$smtp_error)
$sent = rcmail_deliver_message($compose, $identity['email'], $mailto, $smtp_error, $body_file, $options);
- if ($sent) {
+ if ($sent)
+ {
$RCMAIL->storage->set_flag($message->uid, 'MDNSENT');
return true;
}
@@ -1776,34 +1764,28 @@ function rcmail_identity_select($MESSAGE, $identities = null, $compose_mode = 'r
}
}
- // decode From: address
- $from = rcube_mime::decode_address_list($MESSAGE->headers->from, null, true, $MESSAGE->headers->charset);
- $from = array_shift($from);
- $from['mailto'] = strtolower($from['mailto']);
-
- $from_idx = null;
- $found_idx = array('to' => null, 'from' => null);
- $check_from = in_array($compose_mode, array('draft', 'edit', 'reply'));
+ $from_idx = null;
+ $found_idx = null;
+ $default_identity = 0; // default identity is always first on the list
// Select identity
foreach ($identities as $idx => $ident) {
- // use From: header when in edit/draft or reply-to-self
- if ($check_from && $from['mailto'] == strtolower($ident['email_ascii'])) {
- // remember first matching identity address
- if ($found_idx['from'] === null) {
- $found_idx['from'] = $idx;
- }
- // match identity name
- if ($from['name'] && $ident['name'] && $from['name'] == $ident['name']) {
+ // use From header
+ if (in_array($compose_mode, array('draft', 'edit'))) {
+ if ($MESSAGE->headers->from == $ident['ident']) {
$from_idx = $idx;
break;
}
}
- // use replied/forwarded message recipients
+ // reply to yourself
+ else if ($compose_mode == 'reply' && $MESSAGE->headers->from == $ident['ident']) {
+ $from_idx = $idx;
+ break;
+ }
+ // use replied message recipients
else if (($found = array_search(strtolower($ident['email_ascii']), $a_recipients)) !== false) {
- // remember first matching identity address
- if ($found_idx['to'] === null) {
- $found_idx['to'] = $idx;
+ if ($found_idx === null) {
+ $found_idx = $idx;
}
// match identity name
if ($a_names[$found] && $ident['name'] && $a_names[$found] == $ident['name']) {
@@ -1813,10 +1795,9 @@ function rcmail_identity_select($MESSAGE, $identities = null, $compose_mode = 'r
}
}
- // If matching by name+address didn't find any matches,
- // get first found identity (address) if any
+ // If matching by name+address doesn't found any matches, get first found address (identity)
if ($from_idx === null) {
- $from_idx = $found_idx['from'] !== null ? $found_idx['from'] : $found_idx['to'];
+ $from_idx = $found_idx;
}
// Try Return-Path
@@ -1841,14 +1822,27 @@ function rcmail_identity_select($MESSAGE, $identities = null, $compose_mode = 'r
}
}
- // See identity_select plugin for example usage of this hook
- $plugin = rcmail::get_instance()->plugins->exec_hook('identity_select',
- array('message' => $MESSAGE, 'identities' => $identities, 'selected' => $from_idx));
+ // Fallback using Delivered-To
+ if ($from_idx === null && ($delivered_to = $MESSAGE->headers->others['delivered-to'])) {
+ foreach ($identities as $idx => $ident) {
+ if (in_array($ident['email_ascii'], (array)$delivered_to)) {
+ $from_idx = $idx;
+ break;
+ }
+ }
+ }
- $selected = $plugin['selected'];
+ // Fallback using Envelope-To
+ if ($from_idx === null && ($envelope_to = $MESSAGE->headers->others['envelope-to'])) {
+ foreach ($identities as $idx => $ident) {
+ if (in_array($ident['email_ascii'], (array)$envelope_to)) {
+ $from_idx = $idx;
+ break;
+ }
+ }
+ }
- // default identity is always first on the list
- return $identities[$selected !== null ? $selected : 0];
+ return $identities[$from_idx !== null ? $from_idx : $default_identity];
}
// Fixes some content-type names
@@ -1905,15 +1899,13 @@ function rcmail_search_filter($attrib)
$attrib['onchange'] = JS_OBJECT_NAME.'.filter_mailbox(this.value)';
- // Content-Type values of messages with attachments
- // the same as in app.js:add_message_row()
- $ctypes = array('application/', 'multipart/m', 'multipart/signed', 'multipart/report');
-
- // Build search string of "with attachment" filter
- $attachment = str_repeat(' OR', count($ctypes)-1);
- foreach ($ctypes as $type) {
- $attachment .= ' HEADER Content-Type ' . rcube_imap_generic::escape($type);
- }
+ /*
+ RFC3501 (6.4.4): 'ALL', 'RECENT',
+ 'ANSWERED', 'DELETED', 'FLAGGED', 'SEEN',
+ 'UNANSWERED', 'UNDELETED', 'UNFLAGGED', 'UNSEEN',
+ 'NEW', // = (RECENT UNSEEN)
+ 'OLD' // = NOT RECENT
+ */
$select_filter = new html_select($attrib);
$select_filter->add(rcube_label('all'), 'ALL');
@@ -1924,7 +1916,6 @@ function rcmail_search_filter($attrib)
$select_filter->add(rcube_label('deleted'), 'DELETED');
$select_filter->add(rcube_label('undeleted'), 'UNDELETED');
}
- $select_filter->add(rcube_label('withattachment'), $attachment);
$select_filter->add(rcube_label('priority').': '.rcube_label('highest'), 'HEADER X-PRIORITY 1');
$select_filter->add(rcube_label('priority').': '.rcube_label('high'), 'HEADER X-PRIORITY 2');
$select_filter->add(rcube_label('priority').': '.rcube_label('normal'), 'NOT HEADER X-PRIORITY 1 NOT HEADER X-PRIORITY 2 NOT HEADER X-PRIORITY 4 NOT HEADER X-PRIORITY 5');
@@ -1954,36 +1945,35 @@ function rcmail_message_error($uid=null)
$RCMAIL->output->send('messageerror');
}
-function rcmail_message_import_form($attrib = array())
-{
- global $OUTPUT;
-
- // set defaults
- $attrib += array('id' => 'rcmImportform', 'buttons' => 'yes');
-
- // Get filesize, enable upload progress bar
- $max_filesize = rcube_upload_init();
-
- $button = new html_inputfield(array('type' => 'button'));
- $fileinput = new html_inputfield(array(
- 'type' => 'file',
- 'name' => '_file[]',
- 'multiple' => 'multiple',
- 'accept' => ".eml, .mbox, message/rfc822, text/*",
- ));
-
- $out = html::div($attrib,
- $OUTPUT->form_tag(array('id' => $attrib['id'].'Frm', 'method' => 'post', 'enctype' => 'multipart/form-data'),
- html::tag('input', array('type' => 'hidden', 'name' => '_unlock', 'value' => '')) .
- html::div(null, $fileinput->show()) .
- html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
- (get_boolean($attrib['buttons']) ? html::div('buttons',
- $button->show(rcube_label('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
- $button->show(rcube_label('upload'), array('class' => 'button mainaction', 'onclick' => JS_OBJECT_NAME . ".command('import-messages', this.form)"))
- ) : '')
- )
- );
+// register UI objects
+$OUTPUT->add_handlers(array(
+ 'mailboxlist' => 'rcmail_mailbox_list',
+ 'messages' => 'rcmail_message_list',
+ 'messagecountdisplay' => 'rcmail_messagecount_display',
+ 'quotadisplay' => 'rcmail_quota_display',
+ 'mailboxname' => 'rcmail_mailbox_name_display',
+ 'messageheaders' => 'rcmail_message_headers',
+ 'messagefullheaders' => 'rcmail_message_full_headers',
+ 'messagebody' => 'rcmail_message_body',
+ 'messagecontentframe' => 'rcmail_messagecontent_frame',
+ 'messagepartframe' => 'rcmail_message_part_frame',
+ 'messagepartcontrols' => 'rcmail_message_part_controls',
+ 'searchfilter' => 'rcmail_search_filter',
+ 'searchform' => array($OUTPUT, 'search_form'),
+));
- $OUTPUT->add_gui_object('importform', $attrib['id'].'Frm');
- return $out;
-}
+// register action aliases
+$RCMAIL->register_action_map(array(
+ 'refresh' => 'check_recent.inc',
+ 'preview' => 'show.inc',
+ 'print' => 'show.inc',
+ 'moveto' => 'move_del.inc',
+ 'delete' => 'move_del.inc',
+ 'send' => 'sendmail.inc',
+ 'expunge' => 'folders.inc',
+ 'purge' => 'folders.inc',
+ 'remove-attachment' => 'attachments.inc',
+ 'display-attachment' => 'attachments.inc',
+ 'upload' => 'attachments.inc',
+ 'group-expand' => 'autocomplete.inc',
+));
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index ae48307e3..372757720 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -38,34 +38,19 @@ ob_end_clean();
// similar code as in program/steps/mail/show.inc
if (!empty($_GET['_uid'])) {
- $uid = get_input_value('_uid', RCUBE_INPUT_GET);
$RCMAIL->config->set('prefer_html', true);
- $MESSAGE = new rcube_message($uid);
+ $MESSAGE = new rcube_message(get_input_value('_uid', RCUBE_INPUT_GET));
}
// check connection status
check_storage_status();
-$part_id = get_input_value('_part', RCUBE_INPUT_GPC);
-
// show part page
if (!empty($_GET['_frame'])) {
- if ($part_id && ($part = $MESSAGE->mime_parts[$part_id])) {
- $filename = rcmail_attachment_name($part);
- $OUTPUT->set_pagetitle($filename);
+ if (($part_id = get_input_value('_part', RCUBE_INPUT_GPC)) && ($part = $MESSAGE->mime_parts[$part_id])) {
+ $OUTPUT->set_pagetitle(rcmail_attachment_name($part));
}
- // register UI objects
- $OUTPUT->add_handlers(array(
- 'messagepartframe' => 'rcmail_message_part_frame',
- 'messagepartcontrols' => 'rcmail_message_part_controls',
- ));
-
- $OUTPUT->set_env('mailbox', $RCMAIL->storage->get_folder());
- $OUTPUT->set_env('uid', $uid);
- $OUTPUT->set_env('part', $part_id);
- $OUTPUT->set_env('filename', $filename);
-
$OUTPUT->send('messagepart');
exit;
}
@@ -84,18 +69,17 @@ else if ($_GET['_thumb']) {
// render thumbnail image if not done yet
if (!is_file($cache_file)) {
- if ($fp = fopen(($orig_name = $cache_basename . '.orig.' . $ext), 'w')) {
- $MESSAGE->get_part_content($part->mime_id, $fp);
- fclose($fp);
-
- $image = new rcube_image($orig_name);
- if ($imgtype = $image->resize($thumbnail_size, $cache_file, true)) {
- $mimetype = 'image/' . $imgtype;
- unlink($orig_name);
- }
- else {
- rename($orig_name, $cache_file);
- }
+ $fp = fopen(($orig_name = $cache_basename . '.orig.' . $ext), 'w');
+ $MESSAGE->get_part_content($part->mime_id, $fp);
+ fclose($fp);
+
+ $image = new rcube_image($orig_name);
+ if ($imgtype = $image->resize($thumbnail_size, $cache_file, true)) {
+ $mimetype = 'image/' . $imgtype;
+ unlink($orig_name);
+ }
+ else {
+ rename($orig_name, $cache_file);
}
}
@@ -108,8 +92,9 @@ else if ($_GET['_thumb']) {
exit;
}
-else if (strlen($part_id)) {
- if ($part = $MESSAGE->mime_parts[$part_id]) {
+else if (strlen($pid = get_input_value('_part', RCUBE_INPUT_GET))) {
+
+ if ($part = $MESSAGE->mime_parts[$pid]) {
$mimetype = rcmail_fix_mimetype($part->mimetype);
// allow post-processing of the message body
@@ -135,7 +120,7 @@ else if (strlen($part_id)) {
$valid = $file_extension && in_array($file_extension, (array)$extensions) || !empty($_REQUEST['_mimeclass']);
// 2. detect the real mimetype of the attachment part and compare it with the stated mimetype and filename extension
- if ($valid || !$file_extension || $mimetype == 'application/octet-stream' || stripos($mimetype, 'text/') === 0) {
+ if ($valid || !$file_extension || $mimetype == 'application/octet-stream' || $mimetype == 'text/plain') {
if ($part->body) // part body is already loaded
$body = $part->body;
else if ($part->size && $part->size < 1024*1024) // load the entire part if it's small enough
@@ -190,8 +175,8 @@ else if (strlen($part_id)) {
rcube_label(array(
'name' => 'attachmentvalidationerror',
'vars' => array(
- 'expected' => $mimetype . ($file_extension ? " (.$file_extension)" : ''),
- 'detected' => $real_mimetype . ($extensions[0] ? " (.$extensions[0])" : ''),
+ 'expected' => $mimetype . ($file_extension ? "(.$file_extension)" : ''),
+ 'detected' => $real_mimetype . ($extensions[0] ? "(.$extensions[0])" : ''),
)
)) .
html::p(array('class' => 'rcmail-inline-buttons'),
@@ -234,6 +219,7 @@ else if (strlen($part_id)) {
header("Content-Transfer-Encoding: binary");
}
+
// deliver part content
if ($ctype_primary == 'text' && $ctype_secondary == 'html' && empty($plugin['download'])) {
// Check if we have enough memory to handle the message in it
@@ -358,8 +344,7 @@ else if (strlen($part_id)) {
header("Content-Length: $size");
}
- // 8th argument disables re-formatting of text/* parts (#1489267)
- $sent = $RCMAIL->storage->get_message_part($MESSAGE->uid, $part->mime_id, $part, true, null, false, 0, false);
+ $sent = $RCMAIL->storage->get_message_part($MESSAGE->uid, $part->mime_id, $part, true);
}
}
@@ -393,9 +378,7 @@ else {
header('HTTP/1.1 404 Not Found');
exit;
-/**
- * Handles nicely storage connection errors
- */
+
function check_storage_status()
{
$error = rcmail::get_instance()->storage->get_error_code();
@@ -427,49 +410,3 @@ function check_storage_status()
exit;
}
}
-
-/**
- * Attachment properties table
- */
-function rcmail_message_part_controls($attrib)
-{
- global $MESSAGE, $RCMAIL;
-
- $part = asciiwords(get_input_value('_part', RCUBE_INPUT_GPC));
- if (!is_object($MESSAGE) || !is_array($MESSAGE->parts)
- || !($_GET['_uid'] && $_GET['_part']) || !$MESSAGE->mime_parts[$part]
- ) {
- return '';
- }
-
- $part = $MESSAGE->mime_parts[$part];
- $table = new html_table(array('cols' => 2));
-
- $table->add('title', Q(rcube_label('namex')).':');
- $table->add('header', Q(rcmail_attachment_name($part)));
-
- $table->add('title', Q(rcube_label('type')).':');
- $table->add('header', Q($part->mimetype));
-
- $table->add('title', Q(rcube_label('size')).':');
- $table->add('header', Q($RCMAIL->message_part_size($part)));
-
- return $table->show($attrib);
-}
-
-/**
- * Attachment preview frame
- */
-function rcmail_message_part_frame($attrib)
-{
- global $MESSAGE, $RCMAIL;
-
- $part = $MESSAGE->mime_parts[asciiwords(get_input_value('_part', RCUBE_INPUT_GPC))];
- $ctype_primary = strtolower($part->ctype_primary);
-
- $attrib['src'] = './?' . str_replace('_frame=', ($ctype_primary=='text' ? '_embed=' : '_preload='), $_SERVER['QUERY_STRING']);
-
- $RCMAIL->output->add_gui_object('messagepartframe', $attrib['id']);
-
- return html::iframe($attrib);
-}
diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index a2380131a..b8c3ee021 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -97,6 +97,7 @@ $OUTPUT->set_env('threading', $threading);
$OUTPUT->set_env('current_page', $count ? $RCMAIL->storage->get_page() : 1);
$OUTPUT->set_env('exists', $RCMAIL->storage->count($mbox_name, 'EXISTS'));
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count), $mbox_name);
+$OUTPUT->command('set_mailboxname', rcmail_get_mailbox_name_text());
// add message rows
rcmail_js_message_list($a_headers, FALSE, $cols);
diff --git a/program/steps/mail/list_contacts.inc b/program/steps/mail/list_contacts.inc
index dab146431..479c21422 100644
--- a/program/steps/mail/list_contacts.inc
+++ b/program/steps/mail/list_contacts.inc
@@ -73,11 +73,8 @@ else {
$CONTACTS->set_pagesize($page_size);
$CONTACTS->set_page($list_page);
- if ($group_id = get_input_value('_gid', RCUBE_INPUT_GPC)) {
- $CONTACTS->set_group($group_id);
- }
// list groups of this source (on page one)
- else if ($CONTACTS->groups && $CONTACTS->list_page == 1) {
+ if ($CONTACTS->groups && $CONTACTS->list_page == 1) {
foreach ($CONTACTS->list_groups() as $group) {
$CONTACTS->reset();
$CONTACTS->set_group($group['ID']);
@@ -92,19 +89,6 @@ else {
'contactgroup' => html::span(array('title' => $email), Q($group['name']))), 'group');
}
}
- // make virtual groups clickable to list their members
- else if ($group_prop['virtual']) {
- $row_id = 'G'.$group['ID'];
- $OUTPUT->command('add_contact_row', $row_id, array(
- 'contactgroup' => html::a(array(
- 'href' => '#list',
- 'rel' => $row['ID'],
- 'title' => rcube_label('listgroup'),
- 'onclick' => sprintf("return %s.command('pushgroup',{'source':'%s','id':'%s'},this,event)", JS_OBJECT_NAME, $source, $group['ID']),
- ), Q($group['name']) . '&nbsp;' . html::span('action', '&raquo;'))),
- 'group',
- array('ID' => $group['ID'], 'name' => $group['name'], 'virtual' => true));
- }
// show group with count
else if (($result = $CONTACTS->count()) && $result->count) {
$row_id = 'E'.$group['ID'];
@@ -113,12 +97,10 @@ else {
'contactgroup' => Q($group['name'] . ' (' . intval($result->count) . ')')), 'group');
}
}
-
- $CONTACTS->reset();
- $CONTACTS->set_group(0);
}
// get contacts for this user
+ $CONTACTS->set_group(0);
$result = $CONTACTS->list_records($afields);
}
}
@@ -136,13 +118,10 @@ else if (!empty($result) && $result->count > 0) {
foreach ($emails as $i => $email) {
$row_id = $row['ID'].$i;
$jsresult[$row_id] = format_email_recipient($email, $name);
- $classname = $row['_type'] == 'group' ? 'group' : 'person';
- $keyname = $row['_type'] == 'group' ? 'contactgroup' : 'contact';
-
$OUTPUT->command('add_contact_row', $row_id, array(
- $keyname => html::span(array('title' => $email), Q($name ? $name : $email) .
+ 'contact' => html::span(array('title' => $email), Q($name ? $name : $email) .
($name && count($emails) > 1 ? '&nbsp;' . html::span('email', Q($email)) : '')
- )), $classname);
+ )), 'person');
}
}
}
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
index f15cd2460..37157b71f 100644
--- a/program/steps/mail/move_del.inc
+++ b/program/steps/mail/move_del.inc
@@ -29,11 +29,10 @@ $old_count = $RCMAIL->storage->count(NULL, $threading ? 'THREADS' : 'ALL');
$old_pages = ceil($old_count / $RCMAIL->storage->get_pagesize());
// move messages
-if ($RCMAIL->action == 'move' && !empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) {
- $count = sizeof(explode(',', ($uids = get_input_value('_uid', RCUBE_INPUT_POST))));
+if ($RCMAIL->action=='moveto' && !empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) {
+ $count = sizeof(explode(',', ($uids = get_input_value('_uid', RCUBE_INPUT_POST))));
$target = get_input_value('_target_mbox', RCUBE_INPUT_POST, true);
- $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true);
- $trash = $RCMAIL->config->get('trash_mbox');
+ $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true);
$moved = $RCMAIL->storage->move_message($uids, $target, $mbox);
@@ -41,7 +40,7 @@ if ($RCMAIL->action == 'move' && !empty($_POST['_uid']) && strlen($_POST['_targe
// send error message
if ($_POST['_from'] != 'show')
$OUTPUT->command('list_mailbox');
- rcmail_display_server_error('errormoving', null, $target == $trash ? 'delete' : '');
+ rcmail_display_server_error('errormoving');
$OUTPUT->send();
exit;
}
@@ -126,7 +125,7 @@ else
rcmail_set_unseen_count($mbox, $unseen_count);
}
- if ($RCMAIL->action == 'move' && strlen($target)) {
+ if ($RCMAIL->action == 'moveto' && strlen($target)) {
rcmail_send_unread_count($target, true);
}
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 52b02ecff..c1c257127 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -123,7 +123,7 @@ function rcmail_fix_emoticon_paths($mime_message)
// sanitize image name so resulting attachment doesn't leave images dir
$image_name = preg_replace('/[^a-zA-Z0-9_\.\-]/i', '', $image_name);
- $img_file = INSTALL_PATH . '/' . $searchstr . $image_name;
+ $img_file = '/usr/share/tinymce/www/plugins/emotions/img/' . $image_name;
if (! in_array($image_name, $included_images)) {
// add the image to the MIME message
@@ -391,6 +391,10 @@ if (!empty($mailcc)) {
if (!empty($mailbcc)) {
$headers['Bcc'] = $mailbcc;
}
+if (!empty($identity_arr['bcc']) && stripos($headers['Bcc'], $identity_arr['bcc']) === false) {
+ $headers['Bcc'] = ($headers['Bcc'] ? $headers['Bcc'].', ' : '') . $identity_arr['bcc'];
+ $RECIPIENT_COUNT ++;
+}
if (($max_recipients = (int) $RCMAIL->config->get('max_recipients')) > 0) {
if ($RECIPIENT_COUNT > $max_recipients) {
@@ -408,12 +412,18 @@ if (!empty($identity_arr['organization'])) {
if (!empty($_POST['_replyto'])) {
$headers['Reply-To'] = rcmail_email_input_format(get_input_value('_replyto', RCUBE_INPUT_POST, TRUE, $message_charset));
}
+else if (!empty($identity_arr['reply-to'])) {
+ $headers['Reply-To'] = rcmail_email_input_format($identity_arr['reply-to'], false, true);
+}
if (!empty($headers['Reply-To'])) {
$headers['Mail-Reply-To'] = $headers['Reply-To'];
}
if (!empty($_POST['_followupto'])) {
$headers['Mail-Followup-To'] = rcmail_email_input_format(get_input_value('_followupto', RCUBE_INPUT_POST, TRUE, $message_charset));
}
+if (!empty($COMPOSE['reply_msgid'])) {
+ $headers['In-Reply-To'] = $COMPOSE['reply_msgid'];
+}
// remember reply/forward UIDs in special headers
if (!empty($COMPOSE['reply_uid']) && $savedraft) {
@@ -423,9 +433,6 @@ else if (!empty($COMPOSE['forward_uid']) && $savedraft) {
$headers['X-Draft-Info'] = array('type' => 'forward', 'uid' => $COMPOSE['forward_uid']);
}
-if (!empty($COMPOSE['reply_msgid'])) {
- $headers['In-Reply-To'] = $COMPOSE['reply_msgid'];
-}
if (!empty($COMPOSE['references'])) {
$headers['References'] = $COMPOSE['references'];
}
@@ -473,19 +480,12 @@ $isHtml = (bool) get_input_value('_is_html', RCUBE_INPUT_POST);
$message_body = get_input_value('_message', RCUBE_INPUT_POST, TRUE, $message_charset);
if ($isHtml) {
- $bstyle = array();
-
- if ($font_size = $RCMAIL->config->get('default_font_size')) {
- $bstyle[] = 'font-size: ' . $font_size;
- }
- if ($font_family = $RCMAIL->config->get('default_font')) {
- $bstyle[] = 'font-family: ' . rcmail::font_defs($font_family);
- }
+ $font = rcube_fontdefs($RCMAIL->config->get('default_font'));
+ $bstyle = $font && is_string($font) ? " style='font-family: $font'" : '';
// append doctype and html/body wrappers
- $message_body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">'
- . "\r\n<html><body" . (!empty($bstyle) ? " style='" . implode($bstyle, '; ') . "'" : '') . ">\r\n"
- . $message_body;
+ $message_body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">' .
+ "\r\n<html><body$bstyle>\r\n" . $message_body;
}
if (!$savedraft) {
@@ -615,39 +615,22 @@ else {
}
// add stored attachments, if any
-if (is_array($COMPOSE['attachments'])) {
+if (is_array($COMPOSE['attachments']))
+{
foreach ($COMPOSE['attachments'] as $id => $attachment) {
// This hook retrieves the attachment contents from the file storage backend
$attachment = $RCMAIL->plugins->exec_hook('attachment_get', $attachment);
- if ($isHtml) {
- $dispurl = '/\ssrc\s*=\s*[\'"]*\S+display-attachment\S+file=rcmfile' . preg_quote($attachment['id']) . '[\s\'"]*/';
- $message_body = $MAIL_MIME->getHTMLBody();
- $is_inline = preg_match($dispurl, $message_body);
- }
- else {
- $is_inline = false;
- }
-
- // inline image
- if ($is_inline) {
- // Mail_Mime does not support many inline attachments with the same name (#1489406)
- // we'll generate cid: urls here to workaround this
- $cid = preg_replace('/[^0-9a-zA-Z]/', '', uniqid(time(), true));
- if (preg_match('#(@[0-9a-zA-Z\-\.]+)#', $from, $matches)) {
- $cid .= $matches[1];
- } else {
- $cid .= '@localhost';
- }
-
- $message_body = preg_replace($dispurl, ' src="cid:' . $cid . '" ', $message_body);
-
+ $dispurl = '/\ssrc\s*=\s*[\'"]*\S+display-attachment\S+file=rcmfile' . preg_quote($attachment['id']) . '[\s\'"]*/';
+ $message_body = $MAIL_MIME->getHTMLBody();
+ if ($isHtml && (preg_match($dispurl, $message_body) > 0)) {
+ $message_body = preg_replace($dispurl, ' src="'.$attachment['name'].'" ', $message_body);
$MAIL_MIME->setHTMLBody($message_body);
if ($attachment['data'])
- $MAIL_MIME->addHTMLImage($attachment['data'], $attachment['mimetype'], $attachment['name'], false, $cid);
+ $MAIL_MIME->addHTMLImage($attachment['data'], $attachment['mimetype'], $attachment['name'], false);
else
- $MAIL_MIME->addHTMLImage($attachment['path'], $attachment['mimetype'], $attachment['name'], true, $cid);
+ $MAIL_MIME->addHTMLImage($attachment['path'], $attachment['mimetype'], $attachment['name'], true);
}
else {
$ctype = str_replace('image/pjpeg', 'image/jpeg', $attachment['mimetype']); // #1484914
@@ -776,7 +759,7 @@ if ($store_target) {
if (PEAR::isError($msg))
raise_error(array('code' => 650, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
+ 'file' => __FILE__, 'line' => __LINE__,
'message' => "Could not create message: ".$msg->getMessage()),
TRUE, FALSE);
else {
@@ -847,24 +830,15 @@ if ($savedraft) {
// start the auto-save timer again
$OUTPUT->command('auto_save_start');
+
+ $OUTPUT->send('iframe');
}
else {
- $folders = array();
-
- if ($COMPOSE['mode'] == 'reply' || $COMPOSE['mode'] == 'forward')
- $folders[] = $COMPOSE['mailbox'];
-
rcmail_compose_cleanup($COMPOSE_ID);
if ($store_folder && !$saved)
- $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent'), $folders);
- else {
- if ($store_folder) {
- $folders[] = $store_target;
- }
-
- $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'), $folders);
- }
+ $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent'));
+ else
+ $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'), $store_target);
+ $OUTPUT->send('iframe');
}
-
-$OUTPUT->send('iframe');
diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc
index 9d85f9c8f..c1726bbdf 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -19,7 +19,7 @@
+-----------------------------------------------------------------------+
*/
-$PRINT_MODE = $RCMAIL->action == 'print' ? TRUE : FALSE;
+$PRINT_MODE = $RCMAIL->action=='print' ? TRUE : FALSE;
// Read browser capabilities and store them in session
if ($caps = get_input_value('_caps', RCUBE_INPUT_GET)) {
@@ -31,21 +31,8 @@ if ($caps = get_input_value('_caps', RCUBE_INPUT_GET)) {
$_SESSION['browser_caps'] = $browser_caps;
}
-$uid = get_input_value('_uid', RCUBE_INPUT_GET);
-$mbox_name = $RCMAIL->storage->get_folder();
-
// similar code as in program/steps/mail/get.inc
-if ($uid) {
- // set message format (need to be done before rcube_message construction)
- if (!empty($_GET['_format'])) {
- $prefer_html = $_GET['_format'] == 'html';
- $RCMAIL->config->set('prefer_html', $prefer_html);
- $_SESSION['msg_formats'][$mbox_name.':'.$uid] = $prefer_html;
- }
- else if (isset($_SESSION['msg_formats'][$mbox_name.':'.$uid])) {
- $RCMAIL->config->set('prefer_html', $_SESSION['msg_formats'][$mbox_name.':'.$uid]);
- }
-
+if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) {
$MESSAGE = new rcube_message($uid);
// if message not found (wrong UID)...
@@ -53,6 +40,7 @@ if ($uid) {
rcmail_message_error($uid);
}
+ $mbox_name = $RCMAIL->storage->get_folder();
// show images?
rcmail_check_safe($MESSAGE);
@@ -116,12 +104,7 @@ if ($uid) {
if (!$OUTPUT->ajax_call)
$OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash',
- 'movingmessage', 'deletingmessage', 'markingmessage', 'replyall', 'replylist');
-
- $prefer_html = $RCMAIL->config->get('prefer_html');
- if ($MESSAGE->has_html_part()) {
- $OUTPUT->set_env('optional_format', $prefer_html ? 'text' : 'html');
- }
+ 'movingmessage', 'deletingmessage', 'markingmessage');
// check for unset disposition notification
if ($MESSAGE->headers->mdn_to
@@ -164,7 +147,6 @@ function rcmail_message_attachments($attrib)
global $PRINT_MODE, $MESSAGE, $RCMAIL;
$out = $ol = '';
- $attachments = array();
if (sizeof($MESSAGE->attachments)) {
foreach ($MESSAGE->attachments as $attach_prop) {
@@ -183,24 +165,22 @@ function rcmail_message_attachments($attrib)
$title = '';
}
- $mimetype = rcmail_fix_mimetype($attach_prop->mimetype);
- $class = rcmail_filetype2classname($mimetype, $filename);
- $id = 'attach' . $attach_prop->mime_id;
- $link = html::a(array(
+ $ol .= html::tag('li', rcmail_filetype2classname($attach_prop->mimetype, $filename),
+ html::a(array(
'href' => $MESSAGE->get_part_url($attach_prop->mime_id, false),
- 'onclick' => sprintf('return %s.command(\'load-attachment\',\'%s\',this)',
- JS_OBJECT_NAME, $attach_prop->mime_id),
- 'onmouseover' => $title ? '' : 'rcube_webmail.long_subject_title_ex(this, 0)',
- 'title' => Q($title),
- ), Q($filename));
- $ol .= html::tag('li', array('class' => $class, 'id' => $id), $link);
-
- $attachments[$attach_prop->mime_id] = $mimetype;
+ 'onclick' => sprintf(
+ 'return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)',
+ JS_OBJECT_NAME,
+ $attach_prop->mime_id,
+ rcmail_fix_mimetype($attach_prop->mimetype)),
+ 'onmouseover' => $title ? '' : 'rcube_webmail.long_subject_title_ex(this, 0)',
+ 'title' => Q($title),
+ ),
+ Q($filename)));
}
}
$out = html::tag('ul', $attrib, $ol, html::$common_attrib);
- $RCMAIL->output->set_env('attachments', $attachments);
}
return $out;
@@ -229,11 +209,11 @@ function rcmail_remote_objects_msg()
function rcmail_message_buttons()
{
- global $RCMAIL;
+ global $MESSAGE, $RCMAIL, $CONFIG;
$mbox = $RCMAIL->storage->get_folder();
$delim = $RCMAIL->storage->get_hierarchy_delimiter();
- $dbox = $RCMAIL->config->get('drafts_mbox');
+ $dbox = $CONFIG['drafts_mbox'];
// the message is not a draft
if ($mbox != $dbox && strpos($mbox, $dbox.$delim) !== 0) {
@@ -310,9 +290,9 @@ $OUTPUT->add_handlers(array(
));
-if ($RCMAIL->action == 'print' && $OUTPUT->template_exists('messageprint'))
+if ($RCMAIL->action=='print' && $OUTPUT->template_exists('messageprint'))
$OUTPUT->send('messageprint', false);
-else if ($RCMAIL->action == 'preview' && $OUTPUT->template_exists('messagepreview'))
+else if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview'))
$OUTPUT->send('messagepreview', false);
else
$OUTPUT->send('message', false);
diff --git a/program/steps/settings/about.inc b/program/steps/settings/about.inc
index 0fdefddda..9b13402f1 100644
--- a/program/steps/settings/about.inc
+++ b/program/steps/settings/about.inc
@@ -40,28 +40,17 @@ function rcmail_plugins_list($attrib)
$attrib['id'] = 'rcmpluginlist';
$plugins = array_filter((array) $RCMAIL->config->get('plugins'));
- $plugin_info = array();
+ $plugins = array_flip($plugins);
- foreach ($plugins as $name) {
- if ($info = $RCMAIL->plugins->get_info($name))
- $plugin_info[$name] = $info;
+ foreach ($plugins as $name => $plugin) {
+ rcube_plugin_data($name, $plugins);
}
- // load info from required plugins, too
- foreach ($plugin_info as $name => $info) {
- if (is_array($info['required']) && !empty($info['required'])) {
- foreach ($info['required'] as $req_name) {
- if (!isset($plugin_info[$req_name]) && ($req_info = $RCMAIL->plugins->get_info($req_name)))
- $plugin_info[$req_name] = $req_info;
- }
- }
- }
-
- if (empty($plugin_info)) {
+ if (empty($plugins)) {
return '';
}
- ksort($plugin_info, SORT_LOCALE_STRING);
+ ksort($plugins, SORT_LOCALE_STRING);
$table = new html_table($attrib);
@@ -71,8 +60,8 @@ function rcmail_plugins_list($attrib)
$table->add_header('license', rcube_label('license'));
$table->add_header('source', rcube_label('source'));
- foreach ($plugin_info as $name => $data) {
- $uri = $data['src_uri'] ? $data['src_uri'] : $data['uri'];
+ foreach ($plugins as $name => $data) {
+ $uri = $data['srcuri'] ? $data['srcuri'] : $data['uri'];
if ($uri && stripos($uri, 'http') !== 0) {
$uri = 'http://' . $uri;
}
@@ -89,6 +78,48 @@ function rcmail_plugins_list($attrib)
return $table->show();
}
+function rcube_plugin_data($name, &$plugins = array())
+{
+ // XPaths of plugin metadata elements
+ $metadata = array(
+ 'name' => 'string(//rc:package/rc:name)',
+ 'version' => 'string(//rc:package/rc:version/rc:release)',
+ 'license' => 'string(//rc:package/rc:license)',
+ 'license_uri' => 'string(//rc:package/rc:license/@uri)',
+ 'srcuri' => 'string(//rc:package/rc:srcuri)',
+ 'uri' => 'string(//rc:package/rc:uri)',
+ );
+
+ $package = INSTALL_PATH . "/plugins/$name/package.xml";
+ if (file_exists($package) && ($file = file_get_contents($package))) {
+ $doc = new DOMDocument();
+ $doc->loadXML($file);
+ $xpath = new DOMXPath($doc);
+ $xpath->registerNamespace('rc', "http://pear.php.net/dtd/package-2.0");
+ $data = array();
+
+ foreach ($metadata as $key => $path) {
+ $data[$key] = $xpath->evaluate($path);
+ }
+
+ $plugins[$name] = $data;
+
+ // dependent required plugins (can be used, but not included in config)
+ $deps = $xpath->evaluate('//rc:package/rc:dependencies/rc:required/rc:package/rc:name');
+ $cnt = $deps->length;
+
+ for ($i=0; $i<$cnt; $i++) {
+ $dn = $deps->item($i)->nodeValue;
+ if (!array_key_exists($dn, $plugins)) {
+ rcube_plugin_data($dn, $plugins);
+ }
+ }
+ }
+ else {
+ unset($plugins[$name]);
+ }
+}
+
$OUTPUT->set_pagetitle(rcube_label('about'));
diff --git a/program/steps/settings/edit_folder.inc b/program/steps/settings/edit_folder.inc
index 7f2a10ebc..fdb38e602 100644
--- a/program/steps/settings/edit_folder.inc
+++ b/program/steps/settings/edit_folder.inc
@@ -28,11 +28,11 @@ function rcmail_folder_form($attrib)
$storage = $RCMAIL->get_storage();
// edited folder name (empty in create-folder mode)
- $mbox = get_input_value('_mbox', RCUBE_INPUT_GPC, true);
+ $mbox = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true));
$mbox_imap = rcube_charset_convert($mbox, RCMAIL_CHARSET, 'UTF7-IMAP');
// predefined path for new folder
- $parent = get_input_value('_path', RCUBE_INPUT_GPC, true);
+ $parent = trim(get_input_value('_path', RCUBE_INPUT_GPC, true));
$parent_imap = rcube_charset_convert($parent, RCMAIL_CHARSET, 'UTF7-IMAP');
$threading_supported = $storage->get_capability('THREAD');
@@ -264,12 +264,9 @@ function rcmail_folder_form($attrib)
$content = rcmail_get_form_part($tab, $attrib);
}
- if ($content && sizeof($form) > 1) {
+ if ($content) {
$out .= html::tag('fieldset', null, html::tag('legend', null, Q($tab['name'])) . $content) ."\n";
}
- else {
- $out .= $content ."\n";
- }
}
$out .= "\n$form_end";
diff --git a/program/steps/settings/edit_prefs.inc b/program/steps/settings/edit_prefs.inc
index adf6b1623..971ed60b6 100644
--- a/program/steps/settings/edit_prefs.inc
+++ b/program/steps/settings/edit_prefs.inc
@@ -40,21 +40,24 @@ function rcmail_user_prefs_form($attrib)
$out = $form_start;
- foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $class => $block) {
+ foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $idx => $block) {
if (!empty($block['options'])) {
$table = new html_table(array('cols' => 2));
foreach ($block['options'] as $option) {
+ if ($option['advanced'])
+ $table->set_row_attribs('advanced');
+
if (isset($option['title'])) {
$table->add('title', $option['title']);
- $table->add(null, $option['content']);
+ $table->add(null, $option['content']);
}
else {
$table->add(array('colspan' => 2), $option['content']);
}
}
- $out .= html::tag('fieldset', $class, html::tag('legend', null, $block['name']) . $table->show($attrib));
+ $out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $table->show($attrib));
}
else if (!empty($block['content'])) {
$out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $block['content']);
diff --git a/program/steps/settings/folders.inc b/program/steps/settings/folders.inc
index 44482e938..778d93c03 100644
--- a/program/steps/settings/folders.inc
+++ b/program/steps/settings/folders.inc
@@ -109,7 +109,7 @@ else if ($RCMAIL->action == 'delete-folder')
else if ($RCMAIL->action == 'rename-folder')
{
$name_utf8 = trim(get_input_value('_folder_newname', RCUBE_INPUT_POST, true));
- $oldname_utf8 = get_input_value('_folder_oldname', RCUBE_INPUT_POST, true);
+ $oldname_utf8 = trim(get_input_value('_folder_oldname', RCUBE_INPUT_POST, true));
if (strlen($name_utf8) && strlen($oldname_utf8)) {
$name = rcube_charset_convert($name_utf8, RCMAIL_CHARSET, 'UTF7-IMAP');
@@ -167,7 +167,7 @@ else if ($RCMAIL->action == 'purge')
// get mailbox size
else if ($RCMAIL->action == 'folder-size')
{
- $name = get_input_value('_mbox', RCUBE_INPUT_POST, true);
+ $name = trim(get_input_value('_mbox', RCUBE_INPUT_POST, true));
$size = $STORAGE->folder_size($name);
@@ -232,16 +232,16 @@ function rcube_subscription_form($attrib)
// add any necessary "virtual" parent folders
if ($parent_folder && !isset($seen[$parent_folder])) {
for ($i=1; $i<=$level; $i++) {
- $ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i));
- if ($ancestor_folder && !$seen[$ancestor_folder]++) {
- $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF7-IMAP');
- $list_folders[] = array(
+ $ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i));
+ if ($ancestor_folder && !$seen[$ancestor_folder]++) {
+ $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF7-IMAP');
+ $list_folders[] = array(
'id' => $ancestor_folder,
'name' => $ancestor_name,
'level' => $i-1,
'virtual' => true,
);
- }
+ }
}
}
@@ -283,6 +283,7 @@ function rcube_subscription_form($attrib)
$noselect = false;
$classes = array($i%2 ? 'even' : 'odd');
+ $folder_js = Q($folder['id']);
$folder_utf8 = rcube_charset_convert($folder['id'], 'UTF7-IMAP');
$display_folder = str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;', $folder['level'])
. Q($protected ? rcmail_localize_foldername($folder['id']) : $folder['name']);
@@ -291,8 +292,7 @@ function rcube_subscription_form($attrib)
$classes[] = 'virtual';
}
- // Check \Noselect flag (of existing folder)
- if (!$protected && in_array($folder['id'], $a_unsubscribed)) {
+ if (!$protected) {
$attrs = $STORAGE->folder_attributes($folder['id']);
$noselect = in_array('\\Noselect', $attrs);
}
@@ -394,7 +394,7 @@ function rcmail_rename_folder($oldname, $newname)
$a_threaded = (array) $RCMAIL->config->get('message_threading', array());
$oldprefix = '/^' . preg_quote($oldname . $delimiter, '/') . '/';
- foreach (array_keys($a_threaded) as $key) {
+ foreach ($a_threaded as $key => $val) {
if ($key == $oldname) {
unset($a_threaded[$key]);
$a_threaded[$newname] = true;
diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index 016264128..981d4e406 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -19,1215 +19,915 @@
+-----------------------------------------------------------------------+
*/
-if (!$OUTPUT->ajax_call) {
- $OUTPUT->set_pagetitle(rcube_label('preferences'));
-}
+if (!$OUTPUT->ajax_call)
+ $OUTPUT->set_pagetitle(rcube_label('preferences'));
+
// similar function as /steps/settings/identities.inc::rcmail_identity_frame()
function rcmail_preferences_frame($attrib)
{
- global $OUTPUT;
+ global $OUTPUT;
- if (!$attrib['id']) {
- $attrib['id'] = 'rcmprefsframe';
- }
+ if (!$attrib['id'])
+ $attrib['id'] = 'rcmprefsframe';
- return $OUTPUT->frame($attrib, true);
+ return $OUTPUT->frame($attrib, true);
}
function rcmail_sections_list($attrib)
{
- global $RCMAIL;
+ global $RCMAIL;
- // add id to message list table if not specified
- if (!strlen($attrib['id'])) {
- $attrib['id'] = 'rcmsectionslist';
- }
+ // add id to message list table if not specified
+ if (!strlen($attrib['id']))
+ $attrib['id'] = 'rcmsectionslist';
- list($list, $cols) = rcmail_user_prefs();
+ list($list, $cols) = rcmail_user_prefs();
- // create XHTML table
- $out = rcube_table_output($attrib, $list, $cols, 'id');
+ // create XHTML table
+ $out = rcube_table_output($attrib, $list, $cols, 'id');
- // set client env
- $RCMAIL->output->add_gui_object('sectionslist', $attrib['id']);
- $RCMAIL->output->include_script('list.js');
+ // set client env
+ $RCMAIL->output->add_gui_object('sectionslist', $attrib['id']);
+ $RCMAIL->output->include_script('list.js');
- return $out;
+ return $out;
}
function rcmail_identities_list($attrib)
{
- global $OUTPUT, $RCMAIL;
+ global $OUTPUT, $RCMAIL;
- // add id to message list table if not specified
- if (!strlen($attrib['id'])) {
- $attrib['id'] = 'rcmIdentitiesList';
- }
+ // add id to message list table if not specified
+ if (!strlen($attrib['id']))
+ $attrib['id'] = 'rcmIdentitiesList';
- // get identities list and define 'mail' column
- $list = $RCMAIL->user->list_identities();
- foreach ($list as $idx => $row) {
- $list[$idx]['mail'] = trim($row['name'] . ' <' . rcube_idn_to_utf8($row['email']) .'>');
- }
+ // get identities list and define 'mail' column
+ $list = $RCMAIL->user->list_identities();
+ foreach ($list as $idx => $row)
+ $list[$idx]['mail'] = trim($row['name'] . ' <' . rcube_idn_to_utf8($row['email']) .'>');
- // get all identites from DB and define list of cols to be displayed
- $plugin = $RCMAIL->plugins->exec_hook('identities_list', array(
- 'list' => $list,
- 'cols' => array('mail')
- ));
+ // get all identites from DB and define list of cols to be displayed
+ $plugin = $RCMAIL->plugins->exec_hook('identities_list', array(
+ 'list' => $list,
+ 'cols' => array('mail')));
- // @TODO: use <UL> instead of <TABLE> for identities list
- // create XHTML table
- $out = rcube_table_output($attrib, $plugin['list'], $plugin['cols'], 'identity_id');
+ // @TODO: use <UL> instead of <TABLE> for identities list
+ // create XHTML table
+ $out = rcube_table_output($attrib, $plugin['list'], $plugin['cols'], 'identity_id');
- // set client env
- $OUTPUT->add_gui_object('identitieslist', $attrib['id']);
+ // set client env
+ $OUTPUT->add_gui_object('identitieslist', $attrib['id']);
- return $out;
+ return $out;
}
// similar function as in /steps/addressbook/edit.inc
function get_form_tags($attrib, $action, $id = null, $hidden = null)
{
- global $EDIT_FORM, $RCMAIL;
-
- $form_start = $form_end = '';
-
- if (empty($EDIT_FORM)) {
- $request_key = $action . (isset($id) ? '.'.$id : '');
- $form_start = $RCMAIL->output->request_form(array(
- 'name' => 'form',
- 'method' => 'post',
- 'task' => $RCMAIL->task,
- 'action' => $action,
- 'request' => $request_key,
- 'noclose' => true
- ) + $attrib);
-
- if (is_array($hidden)) {
- $hiddenfields = new html_hiddenfield($hidden);
- $form_start .= $hiddenfields->show();
- }
+ global $EDIT_FORM, $RCMAIL;
+
+ $form_start = $form_end = '';
+
+ if (empty($EDIT_FORM)) {
+ $request_key = $action . (isset($id) ? '.'.$id : '');
+ $form_start = $RCMAIL->output->request_form(array(
+ 'name' => 'form',
+ 'method' => 'post',
+ 'task' => $RCMAIL->task,
+ 'action' => $action,
+ 'request' => $request_key,
+ 'noclose' => true
+ ) + $attrib);
+
+ if (is_array($hidden)) {
+ $hiddenfields = new html_hiddenfield($hidden);
+ $form_start .= $hiddenfields->show();
+ }
- $form_end = !strlen($attrib['form']) ? '</form>' : '';
+ $form_end = !strlen($attrib['form']) ? '</form>' : '';
- $EDIT_FORM = !empty($attrib['form']) ? $attrib['form'] : 'form';
- $RCMAIL->output->add_gui_object('editform', $EDIT_FORM);
- }
+ $EDIT_FORM = !empty($attrib['form']) ? $attrib['form'] : 'form';
+ $RCMAIL->output->add_gui_object('editform', $EDIT_FORM);
+ }
- return array($form_start, $form_end);
+ return array($form_start, $form_end);
}
-function rcmail_user_prefs($current = null)
+function rcmail_user_prefs($current=null)
{
- global $RCMAIL;
+ global $RCMAIL;
+
+ $sections['general'] = array('id' => 'general', 'section' => rcube_label('uisettings'));
+ $sections['mailbox'] = array('id' => 'mailbox', 'section' => rcube_label('mailboxview'));
+ $sections['mailview'] = array('id' => 'mailview','section' => rcube_label('messagesdisplaying'));
+ $sections['compose'] = array('id' => 'compose', 'section' => rcube_label('messagescomposition'));
+ $sections['addressbook'] = array('id' => 'addressbook','section' => rcube_label('addressbook'));
+ $sections['folders'] = array('id' => 'folders', 'section' => rcube_label('specialfolders'));
+ $sections['server'] = array('id' => 'server', 'section' => rcube_label('serversettings'));
+
+ // hook + define list cols
+ $plugin = $RCMAIL->plugins->exec_hook('preferences_sections_list',
+ array('list' => $sections, 'cols' => array('section')));
- $sections['general'] = array('id' => 'general', 'section' => rcube_label('uisettings'));
- $sections['mailbox'] = array('id' => 'mailbox', 'section' => rcube_label('mailboxview'));
- $sections['mailview'] = array('id' => 'mailview','section' => rcube_label('messagesdisplaying'));
- $sections['compose'] = array('id' => 'compose', 'section' => rcube_label('messagescomposition'));
- $sections['addressbook'] = array('id' => 'addressbook','section' => rcube_label('addressbook'));
- $sections['folders'] = array('id' => 'folders', 'section' => rcube_label('specialfolders'));
- $sections['server'] = array('id' => 'server', 'section' => rcube_label('serversettings'));
+ $sections = $plugin['list'];
- // hook + define list cols
- $plugin = $RCMAIL->plugins->exec_hook('preferences_sections_list',
- array('list' => $sections, 'cols' => array('section')));
+ $config = $RCMAIL->config->all();
+ $no_override = array_flip($RCMAIL->config->get('dont_override', array()));
- $sections = $plugin['list'];
- $config = $RCMAIL->config->all();
- $no_override = array_flip((array)$RCMAIL->config->get('dont_override'));
+ foreach ($sections as $idx => $sect) {
- foreach ($sections as $idx => $sect) {
- if ($current && $sect['id'] != $current) {
- continue;
+ if ($current && $sect['id'] != $current)
+ continue;
+
+ $blocks = array();
+
+ switch ($sect['id']) {
+ // general
+ case 'general':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ );
+
+ // language selection
+ if (!isset($no_override['language'])) {
+ $a_lang = $RCMAIL->list_languages();
+ asort($a_lang);
+
+ $field_id = 'rcmfd_lang';
+ $select_lang = new html_select(array('name' => '_language', 'id' => $field_id));
+ $select_lang->add(array_values($a_lang), array_keys($a_lang));
+
+ $blocks['main']['options']['language'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('language'))),
+ 'content' => $select_lang->show($RCMAIL->user->language),
+ );
+ }
+
+ // timezone selection
+ if (!isset($no_override['timezone'])) {
+ $field_id = 'rcmfd_timezone';
+ $select_timezone = new html_select(array('name' => '_timezone', 'id' => $field_id));
+ $select_timezone->add(rcube_label('autodetect'), 'auto');
+
+ $zones = array();
+ foreach (DateTimeZone::listIdentifiers() as $i => $tzs) {
+ try {
+ $tz = new DateTimeZone($tzs);
+ $date = new DateTime('2012-12-21', $tz);
+ $offset = $date->format('Z') + 45000;
+ $sortkey = sprintf('%06d.%s', $offset, $tzs);
+ $zones[$sortkey] = array($tzs, $date->format('P'));
}
+ catch (Exception $e) {}
+ }
+
+ ksort($zones);
+ foreach ($zones as $zone) {
+ list($tzs, $offset) = $zone;
+ $select_timezone->add('(GMT ' . $offset . ') ' . strtr($tzs, '_', ' '), $tzs);
+ }
+
+ $blocks['main']['options']['timezone'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('timezone'))),
+ 'content' => $select_timezone->show((string)$config['timezone']),
+ );
+ }
+
+ // date/time formatting
+ if (!isset($no_override['time_format'])) {
+ $reftime = mktime(7,30,0);
+ $field_id = 'rcmfd_time_format';
+ $select_time = new html_select(array('name' => '_time_format', 'id' => $field_id));
+ foreach ((array)$RCMAIL->config->get('time_formats', array('G:i', 'H:i', 'g:i a', 'h:i A')) as $choice)
+ $select_time->add(date($choice, $reftime), $choice);
+
+ $blocks['main']['options']['time_format'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('timeformat'))),
+ 'content' => $select_time->show($RCMAIL->config->get('time_format')),
+ );
+ }
+
+ if (!isset($no_override['date_format'])) {
+ $refdate = mktime(12,30,0,7,24);
+ $field_id = 'rcmfd_date_format';
+ $select_date = new html_select(array('name' => '_date_format', 'id' => $field_id));
+ foreach ((array)$RCMAIL->config->get('date_formats', array('Y-m-d','d-m-Y','Y/m/d','m/d/Y','d/m/Y','d.m.Y','j.n.Y')) as $choice)
+ $select_date->add(date($choice, $refdate), $choice);
+
+ $blocks['main']['options']['date_format'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('dateformat'))),
+ 'content' => $select_date->show($config['date_format']),
+ );
+ }
+
+ // MM: Show checkbox for toggling 'pretty dates'
+ if (!isset($no_override['prettydate'])) {
+ $field_id = 'rcmfd_prettydate';
+ $input_prettydate = new html_checkbox(array('name' => '_pretty_date', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['prettydate'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('prettydate'))),
+ 'content' => $input_prettydate->show($config['prettydate']?1:0),
+ );
+ }
- $blocks = array();
-
- switch ($sect['id']) {
-
- // general
- case 'general':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'skin' => array('name' => Q(rcube_label('skin'))),
- 'browser' => array('name' => Q(rcube_label('browseroptions'))),
- 'advanced'=> array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- // language selection
- if (!isset($no_override['language'])) {
- if (!$current) {
- continue 2;
- }
-
- $a_lang = $RCMAIL->list_languages();
- asort($a_lang);
-
- $field_id = 'rcmfd_lang';
- $select = new html_select(array('name' => '_language', 'id' => $field_id));
- $select->add(array_values($a_lang), array_keys($a_lang));
-
- $blocks['main']['options']['language'] = array(
- 'title' => html::label($field_id, Q(rcube_label('language'))),
- 'content' => $select->show($RCMAIL->user->language),
- );
- }
-
- // timezone selection
- if (!isset($no_override['timezone'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_timezone';
- $select = new html_select(array('name' => '_timezone', 'id' => $field_id));
- $select->add(rcube_label('autodetect'), 'auto');
-
- $zones = array();
- foreach (DateTimeZone::listIdentifiers() as $i => $tzs) {
- try {
- $tz = new DateTimeZone($tzs);
- $date = new DateTime('2012-12-21', $tz);
- $offset = $date->format('Z') + 45000;
- $sortkey = sprintf('%06d.%s', $offset, $tzs);
- $zones[$sortkey] = array($tzs, $date->format('P'));
- }
- catch (Exception $e) {}
- }
-
- ksort($zones);
-
- foreach ($zones as $zone) {
- list($tzs, $offset) = $zone;
- $select->add('(GMT ' . $offset . ') ' . strtr($tzs, '_', ' '), $tzs);
- }
-
- $blocks['main']['options']['timezone'] = array(
- 'title' => html::label($field_id, Q(rcube_label('timezone'))),
- 'content' => $select->show((string)$config['timezone']),
- );
- }
-
- // date/time formatting
- if (!isset($no_override['time_format'])) {
- if (!$current) {
- continue 2;
- }
-
- $reftime = mktime(7,30,0);
- $defaults = array('G:i', 'H:i', 'g:i a', 'h:i A');
- $formats = (array)$RCMAIL->config->get('time_formats', $defaults);
- $field_id = 'rcmfd_time_format';
- $select = new html_select(array('name' => '_time_format', 'id' => $field_id));
-
- foreach ($formats as $choice) {
- $select->add(date($choice, $reftime), $choice);
- }
-
- $blocks['main']['options']['time_format'] = array(
- 'title' => html::label($field_id, Q(rcube_label('timeformat'))),
- 'content' => $select->show($RCMAIL->config->get('time_format')),
- );
- }
-
- if (!isset($no_override['date_format'])) {
- if (!$current) {
- continue 2;
- }
-
- $refdate = mktime(12,30,0,7,24);
- $defaults = array('Y-m-d','d-m-Y','Y/m/d','m/d/Y','d/m/Y','d.m.Y','j.n.Y');
- $formats = (array)$RCMAIL->config->get('date_formats', $defaults);
- $field_id = 'rcmfd_date_format';
- $select = new html_select(array('name' => '_date_format', 'id' => $field_id));
-
- foreach ($formats as $choice) {
- $select->add(date($choice, $refdate), $choice);
- }
-
- $blocks['main']['options']['date_format'] = array(
- 'title' => html::label($field_id, Q(rcube_label('dateformat'))),
- 'content' => $select->show($config['date_format']),
- );
- }
-
- // Show checkbox for toggling 'pretty dates'
- if (!isset($no_override['prettydate'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_prettydate';
- $input = new html_checkbox(array('name' => '_pretty_date', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['prettydate'] = array(
- 'title' => html::label($field_id, Q(rcube_label('prettydate'))),
- 'content' => $input->show($config['prettydate']?1:0),
- );
- }
-
- if (!isset($no_override['refresh_interval'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_refresh_interval';
- $select = new html_select(array('name' => '_refresh_interval', 'id' => $field_id));
-
- $select->add(rcube_label('never'), 0);
- foreach (array(1, 3, 5, 10, 15, 30, 60) as $min) {
- if (!$config['min_refresh_interval'] || $config['min_refresh_interval'] <= $min * 60) {
- $label = rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min)));
- $select->add($label, $min);
- }
- }
-
- $blocks['main']['options']['refresh_interval'] = array(
- 'title' => html::label($field_id, Q(rcube_label('refreshinterval'))),
- 'content' => $select->show($config['refresh_interval']/60),
- );
- }
-
- // show drop-down for available skins
- if (!isset($no_override['skin'])) {
- if (!$current) {
- continue 2;
- }
-
- $skins = rcmail_get_skins();
-
- if (count($skins) > 1) {
- $field_id = 'rcmfd_skin';
- $input = new html_radiobutton(array('name'=>'_skin'));
-
- foreach ($skins as $skin) {
- $thumbnail = "./skins/$skin/thumbnail.png";
- if (!is_file($thumbnail))
- $thumbnail = './program/resources/blank.gif';
-
- $skinname = ucfirst($skin);
- $author_link = $license_link = '';
- $meta = @json_decode(@file_get_contents("./skins/$skin/meta.json"), true);
-
- if (is_array($meta) && $meta['name']) {
- $skinname = $meta['name'];
- $author_link = $meta['url'] ? html::a(array('href' => $meta['url'], 'target' => '_blank'), Q($meta['author'])) : Q($meta['author']);
- $license_link = $meta['license-url'] ? html::a(array('href' => $meta['license-url'], 'target' => '_blank'), Q($meta['license'])) : Q($meta['license']);
- }
-
- $blocks['skin']['options'][$skin]['content'] = html::label(array('class' => 'skinselection'),
- html::span('skinitem', $input->show($config['skin'], array('value' => $skin, 'id' => $field_id.$skin))) .
- html::span('skinitem', html::img(array('src' => $thumbnail, 'class' => 'skinthumbnail', 'alt' => $skin, 'width' => 64, 'height' => 64))) .
- html::span('skinitem', html::span('skinname', Q($skinname)) . html::br() .
- html::span('skinauthor', $author_link ? 'by ' . $author_link : '') . html::br() .
- html::span('skinlicense', $license_link ? rcube_label('license').':&nbsp;' . $license_link : ''))
- );
- }
- }
- }
-
- // standard_windows option decides if new windows should be
- // opened as popups or standard windows (which can be handled by browsers as tabs)
- if (!isset($no_override['standard_windows'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_standard_windows';
- $checkbox = new html_checkbox(array('name' => '_standard_windows', 'id' => $field_id, 'value' => 1));
-
- $blocks['browser']['options']['standard_windows'] = array(
- 'title' => html::label($field_id, Q(rcube_label('standardwindows'))),
- 'content' => $checkbox->show($config['standard_windows']?1:0),
- );
- }
-
- if ($current) {
- $product_name = $RCMAIL->config->get('product_name', 'Roundcube Webmail');
- $RCMAIL->output->add_script(sprintf("%s.check_protocol_handler('%s', '#mailtoprotohandler');",
- JS_OBJECT_NAME, JQ($product_name)), 'foot');
- }
-
- $blocks['browser']['options']['mailtoprotohandler'] = array(
- 'content' => html::a(array(
- 'href' => '#',
- 'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))),
- );
-
- break;
-
- // Mailbox view (mail screen)
- case 'mailbox':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'new_message' => array('name' => Q(rcube_label('newmessage'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- // show config parameter for preview pane
- if (!isset($no_override['preview_pane'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_preview';
- $input = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1,
- 'onchange' => "$('#rcmfd_preview_pane_mark_read').prop('disabled', !this.checked)"));
-
- $blocks['main']['options']['preview_pane'] = array(
- 'title' => html::label($field_id, Q(rcube_label('previewpane'))),
- 'content' => $input->show($config['preview_pane']?1:0),
- );
- }
-
- // show config parameter for preview pane auto mark as read delay
- if (!isset($no_override['preview_pane_mark_read'])) {
- if (!$current) {
- continue 2;
- }
-
- // apply default if config option is not set at all
- $config['preview_pane_mark_read'] = $RCMAIL->config->get('preview_pane_mark_read', 0);
-
- $field_id = 'rcmfd_preview_pane_mark_read';
- $select = new html_select(array('name' => '_preview_pane_mark_read', 'id' => $field_id,
- 'disabled' => $config['preview_pane']?0:1));
-
- $select->add(rcube_label('never'), '-1');
- $select->add(rcube_label('immediately'), 0);
-
- foreach (array(5, 10, 20, 30) as $sec) {
- $label = rcube_label(array('name' => 'afternseconds', 'vars' => array('n' => $sec)));
- $select->add($label, $sec);
- }
-
- $blocks['main']['options']['preview_pane_mark_read'] = array(
- 'title' => html::label($field_id, Q(rcube_label('previewpanemarkread'))),
- 'content' => $select->show(intval($config['preview_pane_mark_read'])),
- );
- }
-
- if (!isset($no_override['mdn_requests'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_mdn_requests';
- $select = new html_select(array('name' => '_mdn_requests', 'id' => $field_id));
- $select->add(rcube_label('askuser'), 0);
- $select->add(rcube_label('autosend'), 1);
- $select->add(rcube_label('autosendknown'), 3);
- $select->add(rcube_label('autosendknownignore'), 4);
- $select->add(rcube_label('ignore'), 2);
-
- $blocks['main']['options']['mdn_requests'] = array(
- 'title' => html::label($field_id, Q(rcube_label('mdnrequests'))),
- 'content' => $select->show($config['mdn_requests']),
- );
- }
-
- if (!isset($no_override['autoexpand_threads'])) {
- if (!$current) {
- continue 2;
- }
-
- $storage = $RCMAIL->get_storage();
- $supported = $storage->get_capability('THREAD');
-
- if ($supported) {
- $field_id = 'rcmfd_autoexpand_threads';
- $select = new html_select(array('name' => '_autoexpand_threads', 'id' => $field_id));
- $select->add(rcube_label('never'), 0);
- $select->add(rcube_label('do_expand'), 1);
- $select->add(rcube_label('expand_only_unread'), 2);
-
- $blocks['main']['options']['autoexpand_threads'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autoexpand_threads'))),
- 'content' => $select->show($config['autoexpand_threads']),
- );
- }
- }
-
- // show page size selection
- if (!isset($no_override['mail_pagesize'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_mail_pagesize';
- $input = new html_inputfield(array('name' => '_mail_pagesize', 'id' => $field_id, 'size' => 5));
- $size = intval($config['mail_pagesize'] ? $config['mail_pagesize'] : $config['pagesize']);
-
- $blocks['main']['options']['pagesize'] = array(
- 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
- 'content' => $input->show($size ? $size : 50),
- );
- }
-
- if (!isset($no_override['check_all_folders'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_check_all_folders';
- $input = new html_checkbox(array('name' => '_check_all_folders', 'id' => $field_id, 'value' => 1));
-
- $blocks['new_message']['options']['check_all_folders'] = array(
- 'title' => html::label($field_id, Q(rcube_label('checkallfolders'))),
- 'content' => $input->show($config['check_all_folders']?1:0),
- );
- }
- break;
-
- // Message viewing
- case 'mailview':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- // show checkbox to open message view in new window
- if (!isset($no_override['message_extwin'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_message_extwin';
- $input = new html_checkbox(array('name' => '_message_extwin', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['message_extwin'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showinextwin'))),
- 'content' => $input->show($config['message_extwin']?1:0),
- );
- }
-
- // show checkbox to show email instead of name
- if (!isset($no_override['message_show_email'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_message_show_email';
- $input = new html_checkbox(array('name' => '_message_show_email', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['message_show_email'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showemail'))),
- 'content' => $input->show($config['message_show_email']?1:0),
- );
- }
-
- // show checkbox for HTML/plaintext messages
- if (!isset($no_override['prefer_html'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_htmlmsg';
- $input = new html_checkbox(array('name' => '_prefer_html', 'id' => $field_id, 'value' => 1,
- 'onchange' => "$('#rcmfd_show_images').prop('disabled', !this.checked).val(0)"));
-
- $blocks['main']['options']['prefer_html'] = array(
- 'title' => html::label($field_id, Q(rcube_label('preferhtml'))),
- 'content' => $input->show($config['prefer_html']?1:0),
- );
- }
-
- if (!isset($no_override['default_charset'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_default_charset';
-
- $blocks['advanced']['options']['default_charset'] = array(
- 'title' => html::label($field_id, Q(rcube_label('defaultcharset'))),
- 'content' => $RCMAIL->output->charset_selector(array(
- 'id' => $field_id, 'name' => '_default_charset', 'selected' => $config['default_charset']
- )));
- }
-
- if (!isset($no_override['show_images'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_show_images';
- $input = new html_select(array('name' => '_show_images', 'id' => $field_id,
- 'disabled' => !$config['prefer_html']));
-
- $input->add(rcube_label('never'), 0);
- $input->add(rcube_label('fromknownsenders'), 1);
- $input->add(rcube_label('always'), 2);
-
- $blocks['main']['options']['show_images'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showremoteimages'))),
- 'content' => $input->show($config['prefer_html'] ? $config['show_images'] : 0),
- );
- }
-
- if (!isset($no_override['inline_images'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_inline_images';
- $input = new html_checkbox(array('name' => '_inline_images', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['inline_images'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showinlineimages'))),
- 'content' => $input->show($config['inline_images']?1:0),
- );
- }
-
- // "display after delete" checkbox
- if (!isset($no_override['display_next'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_displaynext';
- $input = new html_checkbox(array('name' => '_display_next', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['display_next'] = array(
- 'title' => html::label($field_id, Q(rcube_label('displaynext'))),
- 'content' => $input->show($config['display_next']?1:0),
- );
- }
- break;
-
- // Mail composition
- case 'compose':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'sig' => array('name' => Q(rcube_label('signatureoptions'))),
- 'spellcheck' => array('name' => Q(rcube_label('spellcheckoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- // show checkbox to compose messages in a new window
- if (!isset($no_override['compose_extwin'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfdcompose_extwin';
- $input = new html_checkbox(array('name' => '_compose_extwin', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['compose_extwin'] = array(
- 'title' => html::label($field_id, Q(rcube_label('composeextwin'))),
- 'content' => $input->show($config['compose_extwin']?1:0),
- );
- }
-
- if (!isset($no_override['htmleditor'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_htmleditor';
- $select = new html_select(array('name' => '_htmleditor', 'id' => $field_id));
-
- $select->add(rcube_label('never'), 0);
- $select->add(rcube_label('always'), 1);
- $select->add(rcube_label('htmlonreply'), 2);
- $select->add(rcube_label('htmlonreplyandforward'), 3);
-
- $blocks['main']['options']['htmleditor'] = array(
- 'title' => html::label($field_id, Q(rcube_label('htmleditor'))),
- 'content' => $select->show(intval($config['htmleditor'])),
- );
- }
-
- if (!isset($no_override['draft_autosave'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_autosave';
- $select = new html_select(array('name' => '_draft_autosave', 'id' => $field_id, 'disabled' => empty($config['drafts_mbox'])));
-
- $select->add(rcube_label('never'), 0);
- foreach (array(1, 3, 5, 10) as $i => $min) {
- $label = rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min)));
- $select->add($label, $min*60);
- }
-
- $blocks['main']['options']['draft_autosave'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autosavedraft'))),
- 'content' => $select->show($config['draft_autosave']),
- );
- }
-
- if (!isset($no_override['mime_param_folding'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_param_folding';
- $select = new html_select(array('name' => '_mime_param_folding', 'id' => $field_id));
-
- $select->add(rcube_label('2231folding'), 0);
- $select->add(rcube_label('miscfolding'), 1);
- $select->add(rcube_label('2047folding'), 2);
-
- $blocks['advanced']['options']['mime_param_folding'] = array(
- 'title' => html::label($field_id, Q(rcube_label('mimeparamfolding'))),
- 'content' => $select->show($config['mime_param_folding']),
- );
- }
-
- if (!isset($no_override['force_7bit'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_force_7bit';
- $input = new html_checkbox(array('name' => '_force_7bit', 'id' => $field_id, 'value' => 1));
-
- $blocks['advanced']['options']['force_7bit'] = array(
- 'title' => html::label($field_id, Q(rcube_label('force7bit'))),
- 'content' => $input->show($config['force_7bit']?1:0),
- );
- }
-
- if (!isset($no_override['mdn_default'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_mdn_default';
- $input = new html_checkbox(array('name' => '_mdn_default', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['mdn_default'] = array(
- 'title' => html::label($field_id, Q(rcube_label('reqmdn'))),
- 'content' => $input->show($config['mdn_default']?1:0),
- );
- }
-
- if (!isset($no_override['dsn_default'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_dsn_default';
- $input = new html_checkbox(array('name' => '_dsn_default', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['dsn_default'] = array(
- 'title' => html::label($field_id, Q(rcube_label('reqdsn'))),
- 'content' => $input->show($config['dsn_default']?1:0),
- );
- }
-
- if (!isset($no_override['reply_same_folder'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_reply_same_folder';
- $input = new html_checkbox(array('name' => '_reply_same_folder', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['reply_same_folder'] = array(
- 'title' => html::label($field_id, Q(rcube_label('replysamefolder'))),
- 'content' => $input->show($config['reply_same_folder']?1:0),
- );
- }
-
- if (!isset($no_override['reply_mode'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_reply_mode';
- $select = new html_select(array('name' => '_reply_mode', 'id' => $field_id));
-
- $select->add(rcube_label('replyempty'), -1);
- $select->add(rcube_label('replybottomposting'), 0);
- $select->add(rcube_label('replytopposting'), 1);
-
- $blocks['main']['options']['reply_mode'] = array(
- 'title' => html::label($field_id, Q(rcube_label('whenreplying'))),
- 'content' => $select->show(intval($config['reply_mode'])),
- );
- }
-
- if (!isset($no_override['spellcheck_before_send']) && $config['enable_spellcheck']) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_spellcheck_before_send';
- $input = new html_checkbox(array('name' => '_spellcheck_before_send', 'id' => $field_id, 'value' => 1));
-
- $blocks['spellcheck']['options']['spellcheck_before_send'] = array(
- 'title' => html::label($field_id, Q(rcube_label('spellcheckbeforesend'))),
- 'content' => $input->show($config['spellcheck_before_send']?1:0),
- );
- }
-
- if ($config['enable_spellcheck']) {
- if (!$current) {
- continue 2;
- }
-
- foreach (array('syms', 'nums', 'caps') as $key) {
- $key = 'spellcheck_ignore_'.$key;
- if (!isset($no_override[$key])) {
- $input = new html_checkbox(array('name' => '_'.$key, 'id' => 'rcmfd_'.$key, 'value' => 1));
-
- $blocks['spellcheck']['options'][$key] = array(
- 'title' => html::label($field_id, Q(rcube_label(str_replace('_', '', $key)))),
- 'content' => $input->show($config[$key]?1:0),
- );
- }
- }
- }
-
- if (!isset($no_override['show_sig'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_show_sig';
- $select = new html_select(array('name' => '_show_sig', 'id' => $field_id));
-
- $select->add(rcube_label('never'), 0);
- $select->add(rcube_label('always'), 1);
- $select->add(rcube_label('newmessageonly'), 2);
- $select->add(rcube_label('replyandforwardonly'), 3);
-
- $blocks['sig']['options']['show_sig'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autoaddsignature'))),
- 'content' => $select->show($RCMAIL->config->get('show_sig', 1)),
- );
- }
-
- if (!isset($no_override['strip_existing_sig'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_strip_existing_sig';
- $input = new html_checkbox(array('name' => '_strip_existing_sig', 'id' => $field_id, 'value' => 1));
-
- $blocks['sig']['options']['strip_existing_sig'] = array(
- 'title' => html::label($field_id, Q(rcube_label('replyremovesignature'))),
- 'content' => $input->show($config['strip_existing_sig']?1:0),
- );
- }
-
- if (!isset($no_override['forward_attachment'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_forward_attachment';
- $select = new html_select(array('name' => '_forward_attachment', 'id' => $field_id));
-
- $select->add(rcube_label('inline'), 0);
- $select->add(rcube_label('asattachment'), 1);
-
- $blocks['main']['options']['forward_attachment'] = array(
- 'title' => html::label($field_id, Q(rcube_label('forwardmode'))),
- 'content' => $select->show(intval($config['forward_attachment'])),
- );
- }
-
- if (!isset($no_override['default_font']) || !isset($no_override['default_font_size'])) {
- if (!$current) {
- continue 2;
- }
-
- // Default font size
- $field_id = 'rcmfd_default_font_size';
- $select_default_font_size = new html_select(array('name' => '_default_font_size', 'id' => $field_id));
-
- $fontsizes = array('', '8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt');
- foreach ($fontsizes as $size) {
- $select_default_font_size->add($size, $size);
- }
-
- // Default font
- $field_id = 'rcmfd_default_font';
- $select_default_font = new html_select(array('name' => '_default_font', 'id' => $field_id));
- $select_default_font->add('', '');
-
- $fonts = rcube_fontdefs();
- foreach ($fonts as $fname => $font) {
- $select_default_font->add($fname, $fname);
- }
-
- $blocks['main']['options']['default_font'] = array(
- 'title' => html::label($field_id, Q(rcube_label('defaultfont'))),
- 'content' => $select_default_font->show($RCMAIL->config->get('default_font', 1)) .
- $select_default_font_size->show($RCMAIL->config->get('default_font_size', 1))
- );
- }
-
- if (!isset($no_override['reply_all_mode'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_reply_all_mode';
- $select = new html_select(array('name' => '_reply_all_mode', 'id' => $field_id));
-
- $select->add(rcube_label('replyalldefault'), 0);
- $select->add(rcube_label('replyalllist'), 1);
-
- $blocks['main']['options']['reply_all_mode'] = array(
- 'title' => html::label($field_id, Q(rcube_label('replyallmode'))),
- 'content' => $select->show(intval($config['reply_all_mode'])),
- );
- }
-
- break;
-
- // Addressbook config
- case 'addressbook':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- if (!isset($no_override['default_addressbook'])
- && (!$current || ($books = $RCMAIL->get_address_sources(true, true)))
- ) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_default_addressbook';
- $select = new html_select(array('name' => '_default_addressbook', 'id' => $field_id));
-
- foreach ($books as $book) {
- $select->add(html_entity_decode($book['name'], ENT_COMPAT, 'UTF-8'), $book['id']);
- }
-
- $blocks['main']['options']['default_addressbook'] = array(
- 'title' => html::label($field_id, Q(rcube_label('defaultabook'))),
- 'content' => $select->show($config['default_addressbook']),
- );
- }
-
- // show addressbook listing mode selection
- if (!isset($no_override['addressbook_name_listing'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_addressbook_name_listing';
- $select = new html_select(array('name' => '_addressbook_name_listing', 'id' => $field_id));
-
- $select->add(rcube_label('name'), 0);
- $select->add(rcube_label('firstname') . ' ' . rcube_label('surname'), 1);
- $select->add(rcube_label('surname') . ' ' . rcube_label('firstname'), 2);
- $select->add(rcube_label('surname') . ', ' . rcube_label('firstname'), 3);
-
- $blocks['main']['options']['list_name_listing'] = array(
- 'title' => html::label($field_id, Q(rcube_label('listnamedisplay'))),
- 'content' => $select->show($config['addressbook_name_listing']),
- );
- }
-
- // show addressbook sort column
- if (!isset($no_override['addressbook_sort_col'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_addressbook_sort_col';
- $select = new html_select(array('name' => '_addressbook_sort_col', 'id' => $field_id));
-
- $select->add(rcube_label('name'), 'name');
- $select->add(rcube_label('firstname'), 'firstname');
- $select->add(rcube_label('surname'), 'surname');
-
- $blocks['main']['options']['sort_col'] = array(
- 'title' => html::label($field_id, Q(rcube_label('listsorting'))),
- 'content' => $select->show($config['addressbook_sort_col']),
- );
- }
-
- // show addressbook page size selection
- if (!isset($no_override['addressbook_pagesize'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_addressbook_pagesize';
- $input = new html_inputfield(array('name' => '_addressbook_pagesize', 'id' => $field_id, 'size' => 5));
- $size = intval($config['addressbook_pagesize'] ? $config['addressbook_pagesize'] : $config['pagesize']);
-
- $blocks['main']['options']['pagesize'] = array(
- 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
- 'content' => $input->show($size ? $size : 50),
- );
- }
-
- if (!isset($no_override['autocomplete_single'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_autocomplete_single';
- $checkbox = new html_checkbox(array('name' => '_autocomplete_single', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['autocomplete_single'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autocompletesingle'))),
- 'content' => $checkbox->show($config['autocomplete_single']?1:0),
- );
- }
- break;
-
- // Special IMAP folders
- case 'folders':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- if (!isset($no_override['show_real_foldernames'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'show_real_foldernames';
- $input = new html_checkbox(array('name' => '_show_real_foldernames', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['show_real_foldernames'] = array(
- 'title' => html::label($field_id, Q(rcube_label('show_real_foldernames'))),
- 'content' => $input->show($config['show_real_foldernames']?1:0),
- );
- }
-
- // Configure special folders
- if (!isset($no_override['default_folders']) && $current) {
- $select = rcmail_mailbox_select(array(
- 'noselection' => '---',
- 'realnames' => true,
- 'maxlength' => 30,
- 'folder_filter' => 'mail',
- 'folder_rights' => 'w',
- ));
- }
-
- // #1486114, #1488279, #1489219
- $onchange = "if ($(this).val() == 'INBOX') $(this).val('')";
-
- if (!isset($no_override['drafts_mbox'])) {
- if (!$current) {
- continue 2;
- }
-
- $blocks['main']['options']['drafts_mbox'] = array(
- 'title' => Q(rcube_label('drafts')),
- 'content' => $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox", 'onchange' => $onchange)),
- );
- }
-
- if (!isset($no_override['sent_mbox'])) {
- if (!$current) {
- continue 2;
- }
-
- $blocks['main']['options']['sent_mbox'] = array(
- 'title' => Q(rcube_label('sent')),
- 'content' => $select->show($config['sent_mbox'], array('name' => "_sent_mbox", 'onchange' => '')),
- );
- }
-
- if (!isset($no_override['junk_mbox'])) {
- if (!$current) {
- continue 2;
- }
-
- $blocks['main']['options']['junk_mbox'] = array(
- 'title' => Q(rcube_label('junk')),
- 'content' => $select->show($config['junk_mbox'], array('name' => "_junk_mbox", 'onchange' => $onchange)),
- );
- }
-
- if (!isset($no_override['trash_mbox'])) {
- if (!$current) {
- continue 2;
- }
-
- $blocks['main']['options']['trash_mbox'] = array(
- 'title' => Q(rcube_label('trash')),
- 'content' => $select->show($config['trash_mbox'], array('name' => "_trash_mbox", 'onchange' => $onchange)),
- );
- }
- break;
-
- // Server settings
- case 'server':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'maintenance' => array('name' => Q(rcube_label('maintenance'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- if (!isset($no_override['read_when_deleted'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_read_deleted';
- $input = new html_checkbox(array('name' => '_read_when_deleted', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['read_when_deleted'] = array(
- 'title' => html::label($field_id, Q(rcube_label('readwhendeleted'))),
- 'content' => $input->show($config['read_when_deleted']?1:0),
- );
- }
-
- if (!isset($no_override['flag_for_deletion'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_flag_for_deletion';
- $input = new html_checkbox(array('name' => '_flag_for_deletion', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['flag_for_deletion'] = array(
- 'title' => html::label($field_id, Q(rcube_label('flagfordeletion'))),
- 'content' => $input->show($config['flag_for_deletion']?1:0),
- );
- }
-
- // don't show deleted messages
- if (!isset($no_override['skip_deleted'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_skip_deleted';
- $input = new html_checkbox(array('name' => '_skip_deleted', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['skip_deleted'] = array(
- 'title' => html::label($field_id, Q(rcube_label('skipdeleted'))),
- 'content' => $input->show($config['skip_deleted']?1:0),
- );
- }
-
- if (!isset($no_override['delete_always'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_delete_always';
- $input = new html_checkbox(array('name' => '_delete_always', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['delete_always'] = array(
- 'title' => html::label($field_id, Q(rcube_label('deletealways'))),
- 'content' => $input->show($config['delete_always']?1:0),
- );
- }
-
- if (!isset($no_override['delete_junk'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_delete_junk';
- $input = new html_checkbox(array('name' => '_delete_junk', 'id' => $field_id, 'value' => 1));
-
- $blocks['main']['options']['delete_junk'] = array(
- 'title' => html::label($field_id, Q(rcube_label('deletejunk'))),
- 'content' => $input->show($config['delete_junk']?1:0),
- );
- }
-
- // Trash purging on logout
- if (!isset($no_override['logout_purge'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_logout_purge';
- $input = new html_checkbox(array('name' => '_logout_purge', 'id' => $field_id, 'value' => 1));
-
- $blocks['maintenance']['options']['logout_purge'] = array(
- 'title' => html::label($field_id, Q(rcube_label('logoutclear'))),
- 'content' => $input->show($config['logout_purge']?1:0),
- );
- }
-
- // INBOX compacting on logout
- if (!isset($no_override['logout_expunge'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_logout_expunge';
- $input = new html_checkbox(array('name' => '_logout_expunge', 'id' => $field_id, 'value' => 1));
-
- $blocks['maintenance']['options']['logout_expunge'] = array(
- 'title' => html::label($field_id, Q(rcube_label('logoutcompact'))),
- 'content' => $input->show($config['logout_expunge']?1:0),
- );
- }
+ if (!isset($no_override['refresh_interval'])) {
+ $field_id = 'rcmfd_refresh_interval';
+ $select_refresh_interval = new html_select(array('name' => '_refresh_interval', 'id' => $field_id));
+
+ $select_refresh_interval->add(rcube_label('never'), 0);
+ foreach (array(1, 3, 5, 10, 15, 30, 60) as $min) {
+ if (!$config['min_refresh_interval'] || $config['min_refresh_interval'] <= $min * 60) {
+ $label = rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min)));
+ $select_refresh_interval->add($label, $min);
}
+ }
+
+ $blocks['main']['options']['refresh_interval'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('refreshinterval'))),
+ 'content' => $select_refresh_interval->show($config['refresh_interval']/60),
+ );
+ }
- $found = false;
- $data = $RCMAIL->plugins->exec_hook('preferences_list',
- array('section' => $sect['id'], 'blocks' => $blocks, 'current' => $current));
-
- $advanced_prefs = $config['advanced_prefs'];
-
- // create output
- foreach ($data['blocks'] as $key => $block) {
- if (!empty($block['content']) || !empty($block['options'])) {
- $found = true;
- }
- // move some options to the 'advanced' block as configured by admin
- if ($key != 'advanced') {
- foreach ($advanced_prefs as $opt) {
- if ($block['options'][$opt]) {
- $data['blocks']['advanced']['options'][$opt] = $block['options'][$opt];
- unset($data['blocks'][$key]['options'][$opt]);
- }
- }
- }
+ // show drop-down for available skins
+ if (!isset($no_override['skin'])) {
+ $skins = rcmail_get_skins();
+
+ if (count($skins) > 1) {
+ $field_id = 'rcmfd_skin';
+ $input_skin = new html_radiobutton(array('name'=>'_skin'));
+
+ $blocks['skin'] = array('name' => Q(rcube_label('skin')),);
+
+ foreach($skins as $skin) {
+ $thumbnail = "./skins/$skin/thumbnail.png";
+ if (!is_file($thumbnail))
+ $thumbnail = './program/resources/blank.gif';
+
+ $skinname = ucfirst($skin);
+ $author_link = $license_link = '';
+ $meta = @json_decode(@file_get_contents("./skins/$skin/meta.json"), true);
+ if (is_array($meta) && $meta['name']) {
+ $skinname = $meta['name'];
+ $author_link = $meta['url'] ? html::a(array('href' => $meta['url'], 'target' => '_blank'), Q($meta['author'])) : Q($meta['author']);
+ $license_link = $meta['license-url'] ? html::a(array('href' => $meta['license-url'], 'target' => '_blank'), Q($meta['license'])) : Q($meta['license']);
+ }
+
+ $blocks['skin']['options'][$skin]['content'] = html::label(array('class' => 'skinselection'),
+ html::span('skinitem', $input_skin->show($config['skin'], array('value' => $skin, 'id' => $field_id.$skin))) .
+ html::span('skinitem', html::img(array('src' => $thumbnail, 'class' => 'skinthumbnail', 'alt' => $skin, 'width' => 64, 'height' => 64))) .
+ html::span('skinitem', html::span('skinname', Q($skinname)) . html::br() .
+ html::span('skinauthor', $author_link ? 'by ' . $author_link : '') . html::br() .
+ html::span('skinlicense', $license_link ? rcube_label('license').':&nbsp;' . $license_link : ''))
+ );
}
+ }
+ }
+
+ $product_name = $RCMAIL->config->get('product_name', 'Roundcube Webmail');
+ $RCMAIL->output->add_script(sprintf("%s.check_protocol_handler('%s', '#mailtoprotohandler');",
+ JS_OBJECT_NAME, JQ($product_name)), 'foot');
+
+ $blocks['browser'] = array(
+ 'name' => Q(rcube_label('browseroptions')),
+ 'options' => array('mailtoprotohandler' => array(
+ 'content' => html::a(array(
+ 'href' => '#',
+ 'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))),
+ )),
+ );
+
+ break;
+
+ // Mailbox view (mail screen)
+ case 'mailbox':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ 'new_message' => array('name' => Q(rcube_label('newmessage'))),
+ );
+
+ // show config parameter for preview pane
+ if (!isset($no_override['preview_pane'])) {
+ $field_id = 'rcmfd_preview';
+ $input_preview = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1,
+ 'onchange' => "$('#rcmfd_preview_pane_mark_read').prop('disabled', !this.checked)"));
- if (!$found)
- unset($sections[$idx]);
- else
- $sections[$idx]['blocks'] = $data['blocks'];
+ $blocks['main']['options']['preview_pane'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('previewpane'))),
+ 'content' => $input_preview->show($config['preview_pane']?1:0),
+ );
}
- return array($sections, $plugin['cols']);
-}
+ // show config parameter for preview pane auto mark as read delay
+ if (!isset($no_override['preview_pane_mark_read'])) {
+ // apply default if config option is not set at all
+ $config['preview_pane_mark_read'] = $RCMAIL->config->get('preview_pane_mark_read', 0);
+ $field_id = 'rcmfd_preview_pane_mark_read';
+ $select_delay = new html_select(array('name' => '_preview_pane_mark_read', 'id' => $field_id,
+ 'disabled' => $config['preview_pane']?0:1));
-function rcmail_get_skins()
-{
- $path = RCUBE_INSTALL_PATH . 'skins';
- $skins = array();
- $dir = opendir($path);
+ $select_delay->add(rcube_label('never'), '-1');
+ $select_delay->add(rcube_label('immediately'), 0);
+ foreach(array(5, 10, 20, 30) as $sec)
+ $select_delay->add(rcube_label(array('name' => 'afternseconds', 'vars' => array('n' => $sec))), $sec);
+
+ $blocks['main']['options']['preview_pane_mark_read'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('previewpanemarkread'))),
+ 'content' => $select_delay->show(intval($config['preview_pane_mark_read'])),
+ );
+ }
+
+ if (!isset($no_override['mdn_requests'])) {
+ $field_id = 'rcmfd_mdn_requests';
+ $select_mdn_requests = new html_select(array('name' => '_mdn_requests', 'id' => $field_id));
+ $select_mdn_requests->add(rcube_label('askuser'), 0);
+ $select_mdn_requests->add(rcube_label('autosend'), 1);
+ $select_mdn_requests->add(rcube_label('autosendknown'), 3);
+ $select_mdn_requests->add(rcube_label('autosendknownignore'), 4);
+ $select_mdn_requests->add(rcube_label('ignore'), 2);
+
+ $blocks['main']['options']['mdn_requests'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('mdnrequests'))),
+ 'content' => $select_mdn_requests->show($config['mdn_requests']),
+ );
+ }
+
+ $storage = $RCMAIL->get_storage();
+ $threading_supported = $storage->get_capability('THREAD');
+
+ if (!isset($no_override['autoexpand_threads']) && $threading_supported) {
+ $field_id = 'rcmfd_autoexpand_threads';
+ $select_autoexpand_threads = new html_select(array('name' => '_autoexpand_threads', 'id' => $field_id));
+ $select_autoexpand_threads->add(rcube_label('never'), 0);
+ $select_autoexpand_threads->add(rcube_label('do_expand'), 1);
+ $select_autoexpand_threads->add(rcube_label('expand_only_unread'), 2);
+
+ $blocks['main']['options']['autoexpand_threads'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('autoexpand_threads'))),
+ 'content' => $select_autoexpand_threads->show($config['autoexpand_threads']),
+ );
+ }
+
+ // show page size selection
+ if (!isset($no_override['mail_pagesize'])) {
+ $field_id = 'rcmfd_mail_pagesize';
+ $input_pagesize = new html_inputfield(array('name' => '_mail_pagesize', 'id' => $field_id, 'size' => 5));
+
+ $size = intval($config['mail_pagesize'] ? $config['mail_pagesize'] : $config['pagesize']);
+
+ $blocks['main']['options']['pagesize'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
+ 'content' => $input_pagesize->show($size ? $size : 50),
+ );
+ }
+ if (!isset($no_override['check_all_folders'])) {
+ $field_id = 'rcmfd_check_all_folders';
+ $input_check_all = new html_checkbox(array('name' => '_check_all_folders', 'id' => $field_id, 'value' => 1));
+
+ $blocks['new_message']['options']['check_all_folders'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('checkallfolders'))),
+ 'content' => $input_check_all->show($config['check_all_folders']?1:0),
+ );
+ }
+
+ break;
+
+ // Message viewing
+ case 'mailview':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ );
+
+ // show checkbox to open message view in new window
+ if (!isset($no_override['message_extwin'])) {
+ $field_id = 'rcmfd_message_extwin';
+ $input_msgextwin = new html_checkbox(array('name' => '_message_extwin', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['message_extwin'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('showinextwin'))),
+ 'content' => $input_msgextwin->show($config['message_extwin']?1:0),
+ );
+ }
+
+ // show checkbox for HTML/plaintext messages
+ if (!isset($no_override['prefer_html'])) {
+ $field_id = 'rcmfd_htmlmsg';
+ $input_preferhtml = new html_checkbox(array('name' => '_prefer_html', 'id' => $field_id, 'value' => 1,
+ 'onchange' => "$('#rcmfd_show_images').prop('disabled', !this.checked).val(0)"));
+
+ $blocks['main']['options']['prefer_html'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('preferhtml'))),
+ 'content' => $input_preferhtml->show($config['prefer_html']?1:0),
+ );
+ }
+
+ if (!isset($no_override['default_charset'])) {
+ $field_id = 'rcmfd_default_charset';
+
+ $blocks['main']['options']['default_charset'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('defaultcharset'))),
+ 'content' => $RCMAIL->output->charset_selector(array(
+ 'name' => '_default_charset', 'selected' => $config['default_charset']
+ ))
+ );
+ }
+
+ if (!isset($no_override['show_images'])) {
+ $field_id = 'rcmfd_show_images';
+ $input_show_images = new html_select(array('name' => '_show_images', 'id' => $field_id,
+ 'disabled' => !$config['prefer_html']));
+ $input_show_images->add(rcube_label('never'), 0);
+ $input_show_images->add(rcube_label('fromknownsenders'), 1);
+ $input_show_images->add(rcube_label('always'), 2);
+
+ $blocks['main']['options']['show_images'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('showremoteimages'))),
+ 'content' => $input_show_images->show($config['prefer_html'] ? $config['show_images'] : 0),
+ );
+ }
+
+ if (!isset($no_override['inline_images'])) {
+ $field_id = 'rcmfd_inline_images';
+ $input_inline_images = new html_checkbox(array('name' => '_inline_images', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['inline_images'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('showinlineimages'))),
+ 'content' => $input_inline_images->show($config['inline_images']?1:0),
+ );
+ }
+
+ // "display after delete" checkbox
+ if (!isset($no_override['display_next'])) {
+ $field_id = 'rcmfd_displaynext';
+ $input_displaynext = new html_checkbox(array('name' => '_display_next', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['display_next'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('displaynext'))),
+ 'content' => $input_displaynext->show($config['display_next']?1:0),
+ );
+ }
+
+ break;
+
+ // Mail composition
+ case 'compose':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ 'sig' => array('name' => Q(rcube_label('signatureoptions'))),
+ 'spellcheck' => array('name' => Q(rcube_label('spellcheckoptions'))),
+ );
+
+ // show checkbox to compose messages in a new window
+ if (!isset($no_override['compose_extwin'])) {
+ $field_id = 'rcmfdcompose_extwin';
+ $input_compextwin = new html_checkbox(array('name' => '_compose_extwin', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['compose_extwin'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('composeextwin'))),
+ 'content' => $input_compextwin->show($config['compose_extwin']?1:0),
+ );
+ }
+
+ if (!isset($no_override['htmleditor'])) {
+ $field_id = 'rcmfd_htmleditor';
+ $select_htmleditor = new html_select(array('name' => '_htmleditor', 'id' => $field_id));
+ $select_htmleditor->add(rcube_label('never'), 0);
+ $select_htmleditor->add(rcube_label('always'), 1);
+ $select_htmleditor->add(rcube_label('htmlonreply'), 2);
+ $select_htmleditor->add(rcube_label('htmlonreplyandforward'), 3);
+
+ $blocks['main']['options']['htmleditor'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('htmleditor'))),
+ 'content' => $select_htmleditor->show(intval($config['htmleditor'])),
+ );
+ }
+
+ if (!isset($no_override['draft_autosave'])) {
+ $field_id = 'rcmfd_autosave';
+ $select_autosave = new html_select(array('name' => '_draft_autosave', 'id' => $field_id, 'disabled' => empty($config['drafts_mbox'])));
+ $select_autosave->add(rcube_label('never'), 0);
+ foreach (array(1, 3, 5, 10) as $i => $min)
+ $select_autosave->add(rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))), $min*60);
+
+ $blocks['main']['options']['draft_autosave'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('autosavedraft'))),
+ 'content' => $select_autosave->show($config['draft_autosave']),
+ );
+ }
+
+ if (!isset($no_override['mime_param_folding'])) {
+ $field_id = 'rcmfd_param_folding';
+ $select_param_folding = new html_select(array('name' => '_mime_param_folding', 'id' => $field_id));
+ $select_param_folding->add(rcube_label('2231folding'), 0);
+ $select_param_folding->add(rcube_label('miscfolding'), 1);
+ $select_param_folding->add(rcube_label('2047folding'), 2);
+
+ $blocks['main']['options']['mime_param_folding'] = array(
+ 'advanced' => true,
+ 'title' => html::label($field_id, Q(rcube_label('mimeparamfolding'))),
+ 'content' => $select_param_folding->show($config['mime_param_folding']),
+ );
+ }
+
+ if (!isset($no_override['force_7bit'])) {
+ $field_id = 'rcmfd_force_7bit';
+ $input_7bit = new html_checkbox(array('name' => '_force_7bit', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['force_7bit'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('force7bit'))),
+ 'content' => $input_7bit->show($config['force_7bit']?1:0),
+ );
+ }
+
+ if (!isset($no_override['mdn_default'])) {
+ $field_id = 'rcmfd_mdn_default';
+ $input_mdn = new html_checkbox(array('name' => '_mdn_default', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['mdn_default'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('reqmdn'))),
+ 'content' => $input_mdn->show($config['mdn_default']?1:0),
+ );
+ }
+
+ if (!isset($no_override['dsn_default'])) {
+ $field_id = 'rcmfd_dsn_default';
+ $input_dsn = new html_checkbox(array('name' => '_dsn_default', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['dsn_default'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('reqdsn'))),
+ 'content' => $input_dsn->show($config['dsn_default']?1:0),
+ );
+ }
+
+ if (!isset($no_override['reply_same_folder'])) {
+ $field_id = 'rcmfd_reply_same_folder';
+ $input_reply_same_folder = new html_checkbox(array('name' => '_reply_same_folder', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['reply_same_folder'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('replysamefolder'))),
+ 'content' => $input_reply_same_folder->show($config['reply_same_folder']?1:0),
+ );
+ }
- if (!$dir) {
- return false;
+ if (!isset($no_override['reply_mode'])) {
+ $field_id = 'rcmfd_reply_mode';
+ $select_replymode = new html_select(array('name' => '_reply_mode', 'id' => $field_id));
+ $select_replymode->add(rcube_label('replyempty'), -1);
+ $select_replymode->add(rcube_label('replybottomposting'), 0);
+ $select_replymode->add(rcube_label('replytopposting'), 1);
+
+ $blocks['main']['options']['reply_mode'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('whenreplying'))),
+ 'content' => $select_replymode->show(intval($config['reply_mode'])),
+ );
}
- while (($file = readdir($dir)) !== false) {
- $filename = $path.'/'.$file;
- if (!preg_match('/^\./', $file) && is_dir($filename) && is_readable($filename)) {
- $skins[] = $file;
+ if (!isset($no_override['spellcheck_before_send']) && $config['enable_spellcheck']) {
+ $field_id = 'rcmfd_spellcheck_before_send';
+ $input_spellcheck = new html_checkbox(array('name' => '_spellcheck_before_send', 'id' => $field_id, 'value' => 1));
+
+ $blocks['spellcheck']['options']['spellcheck_before_send'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('spellcheckbeforesend'))),
+ 'content' => $input_spellcheck->show($config['spellcheck_before_send']?1:0),
+ );
+ }
+
+ if ($config['enable_spellcheck']) {
+ foreach (array('syms', 'nums', 'caps') as $key) {
+ $key = 'spellcheck_ignore_'.$key;
+ if (!isset($no_override[$key])) {
+ $input_spellcheck = new html_checkbox(array('name' => '_'.$key, 'id' => 'rcmfd_'.$key, 'value' => 1));
+
+ $blocks['spellcheck']['options'][$key] = array(
+ 'title' => html::label($field_id, Q(rcube_label(str_replace('_', '', $key)))),
+ 'content' => $input_spellcheck->show($config[$key]?1:0),
+ );
}
+ }
+ }
+
+ if (!isset($no_override['show_sig'])) {
+ $field_id = 'rcmfd_show_sig';
+ $select_show_sig = new html_select(array('name' => '_show_sig', 'id' => $field_id));
+ $select_show_sig->add(rcube_label('never'), 0);
+ $select_show_sig->add(rcube_label('always'), 1);
+ $select_show_sig->add(rcube_label('newmessageonly'), 2);
+ $select_show_sig->add(rcube_label('replyandforwardonly'), 3);
+
+ $blocks['sig']['options']['show_sig'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('autoaddsignature'))),
+ 'content' => $select_show_sig->show($RCMAIL->config->get('show_sig', 1)),
+ );
+ }
+
+ if (!isset($no_override['strip_existing_sig'])) {
+ $field_id = 'rcmfd_strip_existing_sig';
+ $input_stripexistingsig = new html_checkbox(array('name' => '_strip_existing_sig', 'id' => $field_id, 'value' => 1));
+
+ $blocks['sig']['options']['strip_existing_sig'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('replyremovesignature'))),
+ 'content' => $input_stripexistingsig->show($config['strip_existing_sig']?1:0),
+ );
+ }
+
+ if (!isset($no_override['forward_attachment'])) {
+ $field_id = 'rcmfd_forward_attachment';
+ $select = new html_select(array('name' => '_forward_attachment', 'id' => $field_id));
+ $select->add(rcube_label('inline'), 0);
+ $select->add(rcube_label('asattachment'), 1);
+
+ $blocks['main']['options']['forward_attachment'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('forwardmode'))),
+ 'content' => $select->show(intval($config['forward_attachment'])),
+ );
+ }
+
+ if (!isset($no_override['default_font'])) {
+ $field_id = 'rcmfd_default_font';
+ $fonts = rcube_fontdefs();
+ $selected = $config['default_font'];
+
+ $select = '<select name="_default_font" id="'.$field_id.'">';
+ $select .= '<option value=""' . (!$selected ? ' selected="selected"' : '') . '>---</option>';
+ foreach ($fonts as $fname => $font)
+ $select .= '<option value="'.$fname.'"'
+ . ($fname == $selected ? ' selected="selected"' : '')
+ . ' style=\'font-family: ' . $font . '\'>'
+ . Q($fname) . '</option>';
+ $select .= '</select>';
+
+ $blocks['main']['options']['default_font'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('defaultfont'))),
+ 'content' => $select
+ );
+ }
+
+ break;
+
+
+ // Addressbook config
+ case 'addressbook':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ );
+
+ if (!isset($no_override['default_addressbook'])
+ && ($books = $RCMAIL->get_address_sources(true, true))
+ ) {
+ $field_id = 'rcmfd_default_addressbook';
+ $select_abook = new html_select(array('name' => '_default_addressbook', 'id' => $field_id));
+
+ foreach ($books as $book) {
+ $select_abook->add(html_entity_decode($book['name'], ENT_COMPAT, 'UTF-8'), $book['id']);
+ }
+
+ $blocks['main']['options']['default_addressbook'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('defaultabook'))),
+ 'content' => $select_abook->show($config['default_addressbook']),
+ );
+ }
+
+ // show addressbook listing mode selection
+ if (!isset($no_override['addressbook_name_listing'])) {
+ $field_id = 'rcmfd_addressbook_name_listing';
+ $select_listing = new html_select(array('name' => '_addressbook_name_listing', 'id' => $field_id));
+ $select_listing->add(rcube_label('name'), 0);
+ $select_listing->add(rcube_label('firstname') . ' ' . rcube_label('surname'), 1);
+ $select_listing->add(rcube_label('surname') . ' ' . rcube_label('firstname'), 2);
+ $select_listing->add(rcube_label('surname') . ', ' . rcube_label('firstname'), 3);
+
+ $blocks['main']['options']['list_name_listing'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('listnamedisplay'))),
+ 'content' => $select_listing->show($config['addressbook_name_listing']),
+ );
+ }
+
+ // show addressbook sort column
+ if (!isset($no_override['addressbook_sort_col'])) {
+ $field_id = 'rcmfd_addressbook_sort_col';
+ $select_sort = new html_select(array('name' => '_addressbook_sort_col', 'id' => $field_id));
+ $select_sort->add(rcube_label('name'), 'name');
+ $select_sort->add(rcube_label('firstname'), 'firstname');
+ $select_sort->add(rcube_label('surname'), 'surname');
+
+ $blocks['main']['options']['sort_col'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('listsorting'))),
+ 'content' => $select_sort->show($config['addressbook_sort_col']),
+ );
+ }
+
+ // show addressbook page size selection
+ if (!isset($no_override['addressbook_pagesize'])) {
+ $field_id = 'rcmfd_addressbook_pagesize';
+ $input_pagesize = new html_inputfield(array('name' => '_addressbook_pagesize', 'id' => $field_id, 'size' => 5));
+
+ $size = intval($config['addressbook_pagesize'] ? $config['addressbook_pagesize'] : $config['pagesize']);
+
+ $blocks['main']['options']['pagesize'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
+ 'content' => $input_pagesize->show($size ? $size : 50),
+ );
+ }
+
+ if (!isset($no_override['autocomplete_single'])) {
+ $field_id = 'rcmfd_autocomplete_single';
+ $checkbox = new html_checkbox(array('name' => '_autocomplete_single', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['autocomplete_single'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('autocompletesingle'))),
+ 'content' => $checkbox->show($config['autocomplete_single']?1:0),
+ );
+ }
+
+ break;
+
+ // Special IMAP folders
+ case 'folders':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ );
+
+ // Configure special folders
+ if (!isset($no_override['default_folders'])) {
+ // load folders list only when needed
+ if ($current) {
+ $select = rcmail_mailbox_select(array(
+ 'noselection' => '---',
+ 'realnames' => true,
+ 'maxlength' => 30,
+ 'folder_filter' => 'mail',
+ 'folder_rights' => 'w',
+ // #1486114, #1488279
+ 'onchange' => "if ($(this).val() == 'INBOX') $(this).val('')",
+ ));
+ }
+ else // dummy select
+ $select = new html_select();
+
+ if (!isset($no_override['drafts_mbox']))
+ $blocks['main']['options']['drafts_mbox'] = array(
+ 'title' => Q(rcube_label('drafts')),
+ 'content' => $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox")),
+ );
+
+ if (!isset($no_override['sent_mbox']))
+ $blocks['main']['options']['sent_mbox'] = array(
+ 'title' => Q(rcube_label('sent')),
+ 'content' => $select->show($config['sent_mbox'], array('name' => "_sent_mbox")),
+ );
+
+ if (!isset($no_override['junk_mbox']))
+ $blocks['main']['options']['junk_mbox'] = array(
+ 'title' => Q(rcube_label('junk')),
+ 'content' => $select->show($config['junk_mbox'], array('name' => "_junk_mbox")),
+ );
+
+ if (!isset($no_override['trash_mbox']))
+ $blocks['main']['options']['trash_mbox'] = array(
+ 'title' => Q(rcube_label('trash')),
+ 'content' => $select->show($config['trash_mbox'], array('name' => "_trash_mbox")),
+ );
+ }
+
+ break;
+
+ // Server settings
+ case 'server':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ 'maintenance' => array('name' => Q(rcube_label('maintenance'))),
+ );
+
+ if (!isset($no_override['read_when_deleted'])) {
+ $field_id = 'rcmfd_read_deleted';
+ $input_readdeleted = new html_checkbox(array('name' => '_read_when_deleted', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['read_when_deleted'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('readwhendeleted'))),
+ 'content' => $input_readdeleted->show($config['read_when_deleted']?1:0),
+ );
+ }
+
+ if (!isset($no_override['flag_for_deletion'])) {
+ $field_id = 'rcmfd_flag_for_deletion';
+ $input_flagfordeletion = new html_checkbox(array('name' => '_flag_for_deletion', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['flag_for_deletion'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('flagfordeletion'))),
+ 'content' => $input_flagfordeletion->show($config['flag_for_deletion']?1:0),
+ );
+ }
+
+ // don't show deleted messages
+ if (!isset($no_override['skip_deleted'])) {
+ $field_id = 'rcmfd_skip_deleted';
+ $input_purge = new html_checkbox(array('name' => '_skip_deleted', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['skip_deleted'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('skipdeleted'))),
+ 'content' => $input_purge->show($config['skip_deleted']?1:0),
+ );
+ }
+
+ if (!isset($no_override['delete_always'])) {
+ $field_id = 'rcmfd_delete_always';
+ $input_delete_always = new html_checkbox(array('name' => '_delete_always', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['delete_always'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('deletealways'))),
+ 'content' => $input_delete_always->show($config['delete_always']?1:0),
+ );
+ }
+
+ if (!isset($no_override['delete_junk'])) {
+ $field_id = 'rcmfd_delete_junk';
+ $input_delete_junk = new html_checkbox(array('name' => '_delete_junk', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['delete_junk'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('deletejunk'))),
+ 'content' => $input_delete_junk->show($config['delete_junk']?1:0),
+ );
+ }
+
+ // Trash purging on logout
+ if (!isset($no_override['logout_purge'])) {
+ $field_id = 'rcmfd_logout_purge';
+ $input_purge = new html_checkbox(array('name' => '_logout_purge', 'id' => $field_id, 'value' => 1));
+
+ $blocks['maintenance']['options']['logout_purge'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('logoutclear'))),
+ 'content' => $input_purge->show($config['logout_purge']?1:0),
+ );
+ }
+
+ // INBOX compacting on logout
+ if (!isset($no_override['logout_expunge'])) {
+ $field_id = 'rcmfd_logout_expunge';
+ $input_expunge = new html_checkbox(array('name' => '_logout_expunge', 'id' => $field_id, 'value' => 1));
+
+ $blocks['maintenance']['options']['logout_expunge'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('logoutcompact'))),
+ 'content' => $input_expunge->show($config['logout_expunge']?1:0),
+ );
+ }
+
+ break;
}
- closedir($dir);
+ $data = $RCMAIL->plugins->exec_hook('preferences_list', array('section' => $sect['id'], 'blocks' => $blocks));
+ $found = false;
+
+ // create output
+ foreach ($data['blocks'] as $block) {
+ if (!empty($block['content']) || !empty($block['options'])) {
+ $found = true;
+ break;
+ }
+ }
+
+ if (!$found)
+ unset($sections[$idx]);
+ else
+ $sections[$idx]['blocks'] = $data['blocks'];
+ }
- return $skins;
+ return array($sections, $plugin['cols']);
+}
+
+
+function rcmail_get_skins()
+{
+ $path = 'skins';
+ $skins = array();
+
+ $dir = opendir($path);
+
+ if (!$dir)
+ return false;
+
+ while (($file = readdir($dir)) !== false)
+ {
+ $filename = $path.'/'.$file;
+ if (!preg_match('/^\./', $file) && is_dir($filename) && is_readable($filename))
+ $skins[] = $file;
+ }
+
+ closedir($dir);
+
+ return $skins;
}
@@ -1274,70 +974,12 @@ function rcmail_update_folder_row($name, $oldname=null, $subscribe=false, $class
$name_utf8, $display_name, $protected, $class_name);
}
-/**
- * Render the list of settings sections (AKA tabs)
- */
-function rcmail_settings_tabs($attrib)
-{
- global $RCMAIL, $OUTPUT;
-
- // add default attributes
- $attrib += array('tagname' => 'span', 'idprefix' => 'settingstab', 'selclass' => 'selected');
-
- $default_actions = array(
- array('command' => 'preferences', 'type' => 'link', 'label' => 'preferences', 'title' => 'editpreferences'),
- array('command' => 'folders', 'type' => 'link', 'label' => 'folders', 'title' => 'managefolders'),
- array('command' => 'identities', 'type' => 'link', 'label' => 'identities', 'title' => 'manageidentities'),
- array('command' => 'responses', 'type' => 'link', 'label' => 'responses', 'title' => 'editresponses'),
- );
-
- // get all identites from DB and define list of cols to be displayed
- $plugin = $RCMAIL->plugins->exec_hook('settings_actions', array(
- 'actions' => $default_actions,
- 'attrib' => $attrib,
- ));
-
- $attrib = $plugin['attrib'];
- $tagname = $attrib['tagname'];
- $tabs = array();
-
- foreach ($plugin['actions'] as $k => $action) {
- if (!$action['command'] && !$action['href'] && $action['action']) {
- $action['href'] = $RCMAIL->url(array('_action' => $action['action']));
- }
-
- $button = $OUTPUT->button($action);
- $attr = $attrib;
-
- $cmd = $action['action'] ? $action['action'] : $action['command'];
- $id = $action['id'] ? $action['id'] : $cmd;
- if (!empty($id)) {
- $attr['id'] = preg_replace('/[^a-z0-9]/i', '', $attrib['idprefix'] . $id);
- }
- $classnames = array($attrib['class']);
- if (!empty($action['class'])) {
- $classnames[] = $action['class'];
- }
- else if (!empty($cmd)) {
- $classnames[] = $cmd;
- }
- if ($RCMAIL->action == $cmd) {
- $classnames[] = $attrib['selclass'];
- }
- $attr['class'] = join(' ', $classnames);
- $tabs[] = html::tag($tagname, $attr, $button, html::$common_attrib);
- }
-
- return join('', $tabs);
-}
-
// register UI objects
$OUTPUT->add_handlers(array(
- 'settingstabs' => 'rcmail_settings_tabs',
- 'prefsframe' => 'rcmail_preferences_frame',
- 'sectionslist' => 'rcmail_sections_list',
- 'identitieslist' => 'rcmail_identities_list',
+ 'prefsframe' => 'rcmail_preferences_frame',
+ 'sectionslist' => 'rcmail_sections_list',
+ 'identitieslist' => 'rcmail_identities_list',
));
// register action aliases
@@ -1350,7 +992,4 @@ $RCMAIL->register_action_map(array(
'purge' => 'folders.inc',
'folder-size' => 'folders.inc',
'add-identity' => 'edit_identity.inc',
- 'add-response' => 'edit_response.inc',
- 'save-response' => 'edit_response.inc',
- 'delete-response' => 'responses.inc',
));
diff --git a/program/steps/settings/save_folder.inc b/program/steps/settings/save_folder.inc
index efb096d57..877b0fbbe 100644
--- a/program/steps/settings/save_folder.inc
+++ b/program/steps/settings/save_folder.inc
@@ -5,7 +5,7 @@
| program/steps/settings/save_folder.inc |
| |
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -26,8 +26,8 @@ $STORAGE = $RCMAIL->get_storage();
$name = trim(get_input_value('_name', RCUBE_INPUT_POST, true));
-$old = get_input_value('_mbox', RCUBE_INPUT_POST, true);
-$path = get_input_value('_parent', RCUBE_INPUT_POST, true);
+$old = trim(get_input_value('_mbox', RCUBE_INPUT_POST, true));
+$path = trim(get_input_value('_parent', RCUBE_INPUT_POST, true));
$name_imap = rcube_charset_convert($name, RCMAIL_CHARSET, 'UTF7-IMAP');
$old_imap = rcube_charset_convert($old, RCMAIL_CHARSET, 'UTF7-IMAP');
diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc
index bcd05bb85..945005d39 100644
--- a/program/steps/settings/save_prefs.inc
+++ b/program/steps/settings/save_prefs.inc
@@ -34,7 +34,6 @@ switch ($CURR_SECTION)
'time_format' => isset($_POST['_time_format']) ? get_input_value('_time_format', RCUBE_INPUT_POST) : ($CONFIG['time_format'] ? $CONFIG['time_format'] : 'H:i'),
'prettydate' => isset($_POST['_pretty_date']) ? TRUE : FALSE,
'refresh_interval' => isset($_POST['_refresh_interval']) ? intval($_POST['_refresh_interval'])*60 : $CONFIG['refresh_interval'],
- 'standard_windows' => isset($_POST['_standard_windows']) ? TRUE : FALSE,
'skin' => isset($_POST['_skin']) ? get_input_value('_skin', RCUBE_INPUT_POST) : $CONFIG['skin'],
);
@@ -61,7 +60,6 @@ switch ($CURR_SECTION)
case 'mailview':
$a_user_prefs = array(
'message_extwin' => intval($_POST['_message_extwin']),
- 'message_show_email' => isset($_POST['_message_show_email']) ? TRUE : FALSE,
'prefer_html' => isset($_POST['_prefer_html']) ? TRUE : FALSE,
'inline_images' => isset($_POST['_inline_images']) ? TRUE : FALSE,
'show_images' => isset($_POST['_show_images']) ? intval($_POST['_show_images']) : 0,
@@ -89,8 +87,6 @@ switch ($CURR_SECTION)
'reply_mode' => isset($_POST['_reply_mode']) ? intval($_POST['_reply_mode']) : 0,
'strip_existing_sig' => isset($_POST['_strip_existing_sig']),
'default_font' => get_input_value('_default_font', RCUBE_INPUT_POST),
- 'default_font_size' => get_input_value('_default_font_size', RCUBE_INPUT_POST),
- 'reply_all_mode' => intval($_POST['_reply_all_mode']),
'forward_attachment' => !empty($_POST['_forward_attachment']),
);
@@ -122,8 +118,6 @@ switch ($CURR_SECTION)
case 'folders':
$a_user_prefs = array(
- 'show_real_foldernames' =>
- isset($_POST['_show_real_foldernames']) ? TRUE : FALSE,
'drafts_mbox' => get_input_value('_drafts_mbox', RCUBE_INPUT_POST, true),
'sent_mbox' => get_input_value('_sent_mbox', RCUBE_INPUT_POST, true),
'junk_mbox' => get_input_value('_junk_mbox', RCUBE_INPUT_POST, true),
diff --git a/program/steps/utils/spell.inc b/program/steps/utils/spell.inc
index 595cfd6f2..a0dd35d27 100644
--- a/program/steps/utils/spell.inc
+++ b/program/steps/utils/spell.inc
@@ -42,16 +42,6 @@ else {
$result = $spellchecker->get_xml();
}
-if ($err = $spellchecker->error()) {
- rcube::raise_error(array('code' => 500, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Spell check engine error: " . trim($err)),
- true, false);
-
- header("HTTP/1.0 500 Internal Server Error");
- exit;
-}
-
// set response length
header("Content-Length: " . strlen($result));
diff --git a/program/steps/utils/spell_html.inc b/program/steps/utils/spell_html.inc
index 96b41e230..861e4ba48 100644
--- a/program/steps/utils/spell_html.inc
+++ b/program/steps/utils/spell_html.inc
@@ -46,11 +46,6 @@ else if ($request['method'] == 'learnWord') {
}
if ($error = $spellchecker->error()) {
- rcube::raise_error(array('code' => 500, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => sprintf("Spell check engine error: " . $error)),
- true, false);
-
echo '{"error":{"errstr":"' . addslashes($error) . '","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}';
exit;
}
diff --git a/skins/classic/addressbook.css b/skins/classic/addressbook.css
index 9575ae25f..10690f9ba 100644
--- a/skins/classic/addressbook.css
+++ b/skins/classic/addressbook.css
@@ -23,7 +23,7 @@
padding: 0;
margin: 0 5px;
overflow: hidden;
- background: url(images/abook_toolbar.png) 0 0 no-repeat transparent;
+ background: url(images/abook_toolbar.png?v=025d.15594) 0 0 no-repeat transparent;
opacity: 0.99; /* this is needed to make buttons appear correctly in Chrome */
}
@@ -67,14 +67,6 @@
background-position: -128px -32px;
}
-#abooktoolbar a.exportAll {
- background-position: -128px 0;
-}
-
-#abooktoolbar a.exportAllSel {
- background-position: -128px -32px;
-}
-
#abooktoolbar span.separator {
width: 5px;
background-position: -162px 0;
@@ -118,7 +110,7 @@
#directorylistbox input
{
- margin: 0 0 0 20px;
+ margin: 0px;
font-size: 11px;
width: 90%;
}
@@ -144,8 +136,7 @@
width: 280px;
}
-#directorylist,
-#directorylist li ul
+#directorylist
{
list-style: none;
margin: 0;
@@ -153,15 +144,11 @@
background-color: #FFFFFF;
}
-#directorylist li ul
-{
- border-top: 1px solid #EBEBEB;
-}
-
#directorylist li
{
display: block;
font-size: 11px;
+ background: url(images/icons/folders.png?v=87af.4822) 5px -108px no-repeat;
border-bottom: 1px solid #EBEBEB;
white-space: nowrap;
}
@@ -173,37 +160,31 @@
padding-left: 25px;
padding-top: 2px;
padding-bottom: 2px;
- height: 16px;
text-decoration: none;
white-space: nowrap;
- background: url(images/icons/folders.png) 5px -108px no-repeat;
}
-#directorylist li ul li a
+#directorylist li.contactgroup
{
- padding-left: 45px;
+ padding-left: 15px;
+ background-position: 20px -143px;
}
-#directorylist li ul li:last-child
+#directorylist li.contactsearch
{
- border-bottom: 0;
-}
-
-#directorylist li.contactgroup a
-{
- background-position: 22px -143px;
+ background-position: 6px -162px;
}
-#directorylist li.contactsearch a
+#directorylist li.selected
{
- background-position: 6px -162px;
+ background-color: #929292;
+ border-bottom: 1px solid #898989;
}
-#directorylist li.selected > a
+#directorylist li.selected a
{
color: #FFF;
font-weight: bold;
- background-color: #929292;
}
#directorylist li.droptarget
@@ -224,37 +205,6 @@
-o-text-overflow: ellipsis;
}
-#contacts-table .contact.readonly td
-{
- font-style: italic;
-}
-
-#contacts-table td.name
-{
- width: 95%;
-}
-
-#contacts-table td.action
-{
- width: 12px;
- padding: 0px 6px 0 4px;
- text-align: right;
-}
-
-#contacts-table td.action a
-{
- font-size: 16px;
- font-weight: bold;
- font-style: normal;
- text-decoration: none;
- color: #333;
-}
-
-#contacts-table .selected td.action a
-{
- color: #fff;
-}
-
#contacts-box
{
position: absolute;
@@ -357,8 +307,7 @@ body.iframe,
}
#contactpic img {
- max-width: 60px;
- max-height: 80px;
+ width: 60px;
}
#contactpic.droptarget.hover {
diff --git a/skins/classic/common.css b/skins/classic/common.css
index 186be2485..c76786747 100644
--- a/skins/classic/common.css
+++ b/skins/classic/common.css
@@ -20,7 +20,7 @@ body.extwin
margin: 10px;
}
-select, input, textarea
+td, th, div, p, select, input, textarea
{
font-size: 12px;
font-family: inherit;
@@ -93,7 +93,7 @@ input.button
font-size: 12px;
padding-left: 8px;
padding-right: 8px;
- background: url(images/buttons/bg.gif) repeat-x #f0f0f0;
+ background: url(images/buttons/bg.gif?v=30b2.196) repeat-x #f0f0f0;
border: 1px solid #a4a4a4;
}
@@ -182,7 +182,7 @@ body > #logo
right: 0px;
height: 24px;
left: 250px;
- background: url(images/taskbar.png) top right no-repeat;
+ background: url(images/taskbar.png?v=3878.1902) top right no-repeat;
padding: 10px 6px 5px 0px;
text-align: right;
white-space: nowrap;
@@ -195,7 +195,7 @@ body > #logo
color: #666666;
text-decoration: none;
padding: 6px 12px 6px 26px;
- background: url(images/taskicons.gif) no-repeat;
+ background: url(images/taskicons.gif?v=b8e0.1519) no-repeat;
}
#taskbar a:hover
@@ -246,7 +246,7 @@ body > #message div.notice,
body > #messagebody .part-notice,
#message-objects div.notice
{
- background: url(images/display/icons.png) 6px 3px no-repeat;
+ background: url(images/display/icons.png?v=e866.4201) 6px 3px no-repeat;
background-color: #F7FDCB;
border: 1px solid #C2D071;
}
@@ -256,7 +256,7 @@ body > #message div.warning,
#message-objects div.warning,
#message-objects div.error
{
- background: url(images/display/icons.png) 6px -97px no-repeat;
+ background: url(images/display/icons.png?v=e866.4201) 6px -97px no-repeat;
background-color: #EF9398;
border: 1px solid #DC5757;
}
@@ -264,7 +264,7 @@ body > #message div.warning,
body > #message div.confirmation,
#message-objects div.confirmation
{
- background: url(images/display/icons.png) 6px -47px no-repeat;
+ background: url(images/display/icons.png?v=e866.4201) 6px -47px no-repeat;
background-color: #A6EF7B;
border: 1px solid #76C83F;
}
@@ -272,7 +272,7 @@ body > #message div.confirmation,
body > #message div.loading,
#message-objects div.loading
{
- background: url(images/display/loading.gif) 6px 3px no-repeat;
+ background: url(images/display/loading.gif?v=9bae.2710) 6px 3px no-repeat;
background-color: #EBEBEB;
border: 1px solid #CCCCCC;
}
@@ -283,15 +283,6 @@ body > #message a
text-decoration: underline;
}
-body.extwin #closelink
-{
- position: absolute;
- top: 5px;
- right: 20px;
- text-align: right;
- z-index:100;
-}
-
.box
{
border: 1px solid #999;
@@ -309,7 +300,7 @@ body.extwin #closelink
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
white-space: nowrap;
- background: url(images/listheader.gif) top left repeat-x #CCC;
+ background: url(images/listheader.gif?v=ab42.314) top left repeat-x #CCC;
}
.boxtitle .rightalign
@@ -358,7 +349,7 @@ body.iframe .boxtitle
overflow: hidden;
height: 22px;
border-bottom: 1px solid #999;
- background: url(images/listheader.gif) top left repeat-x #CCC;
+ background: url(images/listheader.gif?v=ab42.314) top left repeat-x #CCC;
}
.boxfooter
@@ -370,7 +361,7 @@ body.iframe .boxtitle
overflow: hidden;
height: 22px;
border-top: 1px solid #999;
- background: url(images/listheader.gif) top left repeat-x #CCC;
+ background: url(images/listheader.gif?v=ab42.314) top left repeat-x #CCC;
}
.boxfooter a.button,
@@ -383,7 +374,7 @@ body.iframe .boxtitle
padding: 0px;
margin: 0;
overflow: hidden;
- background: url(images/icons/groupactions.png) 0 0 no-repeat transparent;
+ background: url(images/icons/groupactions.png?v=ace6.1092) 0 0 no-repeat transparent;
opacity: 0.99; /* this is needed to make buttons appear correctly in Chrome */
}
@@ -420,7 +411,7 @@ body.iframe .boxtitle
margin: 1px;
margin-top: 2px;
overflow: hidden;
- background: url(images/pagenav.gif) 0 0 no-repeat transparent;
+ background: url(images/pagenav.gif?v=2e75.355) 0 0 no-repeat transparent;
opacity: 0.99; /* this is needed to make buttons appear correctly in Chrome */
}
@@ -462,7 +453,7 @@ body.iframe .boxtitle
-moz-user-select: none;
-khtml-user-select: none;
position: absolute;
- background: url(images/dimple.png) center no-repeat;
+ background: url(images/dimple.png?v=42a0.158) center no-repeat;
}
.splitter-h
@@ -483,9 +474,6 @@ body.iframe .boxtitle
top: 32px;
left: 90px;
width: auto;
- max-height: 70%;
- overflow: -moz-scrollbars-vertical;
- overflow-y: auto;
display: none;
background-color: #fff;
background-color: rgba(255, 255, 255, 0.95);
@@ -514,25 +502,16 @@ body.iframe .boxtitle
margin: 3px -4px;
}
-.popupmenu li a,
-.popupmenu li label
+.popupmenu li a
{
display: block;
color: #a0a0a0;
- padding: 2px 16px 2px 10px;
+ padding: 2px 10px;
text-decoration: none;
min-height: 14px;
background: transparent;
}
-.popupmenu li label.comment
-{
- color: #999;
- font-style: italic;
- padding-top: 4px;
- padding-bottom: 3px;
-}
-
.popupmenu li a.active,
.popupmenu li a.active:active,
.popupmenu li a.active:visited
@@ -554,7 +533,7 @@ body.iframe .boxtitle
.popupmenu.selectable li a.selected
{
- background: url(images/messageicons.png) 2px -372px no-repeat;
+ background: url(images/messageicons.png?v=9df0.3673) 2px -372px no-repeat;
}
.popupmenu.selectable li a
@@ -576,13 +555,13 @@ body.iframe .boxtitle
.dropbutton:hover
{
-/* background: url(images/dbutton.png) 0 0 no-repeat transparent; */
+/* background: url(images/dbutton.png?v=7bba.240) 0 0 no-repeat transparent; */
}
.dropbutton span
{
width: 9px;
- background: url(images/dbutton.png) -53px 0 no-repeat transparent;
+ background: url(images/dbutton.png?v=7bba.240) -53px 0 no-repeat transparent;
}
.dropbutton span:hover
@@ -606,7 +585,7 @@ table.records-table thead tr td
vertical-align: middle;
border-bottom: 1px solid #999999;
color: #333333;
- background: url(images/listheader.gif) top left repeat-x #CCC;
+ background: url(images/listheader.gif?v=ab42.314) top left repeat-x #CCC;
font-size: 11px;
font-weight: bold;
}
@@ -643,32 +622,6 @@ table.records-table tr.unfocused td
background-color: #929292;
}
-ul.treelist li
-{
- position: relative;
-}
-
-ul.treelist li div.treetoggle
-{
- position: absolute;
- left: 8px !important;
- left: -16px;
- top: 1px;
- width: 14px;
- height: 16px;
- cursor: pointer;
-}
-
-ul.treelist li div.collapsed
-{
- background: url(images/icons/collapsed.png) bottom right no-repeat;
-}
-
-ul.treelist li div.expanded
-{
- background: url(images/icons/expanded.png) bottom right no-repeat;
-}
-
/***** mac-style quicksearch field *****/
@@ -680,7 +633,7 @@ ul.treelist li div.expanded
width: 190px;
height: 20px;
text-align: right;
- background: url(images/searchfield.gif) top left no-repeat;
+ background: url(images/searchfield.gif?v=aaf8.313) top left no-repeat;
}
#searchreset
@@ -713,27 +666,8 @@ ul.treelist li div.expanded
font-size: 11px;
padding: 0px;
border: none;
- outline: none;
-}
-
-.propform div.prop
-{
- margin-bottom: 0.5em;
}
-.propform div.prop.block label
-{
- display: block;
- margin-bottom: 2px;
-}
-
-.propform div.prop.block input,
-.propform div.prop.block textarea
-{
- width: 97%;
-}
-
-
/***** roundcube webmail pre-defined classes *****/
#rcmversion
@@ -776,7 +710,7 @@ ul.treelist li div.expanded
content: " ";
width: 14px;
height: 14px;
- background: url(images/messageactions.png) -2px -128px no-repeat;
+ background: url(images/messageactions.png?v=e5b9.2211) -2px -128px no-repeat;
}
a.rcmContactAddress
@@ -826,7 +760,7 @@ a.rcmContactAddress:hover
margin-left: auto;
margin-right: auto;
margin-top: 50px;
- width: 400px;
+ width: 420px;
border: 1px solid #999;
}
@@ -993,7 +927,7 @@ span.tablink-selected
height: 23px !important;
height: 22px;
overflow: hidden;
- background: url(images/tabs-left.gif) top left no-repeat;
+ background: url(images/tabs-left.gif?v=0541.219) top left no-repeat;
}
span.tablink
@@ -1020,7 +954,7 @@ span.tablink-selected a
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
- background: url(images/tabs-right.gif) top right no-repeat;
+ background: url(images/tabs-right.gif?v=5414.733) top right no-repeat;
}
span.tablink-selected a
@@ -1056,9 +990,9 @@ fieldset.tabbed
cursor: default;
}
.quota_bg { background-color: white; }
-.quota_high { background: url(images/quota-colors.png) repeat-x 0 -28px #f90509; }
-.quota_mid { background: url(images/quota-colors.png) repeat-x 0 -14px #e3e909; }
-.quota_low { background: url(images/quota-colors.png) repeat-x 0 0px #05f905; }
+.quota_high { background: url(images/quota-colors.png?v=c1e9.287) repeat-x 0 -28px #f90509; }
+.quota_mid { background: url(images/quota-colors.png?v=c1e9.287) repeat-x 0 -14px #e3e909; }
+.quota_low { background: url(images/quota-colors.png?v=c1e9.287) repeat-x 0 0px #05f905; }
.quota_text_high { color: white; }
.quota_text_mid { color: #666; }
.quota_text_low { color: #666; }
diff --git a/skins/classic/embed.css b/skins/classic/embed.css
index 6d2c63c6a..fbfa09501 100644
--- a/skins/classic/embed.css
+++ b/skins/classic/embed.css
@@ -16,7 +16,7 @@
margin-bottom: .8em;
min-height: 30px;
padding: 10px 10px 6px 46px;
- background: url(images/display/icons.png) 6px 3px no-repeat #F7FDCB;
+ background: url(images/display/icons.png?v=e866.4201) 6px 3px no-repeat #F7FDCB;
border: 1px solid #C2D071;
}
diff --git a/skins/classic/functions.js b/skins/classic/functions.js
index 8d81c3ad2..23c69805c 100644
--- a/skins/classic/functions.js
+++ b/skins/classic/functions.js
@@ -10,7 +10,7 @@ function rcube_init_settings_tabs()
{
var el, cl, container = $('#tabsbar'),
last_tab = $('span:last', container),
- tab = '#settingstabpreferences',
+ tab = '#settingstabdefault',
action = window.rcmail && rcmail.env.action ? rcmail.env.action : null;
// move About tab to the end
@@ -22,7 +22,7 @@ function rcube_init_settings_tabs()
// get selected tab
if (action)
- tab = '#settingstab' + (action.indexOf('identity')>0 ? 'identities' : action.replace(/\./g, ''));
+ tab = '#settingstab' + (action == 'preferences' ? 'default' : (action.indexOf('identity')>0 ? 'identities' : action.replace(/\./g, '')));
$(tab).addClass('tablink-selected');
$('a', tab).removeAttr('onclick').click(function() { return false; });
@@ -92,9 +92,8 @@ function rcube_mail_ui()
forwardmenu: {id:'forwardmenu', editable:1},
searchmenu: {id:'searchmenu', editable:1},
messagemenu: {id:'messagemenu'},
- attachmentmenu: {id:'attachmentmenu'},
listmenu: {id:'listmenu', editable:1},
- dragmenu: {id:'dragmenu', sticky:1},
+ dragmessagemenu:{id:'dragmessagemenu', sticky:1},
groupmenu: {id:'groupoptionsmenu', above:1},
mailboxmenu: {id:'mailboxoptionsmenu', above:1},
composemenu: {id:'composeoptionsmenu', editable:1, overlap:1},
@@ -134,24 +133,24 @@ show_popupmenu: function(popup, show)
{
var obj = this.popups[popup].obj,
above = this.popups[popup].above,
- ref = $(this.popups[popup].link ? this.popups[popup].link : rcube_find_object(popup+'link'));
+ ref = rcube_find_object(popup+'link');
if (typeof show == 'undefined')
show = obj.is(':visible') ? false : true;
else if (this.popups[popup].toggle && show && this.popups[popup].obj.is(':visible') )
show = false;
- if (show && ref.length) {
- var parent = ref.parent(),
+ if (show && ref) {
+ var parent = $(ref).parent(),
win = $(window),
- pos = parent.hasClass('dropbutton') ? parent.offset() : ref.offset();
+ pos = parent.hasClass('dropbutton') ? parent.offset() : $(ref).offset();
- if (!above && pos.top + ref.height() + obj.height() > win.height())
+ if (!above && pos.top + ref.offsetHeight + obj.height() > win.height())
above = true;
if (pos.left + obj.width() > win.width())
pos.left = win.width() - obj.width() - 30;
- obj.css({ left:pos.left, top:(pos.top + (above ? -obj.height() : ref.height())) });
+ obj.css({ left:pos.left, top:(pos.top + (above ? -obj.height() : ref.offsetHeight)) });
}
obj[show?'show':'hide']();
@@ -162,9 +161,9 @@ show_popupmenu: function(popup, show)
}
},
-dragmenu: function(show)
+dragmessagemenu: function(show)
{
- this.popups.dragmenu.obj[show?'show':'hide']();
+ this.popups.dragmessagemenu.obj[show?'show':'hide']();
},
forwardmenu: function(show)
@@ -326,7 +325,7 @@ listmenu: function(show)
};
},
-open_listmenu: function()
+open_listmenu: function(e)
{
this.listmenu();
},
@@ -381,35 +380,6 @@ spellmenu: function(show)
this.show_popupmenu('spellmenu', show);
},
-show_attachmentmenu: function(elem)
-{
- var id = elem.parentNode.id.replace(/^attach/, '');
-
- $('#attachmenuopen').unbind('click').attr('onclick', '').click(function(e) {
- return rcmail.command('open-attachment', id, this);
- });
-
- $('#attachmenudownload').unbind('click').attr('onclick', '').click(function() {
- rcmail.command('download-attachment', id, this);
- });
-
- this.popups.attachmentmenu.link = elem;
- rcmail.command('menu-open', {menu: 'attachmentmenu', id: id});
-},
-
-menu_open: function(p)
-{
- if (p && p.props && p.props.menu == 'attachmentmenu')
- this.show_popup('attachmentmenu');
- else
- this.open_listmenu();
-},
-
-menu_save: function(prop)
-{
- this.save_listmenu();
-},
-
body_mouseup: function(evt, p)
{
var i, target = rcube_event.get_target(evt);
@@ -492,18 +462,14 @@ switch_preview_pane: function(elem)
/* Message composing */
init_compose_form: function()
{
- var f, v, field, fields = ['cc', 'bcc', 'replyto', 'followupto'],
+ var f, field, fields = ['cc', 'bcc', 'replyto', 'followupto'],
div = document.getElementById('compose-div'),
headers_div = document.getElementById('compose-headers-div');
// Show input elements with non-empty value
for (f=0; f<fields.length; f++) {
- v = fields[f]; field = $('#_'+v);
- if (field.length) {
- field.on('change', {v:v}, function(e) { if (this.value) rcmail_ui.show_header_form(e.data.v); });
- if (field.val() != '')
- rcmail_ui.show_header_form(v);
- }
+ if ((field = $('#_'+fields[f])) && field.length && field.val() != '')
+ rcmail_ui.show_header_form(fields[f]);
}
// prevent from form data loss when pressing ESC key in IE
@@ -621,130 +587,14 @@ prev_sibling: function(elm)
while (ps && ps.nodeType == 3)
ps = ps.previousSibling;
return ps;
-},
-
-enable_command: function(p)
-{
- if (p.command == 'reply-list' && rcmail.env.reply_all_mode == 1) {
- var label = rcmail.gettext(p.status ? 'replylist' : 'replyall');
- $('a.button.replyAll').attr('title', label);
- }
}
};
/**
- * Roundcube generic layer (floating box) class
- *
- * @constructor
- */
-function rcube_layer(id, attributes)
-{
- this.name = id;
-
- // create a new layer in the current document
- this.create = function(arg)
- {
- var l = (arg.x) ? arg.x : 0,
- t = (arg.y) ? arg.y : 0,
- w = arg.width,
- h = arg.height,
- z = arg.zindex,
- vis = arg.vis,
- parent = arg.parent,
- obj = document.createElement('DIV');
-
- obj.id = this.name;
- obj.style.position = 'absolute';
- obj.style.visibility = (vis) ? (vis==2) ? 'inherit' : 'visible' : 'hidden';
- obj.style.left = l+'px';
- obj.style.top = t+'px';
- if (w)
- obj.style.width = w.toString().match(/\%$/) ? w : w+'px';
- if (h)
- obj.style.height = h.toString().match(/\%$/) ? h : h+'px';
- if (z)
- obj.style.zIndex = z;
-
- if (parent)
- parent.appendChild(obj);
- else
- document.body.appendChild(obj);
-
- this.elm = obj;
- };
-
- // create new layer
- if (attributes != null) {
- this.create(attributes);
- this.name = this.elm.id;
- }
- else // just refer to the object
- this.elm = document.getElementById(id);
-
- if (!this.elm)
- return false;
-
-
- // ********* layer object properties *********
-
- this.css = this.elm.style;
- this.event = this.elm;
- this.width = this.elm.offsetWidth;
- this.height = this.elm.offsetHeight;
- this.x = parseInt(this.elm.offsetLeft);
- this.y = parseInt(this.elm.offsetTop);
- this.visible = (this.css.visibility=='visible' || this.css.visibility=='show' || this.css.visibility=='inherit') ? true : false;
-
-
- // ********* layer object methods *********
-
- // move the layer to a specific position
- this.move = function(x, y)
- {
- this.x = x;
- this.y = y;
- this.css.left = Math.round(this.x)+'px';
- this.css.top = Math.round(this.y)+'px';
- };
-
- // change the layers width and height
- this.resize = function(w,h)
- {
- this.css.width = w+'px';
- this.css.height = h+'px';
- this.width = w;
- this.height = h;
- };
-
- // show or hide the layer
- this.show = function(a)
- {
- if(a == 1) {
- this.css.visibility = 'visible';
- this.visible = true;
- }
- else if(a == 2) {
- this.css.visibility = 'inherit';
- this.visible = true;
- }
- else {
- this.css.visibility = 'hidden';
- this.visible = false;
- }
- };
-
- // write new content into a Layer
- this.write = function(cont)
- {
- this.elm.innerHTML = cont;
- };
-
-};
-
-/**
* Scroller
*/
+
function rcmail_scroller(list, top, bottom)
{
var ref = this;
@@ -796,25 +646,24 @@ function iframe_events()
// Abbreviate mailbox names to fit width of the container
function rcube_render_mailboxlist()
{
- var list = $('#mailboxlist > li > a, #mailboxlist ul:visible > li > a');
+ var list = $('#mailboxlist > li a, #mailboxlist ul:visible > li a');
// it's too slow with really big number of folders, especially on IE
- if (list.length > (bw.ie && bw.vendver < 9 ? 40 : 100))
+ if (list.length > (bw.ie ? 25 : 100))
return;
- list.each(function() {
+ list.each(function(){
var elem = $(this),
text = elem.data('text');
if (!text) {
- text = elem.text().replace(/\s+\([0-9]+\)$/, '');
+ text = elem.text().replace(/\s+\(.+$/, '');
elem.data('text', text);
}
-
if (text.length < 6)
return;
- var abbrev = fit_string_to_size(text, elem, elem.width() - elem.children('span.unreadcount').width() - 16);
+ var abbrev = fit_string_to_size(text, elem, elem.width() - elem.children('span.unreadcount').width());
if (abbrev != text)
elem.attr('title', text);
elem.contents().filter(function(){ return (this.nodeType == 3); }).get(0).data = abbrev;
@@ -824,23 +673,19 @@ function rcube_render_mailboxlist()
// inspired by https://gist.github.com/24261/7fdb113f1e26111bd78c0c6fe515f6c0bf418af5
function fit_string_to_size(str, elem, len)
{
- var w, span, $span, result = str, ellip = '...';
+ var w, span, result = str, ellip = '...';
if (!rcmail.env.tmp_span) {
// it should be appended to elem to use the same css style
// but for performance reasons we'll append it to body (once)
- span = $('<b>').css({visibility: 'hidden', padding: '0px',
- 'font-family': elem.css('font-family'),
- 'font-size': elem.css('font-size')})
+ span = $('<b>').css({visibility: 'hidden', padding: '0px'})
.appendTo($('body', document)).get(0);
rcmail.env.tmp_span = span;
}
else {
span = rcmail.env.tmp_span;
}
-
- $span = $(span);
- $span.text(result);
+ span.innerHTML = result;
// on first run, check if string fits into the length already.
w = span.offsetWidth;
@@ -853,7 +698,7 @@ function fit_string_to_size(str, elem, len)
while (true) {
offLeft = mid - cut;
offRight = mid + cut;
- $span.text(str.substring(0,offLeft) + ellip + str.substring(offRight));
+ span.innerHTML = str.substring(0,offLeft) + ellip + str.substring(offRight);
// break loop if string fits size
if (offLeft < 3 || span.offsetWidth)
@@ -917,7 +762,7 @@ function percent_indicator(obj, data)
var bar2 = $('<div>');
bar2.css({position: 'absolute', top: pos.top + 1, left: pos.left + 1,
width: width + 'px', height: height + 'px', zIndex: 98})
- .addClass('quota_bg');
+ .addClass('quota_bg');
if (quota >= limit_high) {
main.addClass(' quota_text_high');
@@ -940,8 +785,8 @@ function percent_indicator(obj, data)
// Optional parameters used by TinyMCE
var rcmail_editor_settings = {
- skin: "default", // "default", "o2k7"
- skin_variant: "" // "", "silver", "black"
+ skin : "default", // "default", "o2k7"
+ skin_variant : "" // "", "silver", "black"
};
var rcmail_ui;
@@ -952,52 +797,40 @@ function rcube_init_mail_ui()
rcube_event.add_listener({ object:rcmail_ui, method:'body_mouseup', event:'mouseup' });
rcube_event.add_listener({ object:rcmail_ui, method:'body_keydown', event:'keydown' });
- rcmail.addEventListener('init', function() {
- if (rcmail.env.quota_content)
- update_quota(rcmail.env.quota_content);
- rcmail.addEventListener('setquota', update_quota);
-
- $('iframe').load(iframe_events)
- .contents().mouseup(function(e){rcmail_ui.body_mouseup(e)});
-
- if (rcmail.env.task == 'mail') {
- rcmail.addEventListener('enable-command', 'enable_command', rcmail_ui);
- rcmail.addEventListener('menu-open', 'menu_open', rcmail_ui);
- rcmail.addEventListener('menu-save', 'menu_save', rcmail_ui);
- rcmail.addEventListener('aftersend-attachment', 'uploadmenu', rcmail_ui);
- rcmail.addEventListener('aftertoggle-editor', 'resize_compose_body_ev', rcmail_ui);
- rcmail.gui_object('dragmenu', 'dragmenu');
-
- if (rcmail.gui_objects.mailboxlist) {
- rcmail.treelist.addEventListener('expand', rcube_render_mailboxlist);
- rcmail.addEventListener('responseaftermark', rcube_render_mailboxlist);
- rcmail.addEventListener('responseaftergetunread', rcube_render_mailboxlist);
- rcmail.addEventListener('responseaftercheck-recent', rcube_render_mailboxlist);
- rcmail.addEventListener('responseafterrefresh', rcube_render_mailboxlist);
- rcmail.addEventListener('afterimport-messages', function(){ rcmail_ui.show_popup('uploadform', false); });
-
- new rcmail_scroller('#mailboxlist-content', '#mailboxlist-title', '#mailboxlist-footer');
- }
+ if (rcmail.env.quota_content)
+ update_quota(rcmail.env.quota_content);
+ rcmail.addEventListener('setquota', update_quota);
- if (rcmail.env.action == 'compose')
- rcmail_ui.init_compose_form();
- else if (rcmail.env.action == 'show' || rcmail.env.action == 'preview')
- // add menu link for each attachment
- $('#attachment-list > li[id^="attach"]').each(function() {
- $(this).append($('<a class="drop">').click(function() { rcmail_ui.show_attachmentmenu(this); }));
- });
- }
- else if (rcmail.env.task == 'addressbook') {
- rcmail.addEventListener('afterupload-photo', function(){ rcmail_ui.show_popup('uploadform', false); });
+ $('iframe').load(iframe_events)
+ .contents().mouseup(function(e){rcmail_ui.body_mouseup(e)});
- if (rcmail.gui_objects.folderlist)
- new rcmail_scroller('#directorylist-content', '#directorylist-title', '#directorylist-footer');
+ if (rcmail.env.task == 'mail') {
+ rcmail.addEventListener('menu-open', 'open_listmenu', rcmail_ui);
+ rcmail.addEventListener('menu-save', 'save_listmenu', rcmail_ui);
+ rcmail.addEventListener('aftersend-attachment', 'uploadmenu', rcmail_ui);
+ rcmail.addEventListener('aftertoggle-editor', 'resize_compose_body_ev', rcmail_ui);
+ rcmail.gui_object('message_dragmenu', 'dragmessagemenu');
- rcmail.gui_object('dragmenu', 'dragmenu');
- }
- else if (rcmail.env.task == 'settings') {
- if (rcmail.gui_objects.subscriptionlist)
- new rcmail_scroller('#folderlist-content', '#folderlist-title', '#folderlist-footer');
+ if (rcmail.gui_objects.mailboxlist) {
+ rcmail.addEventListener('responseaftermark', rcube_render_mailboxlist);
+ rcmail.addEventListener('responseaftergetunread', rcube_render_mailboxlist);
+ rcmail.addEventListener('responseaftercheck-recent', rcube_render_mailboxlist);
+ rcmail.addEventListener('aftercollapse-folder', rcube_render_mailboxlist);
+
+ new rcmail_scroller('#mailboxlist-content', '#mailboxlist-title', '#mailboxlist-footer');
}
- });
+
+ if (rcmail.env.action == 'compose')
+ rcmail_ui.init_compose_form();
+ }
+ else if (rcmail.env.task == 'addressbook') {
+ rcmail.addEventListener('afterupload-photo', function(){ rcmail_ui.show_popup('uploadform', false); });
+
+ if (rcmail.gui_objects.folderlist)
+ new rcmail_scroller('#directorylist-content', '#directorylist-title', '#directorylist-footer');
+ }
+ else if (rcmail.env.task == 'settings') {
+ if (rcmail.gui_objects.subscriptionlist)
+ new rcmail_scroller('#folderlist-content', '#folderlist-title', '#folderlist-footer');
+ }
}
diff --git a/skins/classic/ie6hacks.css b/skins/classic/ie6hacks.css
index a431ee45e..0026d426a 100644
--- a/skins/classic/ie6hacks.css
+++ b/skins/classic/ie6hacks.css
@@ -2,7 +2,7 @@
#taskbar
{
- background: url(images/taskbar.gif) top right no-repeat;
+ background: url(images/taskbar.gif?v=5666.2033) top right no-repeat;
width: expression((parseInt(document.documentElement.clientWidth)-250)+'px');
}
@@ -26,17 +26,17 @@ body > #message div.confirmation,
#message-objects div.warning,
#message-objects div.confirmation
{
- background-image: url(images/display/icons.gif);
+ background-image: url(images/display/icons.gif?v=84d5.2329);
}
#messagemenu li a
{
- background-image: url(images/messageactions.gif);
+ background-image: url(images/messageactions.gif?v=dcdc.1916);
}
#mailboxlist li
{
- background-image: url(images/icons/folders.gif);
+ background-image: url(images/icons/folders.gif?v=59af.2568);
}
#messagetoolbar a
@@ -49,7 +49,7 @@ body > #message div.confirmation,
.boxfooter a.button,
.boxfooter a.buttonPas
{
- background-image: url(images/icons/groupactions.gif);
+ background-image: url(images/icons/groupactions.gif?v=677d.496);
}
.pagenav
@@ -60,23 +60,23 @@ body > #message div.confirmation,
.pagenav a.button,
.pagenav a.buttonPas
{
- background-image: url(images/pagenav.gif);
+ background-image: url(images/pagenav.gif?v=2e75.355);
}
#listcontrols a.button,
#listcontrols a.buttonPas {
- background-image: url(images/mail_footer.gif);
+ background-image: url(images/mail_footer.gif?v=83fb.1336);
}
#messagetoolbar a.button,
#messagetoolbar a.buttonPas {
- background-image: url(images/mail_toolbar.gif);
+ background-image: url(images/mail_toolbar.gif?v=183d.12821);
}
#abooktoolbar a.button,
#abooktoolbar a.buttonPas,
#abooktoolbar span.separator {
- background-image: url(images/abook_toolbar.gif);
+ background-image: url(images/abook_toolbar.gif?v=dfe4.5753);
}
ul.toolbarmenu li a,
@@ -106,7 +106,7 @@ ul.toolbarmenu li.separator_below
#directorylist li
{
- background-image: url(images/icons/folders.gif);
+ background-image: url(images/icons/folders.gif?v=59af.2568);
}
.boxlistcontent
@@ -155,7 +155,7 @@ ul.toolbarmenu li.separator_below
#messagelist tr td.subject span.forwarded,
#messagelist tr td.subject span.unreadchildren
{
- background-image: url(images/messageicons.gif);
+ background-image: url(images/messageicons.gif?v=2f0b.2222);
}
#messagelist tr td div.collapsed,
@@ -180,5 +180,5 @@ body.iframe .boxtitle
#abookactions a
{
- background-image: url("images/icons/groupactions.gif");
+ background-image: url(images/icons/groupactions.gif?v=677d.496);
}
diff --git a/skins/classic/iehacks.css b/skins/classic/iehacks.css
index fabf73db6..fc00732fa 100644
--- a/skins/classic/iehacks.css
+++ b/skins/classic/iehacks.css
@@ -90,13 +90,13 @@ body.iframe div.messageheaderbox
#abooktoolbar a.buttonPas
{
filter: alpha(opacity=35);
- background-image: url(images/abook_toolbar.gif);
+ background-image: url(images/abook_toolbar.gif?v=dfe4.5753);
}
#messagetoolbar a.buttonPas
{
filter: alpha(opacity=35);
- background-image: url(images/mail_toolbar.gif);
+ background-image: url(images/mail_toolbar.gif?v=183d.12821);
}
#listcontrols a.buttonPas
@@ -219,7 +219,7 @@ div.message-part div.pre
div.draglayercopy
{
border-color: #00cc00;
- background: url(images/messageactions.png) 0 -125px no-repeat #fff;
+ background: url(images/messageactions.png?v=e5b9.2211) 0 -125px no-repeat #fff;
}
html.ie8 .draglayercopy:before
diff --git a/skins/classic/images/favicon.ico b/skins/classic/images/favicon.ico
index 9ef2f3b9e..b3bd18c12 100644
--- a/skins/classic/images/favicon.ico
+++ b/skins/classic/images/favicon.ico
Binary files differ
diff --git a/skins/classic/images/mail_toolbar.png b/skins/classic/images/mail_toolbar.png
index 3ef003f23..e68035da5 100644
--- a/skins/classic/images/mail_toolbar.png
+++ b/skins/classic/images/mail_toolbar.png
Binary files differ
diff --git a/skins/classic/includes/messagetoolbar.html b/skins/classic/includes/messagetoolbar.html
index 8f8efd291..bd14f490f 100644
--- a/skins/classic/includes/messagetoolbar.html
+++ b/skins/classic/includes/messagetoolbar.html
@@ -21,7 +21,7 @@
<roundcube:button name="markmenulink" id="markmenulink" type="link" class="button markmessage" title="markmessages" onclick="rcmail_ui.show_popup('markmenu');return false" content=" " />
<roundcube:button name="messagemenulink" id="messagemenulink" type="link" class="button messagemenu" title="moreactions" onclick="rcmail_ui.show_popup('messagemenu');return false" content=" " />
<roundcube:if condition="template:name == 'message'" />
-<roundcube:object name="mailboxlist" type="select" noSelection="moveto" maxlength="25" onchange="rcmail.command('move', this.options[this.selectedIndex].value)" class="mboxlist" folder_filter="mail" />
+<roundcube:object name="mailboxlist" type="select" noSelection="moveto" maxlength="25" onchange="rcmail.command('moveto', this.options[this.selectedIndex].value)" class="mboxlist" folder_filter="mail" />
<roundcube:endif />
</div>
diff --git a/skins/classic/includes/settingstabs.html b/skins/classic/includes/settingstabs.html
index a47db2274..0aea80b67 100644
--- a/skins/classic/includes/settingstabs.html
+++ b/skins/classic/includes/settingstabs.html
@@ -1,6 +1,8 @@
<div id="tabsbar">
-<roundcube:object name="settingstabs" class="tablink" selClass="tablink-selected" />
-<roundcube:container name="tabs" id="tabsbar" />
+<span id="settingstabdefault" class="tablink"><roundcube:button command="preferences" type="link" label="preferences" title="editpreferences" /></span>
+<span id="settingstabfolders" class="tablink"><roundcube:button command="folders" type="link" label="folders" title="managefolders" class="tablink" /></span>
+<span id="settingstabidentities" class="tablink"><roundcube:button command="identities" type="link" label="identities" title="manageidentities" class="tablink" /></span>
<span id="settingstababout" class="tablink"><roundcube:button command="about" type="link" label="about" title="about" class="tablink" /></span>
+<roundcube:container name="tabs" id="tabsbar" />
<script type="text/javascript"> if (window.rcmail) rcmail.add_onload(rcube_init_settings_tabs); </script>
</div>
diff --git a/skins/classic/mail.css b/skins/classic/mail.css
index 4f145368d..89cf0b884 100644
--- a/skins/classic/mail.css
+++ b/skins/classic/mail.css
@@ -36,7 +36,7 @@
padding: 0;
margin: 0 5px;
overflow: hidden;
- background: url(images/mail_toolbar.png) 0 0 no-repeat transparent;
+ background: url(images/mail_toolbar.png?v=1594.36649) 0 0 no-repeat transparent;
opacity: 0.99; /* this is needed to make buttons appear correctly in Chrome */
}
@@ -107,14 +107,6 @@
background-position: -192px -32px;
}
-#messagetoolbar a.print {
- background-position: -224px 0;
-}
-
-#messagetoolbar a.printSel {
- background-position: -224px -32px;
-}
-
#messagetoolbar a.markmessage {
background-position: -256px 0;
}
@@ -163,18 +155,6 @@
background-position: -416px -32px;
}
-#messagetoolbar a.download {
- background-position: -480px 0;
-}
-
-#messagetoolbar a.downloadSel {
- background-position: -480px -32px;
-}
-
-#messagetoolbar a.responses {
- background-position: -512px 0;
-}
-
#messagetoolbar select.mboxlist
{
position: relative;
@@ -193,17 +173,15 @@
}
#messagemenu li a.active:hover,
-#attachmentmenu li a.active:hover,
#markmessagemenu li a.active:hover
{
color: #fff;
background-color: #c00;
}
-#messagemenu li a,
-#attachmentmenu li a
+#messagemenu li a
{
- background: url(images/messageactions.png) no-repeat 7px 0;
+ background: url(images/messageactions.png?v=e5b9.2211) no-repeat 7px 0;
background-position: 7px 20px;
}
@@ -212,8 +190,7 @@
background-position: 7px 1px;
}
-#messagemenu li a.downloadlink,
-#attachmentmenu li a.downloadlink
+#messagemenu li a.downloadlink
{
background-position: 7px -17px;
}
@@ -223,8 +200,7 @@
background-position: 7px -35px;
}
-#messagemenu li a.openlink,
-#attachmentmenu li a.openlink
+#messagemenu li a.openlink
{
background-position: 7px -53px;
}
@@ -237,7 +213,7 @@
#markmessagemenu li a,
#compose-attachments li a
{
- background: url(images/messageicons.png) no-repeat;
+ background: url(images/messageicons.png?v=9df0.3673) no-repeat;
}
#markmessagemenu li a.readlink
@@ -304,38 +280,10 @@
#messagepartcontainer
{
position: absolute;
- top: 0;
- left: 170px;
- right: 0;
- bottom: 0;
-}
-
-#messagepartheader
-{
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- width: 160px;
- border: 1px solid #999999;
- background-color: #F9F9F9;
- overflow: hidden;
-}
-
-#messagepartheader table
-{
- width: 100%;
- table-layout: fixed;
-}
-
-#messagepartheader table td
-{
- text-overflow: ellipsis;
-}
-
-#messagepartheader table td.title
-{
- width: 60px;
+ top: 80px;
+ left: 20px;
+ right: 20px;
+ bottom: 20px;
}
#mailcontframe
@@ -377,7 +325,31 @@
height: 100%;
min-height: 100%; /* Chrome 14 bug */
border: 1px solid #999999;
- background-color: #fff;
+ background-color: #F9F9F9;
+}
+
+
+#partheader
+{
+ position: absolute;
+ top: 10px;
+ left: 220px;
+ right: 20px;
+ height: 40px;
+}
+
+#partheader table td
+{
+ padding-left: 2px;
+ padding-right: 4px;
+ vertical-align: middle;
+ font-size: 11px;
+}
+
+#partheader table td.title
+{
+ color: #666666;
+ font-weight: bold;
}
@@ -412,7 +384,7 @@
display: block;
position: relative;
font-size: 11px;
- background: url(images/icons/folders.png) 5px 0 no-repeat;
+ background: url(images/icons/folders.png?v=87af.4822) 5px 0 no-repeat;
border-bottom: 1px solid #EBEBEB;
}
@@ -421,6 +393,32 @@
border-bottom: none;
}
+#mailboxlist li div
+{
+ position: absolute;
+ left: 8px !important;
+ left: -16px;
+ top: 1px;
+ width: 14px;
+ height: 16px;
+}
+
+#mailboxlist li div.collapsed,
+#mailboxlist li div.expanded
+{
+ cursor: pointer;
+}
+
+#mailboxlist li div.collapsed
+{
+ background: url(images/icons/collapsed.png?v=45aa.97) bottom right no-repeat;
+}
+
+#mailboxlist li div.expanded
+{
+ background: url(images/icons/expanded.png?v=f647.107) bottom right no-repeat;
+}
+
#mailboxlist li.inbox
{
background-position: 5px -18px;
@@ -538,7 +536,7 @@
margin-top: 4px;
margin-right: 2px;
overflow: hidden;
- background: url(images/mail_footer.png) 0 0 no-repeat transparent;
+ background: url(images/mail_footer.png?v=819f.977) 0 0 no-repeat transparent;
opacity: 0.99; /* this is needed to make buttons appear correctly in Chrome */
}
@@ -635,50 +633,42 @@ body.messagelist
background-color: #F9F9F9;
}
-table.messagelist
+#messagelist
{
width: 100%;
display: table;
table-layout: fixed;
- border-collapse: collapse;
- border-spacing: 0;
- z-index: 1;
-}
-
-table.messagelist.fixedcopy
-{
- z-index: 2;
}
-.messagelist thead tr td
+#messagelist thead tr td
{
height: 20px;
padding: 0 4px 0 2px;
vertical-align: middle;
border-bottom: 1px solid #999999;
color: #333333;
- background: url(images/listheader.gif) top left repeat-x #CCC;
+ background: url(images/listheader.gif?v=ab42.314) top left repeat-x #CCC;
font-size: 11px;
font-weight: bold;
}
-.messagelist thead tr td.sortedASC,
-.messagelist thead tr td.sortedDESC
+#messagelist thead tr td.sortedASC,
+#messagelist thead tr td.sortedDESC
{
background-position: 0 -26px;
}
-.messagelist thead tr td.sortedASC a
+#messagelist thead tr td.sortedASC a
{
- background: url(images/icons/sort.gif) right 0 no-repeat;
+ background: url(images/icons/sort.gif?v=92aa.144) right 0 no-repeat;
}
-.messagelist thead tr td.sortedDESC a
+#messagelist thead tr td.sortedDESC a
{
- background: url(images/icons/sort.gif) right -14px no-repeat;
+ background: url(images/icons/sort.gif?v=92aa.144) right -14px no-repeat;
}
-.messagelist thead tr td a
+#messagelist thead tr td a
{
display: block;
width: auto !important;
@@ -687,19 +677,18 @@ table.messagelist.fixedcopy
text-decoration: none;
}
-.messagelist thead tr td.size.sortedASC a,
-.messagelist thead tr td.size.sortedDESC a
+#messagelist thead tr td.size
{
- padding-right: 18px;
+ text-align: left;
}
-.messagelist thead tr td.subject
+#messagelist thead tr td.subject
{
padding-left: 18px;
width: 99%;
}
-.messagelist tbody tr td
+#messagelist tbody tr td
{
height: 20px;
padding: 0;
@@ -713,7 +702,7 @@ table.messagelist.fixedcopy
cursor: default;
}
-.messagelist tbody tr td a
+#messagelist tbody tr td a
{
color: #000;
text-decoration: none;
@@ -721,267 +710,267 @@ table.messagelist.fixedcopy
cursor: inherit;
}
-.messagelist td img
+#messagelist td img
{
vertical-align: middle;
display: inline-block;
}
-.messagelist tbody tr td.flag,
-.messagelist tbody tr td.status,
-.messagelist tbody tr td.subject span.status
+#messagelist tbody tr td.flag,
+#messagelist tbody tr td.status,
+#messagelist tbody tr td.subject span.status
{
cursor: pointer;
}
-.messagelist tr td.flag span,
-.messagelist tr td.status span,
-.messagelist tr td.attachment span,
-.messagelist tr td.priority span
+#messagelist tr td.flag span,
+#messagelist tr td.status span,
+#messagelist tr td.attachment span,
+#messagelist tr td.priority span
{
display: block;
width: 15px;
}
-.messagelist tr td div.collapsed,
-.messagelist tr td div.expanded,
-.messagelist tr td.threads div.listmenu,
-.messagelist tr td.attachment span.attachment,
-.messagelist tr td.attachment span.report,
-.messagelist tr td.priority span.priority,
-.messagelist tr td.priority span.prio1,
-.messagelist tr td.priority span.prio2,
-.messagelist tr td.priority span.prio3,
-.messagelist tr td.priority span.prio4,
-.messagelist tr td.priority span.prio5,
-.messagelist tr td.flag span.flagged,
-.messagelist tr td.flag span.unflagged,
-.messagelist tr td.flag span.unflagged:hover,
-.messagelist tr td.status span.status,
-.messagelist tr td.status span.msgicon,
-.messagelist tr td.status span.deleted,
-.messagelist tr td.status span.unread,
-.messagelist tr td.status span.unreadchildren,
-.messagelist tr td.subject span.msgicon,
-.messagelist tr td.subject span.deleted,
-.messagelist tr td.subject span.unread,
-.messagelist tr td.subject span.replied,
-.messagelist tr td.subject span.forwarded,
-.messagelist tr td.subject span.unreadchildren
+#messagelist tr td div.collapsed,
+#messagelist tr td div.expanded,
+#messagelist tr td.threads div.listmenu,
+#messagelist tr td.attachment span.attachment,
+#messagelist tr td.attachment span.report,
+#messagelist tr td.priority span.priority,
+#messagelist tr td.priority span.prio1,
+#messagelist tr td.priority span.prio2,
+#messagelist tr td.priority span.prio3,
+#messagelist tr td.priority span.prio4,
+#messagelist tr td.priority span.prio5,
+#messagelist tr td.flag span.flagged,
+#messagelist tr td.flag span.unflagged,
+#messagelist tr td.flag span.unflagged:hover,
+#messagelist tr td.status span.status,
+#messagelist tr td.status span.msgicon,
+#messagelist tr td.status span.deleted,
+#messagelist tr td.status span.unread,
+#messagelist tr td.status span.unreadchildren,
+#messagelist tr td.subject span.msgicon,
+#messagelist tr td.subject span.deleted,
+#messagelist tr td.subject span.unread,
+#messagelist tr td.subject span.replied,
+#messagelist tr td.subject span.forwarded,
+#messagelist tr td.subject span.unreadchildren
{
display: inline-block;
vertical-align: middle;
height: 17px;
width: 15px;
- background: url(images/messageicons.png) center no-repeat;
+ background: url(images/messageicons.png?v=9df0.3673) center no-repeat;
}
-.messagelist tr td.attachment span.attachment
+#messagelist tr td.attachment span.attachment
{
background-position: 0 -170px;
}
-.messagelist tr td.attachment span.report
+#messagelist tr td.attachment span.report
{
background-position: 0 -255px;
}
-.messagelist tr td.priority span.priority
+#messagelist tr td.priority span.priority
{
background-position: 0 -309px;
}
-.messagelist tr td.priority span.prio5
+#messagelist tr td.priority span.prio5
{
background-position: 0 -358px;
}
-.messagelist tr td.priority span.prio4
+#messagelist tr td.priority span.prio4
{
background-position: 0 -340px;
}
-.messagelist tr td.priority span.prio3
+#messagelist tr td.priority span.prio3
{
background-position: 0 -324px;
}
-.messagelist tr td.priority span.prio2
+#messagelist tr td.priority span.prio2
{
background-position: 0 -309px;
}
-.messagelist tr td.priority span.prio1
+#messagelist tr td.priority span.prio1
{
background-position: 0 -290px;
}
-.messagelist tr td.flag span.flagged
+#messagelist tr td.flag span.flagged
{
background-position: 0 -153px;
}
-.messagelist tr td.flag span.unflagged:hover
+#messagelist tr td.flag span.unflagged:hover
{
background-position: 0 -136px;
}
-.messagelist tr td.subject span.msgicon,
-.messagelist tr td.subject span.unreadchildren
+#messagelist tr td.subject span.msgicon,
+#messagelist tr td.subject span.unreadchildren
{
background-position: 0 -51px;
margin: 0 2px;
}
-.messagelist tr td.subject span.replied
+#messagelist tr td.subject span.replied
{
background-position: 0 -85px;
}
-.messagelist tr td.subject span.forwarded
+#messagelist tr td.subject span.forwarded
{
background-position: 0 -68px;
}
-.messagelist tr td.subject span.replied.forwarded
+#messagelist tr td.subject span.replied.forwarded
{
background-position: 0 -102px;
}
-.messagelist tr td.status span.msgicon,
-.messagelist tr td.flag span.unflagged,
-.messagelist tr td.status span.unreadchildren
+#messagelist tr td.status span.msgicon,
+#messagelist tr td.flag span.unflagged,
+#messagelist tr td.status span.unreadchildren
{
background-position: 0 17px; /* no icon */
}
-.messagelist tr td.status span.msgicon:hover
+#messagelist tr td.status span.msgicon:hover
{
background-position: 0 -272px;
}
-.messagelist tr td.status span.deleted,
-.messagelist tr td.subject span.deleted
+#messagelist tr td.status span.deleted,
+#messagelist tr td.subject span.deleted
{
background-position: 0 -187px;
}
-.messagelist tr td.status span.status,
-.messagelist tr td.status span.unread,
-.messagelist tr td.subject span.unread
+#messagelist tr td.status span.status,
+#messagelist tr td.status span.unread,
+#messagelist tr td.subject span.unread
{
background-position: 0 -119px;
}
-.messagelist tr td div.collapsed
+#messagelist tr td div.collapsed
{
background-position: 0 -221px;
cursor: pointer;
}
-.messagelist tr td div.expanded
+#messagelist tr td div.expanded
{
background-position: 0 -204px;
cursor: pointer;
}
-.messagelist tr td.threads div.listmenu
+#messagelist tr td.threads div.listmenu
{
background-position: 0 -238px;
cursor: pointer;
}
-.messagelist tbody tr td.subject
+#messagelist tbody tr td.subject
{
width: 99%;
}
-.messagelist tbody tr td.subject a
+#messagelist tbody tr td.subject a
{
cursor: default;
vertical-align: middle; /* #1487091 */
}
/* thread parent message with unread children */
-.messagelist tbody tr.unroot td.subject a
+#messagelist tbody tr.unroot td.subject a
{
text-decoration: underline;
}
-.messagelist tr td.attachment,
-.messagelist tr td.threads,
-.messagelist tr td.status,
-.messagelist tr td.flag,
-.messagelist tr td.priority
+#messagelist tr td.attachment,
+#messagelist tr td.threads,
+#messagelist tr td.status,
+#messagelist tr td.flag,
+#messagelist tr td.priority
{
width: 17px;
padding: 0 0 0 2px;
}
-.messagelist tr td.size
+#messagelist tr td.size
{
width: 60px;
text-align: right;
padding: 0 2px;
}
-.messagelist tr td.fromto,
-.messagelist tr td.from,
-.messagelist tr td.to,
-.messagelist tr td.cc,
-.messagelist tr td.replyto
+#messagelist tr td.fromto,
+#messagelist tr td.from,
+#messagelist tr td.to,
+#messagelist tr td.cc,
+#messagelist tr td.replyto
{
width: 180px;
padding: 0 2px;
}
-.messagelist tr td.date
+#messagelist tr td.date
{
- width: 135px;
+ width: 118px;
padding: 0 2px;
}
-.messagelist tr.message
+#messagelist tr.message
{
background-color: #FFF;
}
-.messagelist tr.unread
+#messagelist tr.unread
{
font-weight: bold;
background-color: #FFFFFF;
}
-.messagelist tr.flagged td,
-.messagelist tr.flagged td a
+#messagelist tr.flagged td,
+#messagelist tr.flagged td a
{
color: #CC0000;
}
-.messagelist tr.selected td
+#messagelist tr.selected td
{
color: #FFFFFF;
background-color: #CC3333;
}
-.messagelist tr.unfocused td
+#messagelist tr.unfocused td
{
color: #FFFFFF;
background-color: #929292;
}
-.messagelist tr.selected td a
+#messagelist tr.selected td a
{
color: #FFFFFF;
}
-.messagelist tr.unfocused td a
+#messagelist tr.unfocused td a
{
color: #FFFFFF;
}
-.messagelist tr.deleted td,
-.messagelist tr.deleted td a
+#messagelist tr.deleted td,
+#messagelist tr.deleted td a
{
color: #CCCCCC;
}
@@ -989,7 +978,6 @@ table.messagelist.fixedcopy
#listmenu
{
padding: 6px;
- max-height: none;
}
#listmenu legend
@@ -1023,7 +1011,7 @@ td span.branch div.tree
{
height: 17px;
width: 15px;
- background: url(images/tree.gif) 0px 0px no-repeat;
+ background: url(images/tree.gif?v=9b73.92) 0px 0px no-repeat;
}
td span.branch div.l1
@@ -1131,7 +1119,7 @@ table.headers-table tr td.header span
min-height: 16px;
list-style-image: none;
list-style-type: none;
- background: url(images/icons/attachment.png) 4px 2px no-repeat #DFDFDF;
+ background: url(images/icons/attachment.png?v=08f7.518) 4px 2px no-repeat #DFDFDF;
}
#messageframe #attachment-list
@@ -1173,16 +1161,6 @@ table.headers-table tr td.header span
text-decoration: underline;
}
-#attachment-list li a.drop {
- background: url(images/icons/down_small.gif) no-repeat center 6px;
- width: 12px;
- height: 7px;
- cursor: pointer;
- padding: 5px 0 0;
- margin-left: 3px;
- display: inline-block;
-}
-
#messagebody
{
position:relative;
@@ -1346,27 +1324,20 @@ div.message-htmlpart div.rcmBody
text-decoration: underline;
}
-#messagelinks
+#openextwinlink
{
position: absolute;
top: 8px;
right: 10px;
- height: 16px;
- text-align: right;
-}
-
-#messageframe #messagelinks
-{
- top: 2px;
- right: 2px;
+ width: 15px;
+ height: 15px;
+ border: 0;
}
#compose-headers #openextwinlink
{
- position: absolute;
- height: 15px;
- top: 4px;
- right: 2px;
+ top: 4px;
+ right: 2px;
}
#full-headers
@@ -1392,12 +1363,12 @@ div.more-headers
div.show-headers
{
- background: url(images/icons/down_small.gif) no-repeat center;
+ background: url(images/icons/down_small.gif?v=f368.105) no-repeat center;
}
div.hide-headers
{
- background: url(images/icons/up_small.gif) no-repeat center;
+ background: url(images/icons/up_small.gif?v=c56c.106) no-repeat center;
}
#headers-source
@@ -1599,7 +1570,9 @@ input.from_address
height: 18px;
line-height: 16px;
font-size: 11px;
- padding: 2px 2px 1px 2px;
+ padding-left: 2px;
+ padding-top: 2px;
+ padding-right: 4px;
border-bottom: 1px solid #EBEBEB;
white-space: nowrap;
overflow: hidden;
@@ -1612,10 +1585,8 @@ input.from_address
text-indent: -5000px;
width: 17px;
height: 16px;
- padding-bottom: 2px;
display: inline-block;
text-decoration: none;
- vertical-align: middle;
}
#compose-attachments li img
@@ -1635,19 +1606,16 @@ input.from_address
vertical-align: middle;
}
-#upload-form,
#attachment-form
{
padding: 6px;
}
-#upload-form div,
#attachment-form div
{
padding: 2px;
}
-#upload-form div.buttons,
#attachment-form div.buttons
{
margin-top: 4px;
@@ -1683,7 +1651,7 @@ input.from_address
{
display: block;
font-size: 11px;
- background: url(images/icons/folders.png) 5px -108px no-repeat;
+ background: url(images/icons/folders.png?v=87af.4822) 5px -108px no-repeat;
border-bottom: 1px solid #EBEBEB;
white-space: nowrap;
}
@@ -1725,14 +1693,6 @@ input.from_address
-o-text-overflow: ellipsis;
}
-#contacts-table td span.email
-{
- display: inline;
- color: #ccc;
- font-style: italic;
- margin-left: 0.5em;
-}
-
#abookcountbar
{
margin-top: 4px;
@@ -1758,7 +1718,7 @@ input.from_address
padding-left: 5px;
padding-right: 5px;
text-shadow: 1px 1px white;
- background: url("images/icons/groupactions.png") no-repeat right -70px;
+ background: url(images/icons/groupactions.png?v=ace6.1092) no-repeat right -70px;
}
#abookactions a.disabled
diff --git a/skins/classic/settings.css b/skins/classic/settings.css
index acd0b9fd0..428e60884 100644
--- a/skins/classic/settings.css
+++ b/skins/classic/settings.css
@@ -34,11 +34,6 @@
height: 18px;
}
-#identities-table tbody tr.readonly td
-{
- font-style: italic;
-}
-
#subscription-table tr.virtual td
{
color: #666;
@@ -86,21 +81,10 @@
}
#identity-details table td.title,
-#response-details table td.title,
#folder-details table td.title
{
font-weight: bold;
text-align: right;
- width: 1%;
- white-space: nowrap;
-}
-
-#response-details table td.title
-{
- text-align: left;
- vertical-align: top;
- width: 140px;
- padding-top: 5px;
}
#bottomboxes
@@ -163,12 +147,6 @@ body.iframe,
float: right;
}
-#formfooter .footerindent
-{
- padding: 10px 0;
- margin-left: 155px;
-}
-
#quota
{
position: absolute;
@@ -200,7 +178,7 @@ div.readtext
{
min-height: 200px;
padding-bottom: 2em;
- background: url(images/watermark.gif) no-repeat center;
+ background: url(images/watermark.gif?v=4094.9288) no-repeat center;
}
#license .sysname
@@ -275,15 +253,3 @@ div.crop
{
overflow: auto;
}
-
-#rcmfd_signature
-{
- width: 99%;
- min-width: 390px;
-}
-
-#rcmfd_signature_toolbar1 td,
-#rcmfd_signature_toolbar2 td
-{
- width: auto;
-}
diff --git a/skins/classic/templates/about.html b/skins/classic/templates/about.html
index 429dfcf5f..519acf773 100644
--- a/skins/classic/templates/about.html
+++ b/skins/classic/templates/about.html
@@ -7,15 +7,11 @@
</head>
<body>
-<roundcube:if condition="!request:_framed" />
-
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:include file="/includes/settingstabs.html" />
<div id="mainscreen" class="box darkbg crop">
-<roundcube:endif />
-
<div class="readtext">
<div id="license">
<roundcube:object name="aboutcontent" />
@@ -33,10 +29,7 @@ Some <a href="http://roundcube.net/license">exceptions</a> for skins &amp; plugi
<roundcube:object name="pluginlist" id="pluginlist" class="records-table" cellspacing="0" />
</div>
-
-<roundcube:if condition="!request:_framed" />
</div>
-<roundcube:endif />
</body>
</html>
diff --git a/skins/classic/templates/addressbook.html b/skins/classic/templates/addressbook.html
index 429b83438..1008cbf76 100644
--- a/skins/classic/templates/addressbook.html
+++ b/skins/classic/templates/addressbook.html
@@ -17,7 +17,7 @@
</style>
</head>
-<body>
+<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
@@ -28,10 +28,7 @@
<roundcube:button command="delete" type="link" class="buttonPas delete" classAct="button delete" classSel="button deleteSel" title="deletecontact" content=" " />
<span class="separator">&nbsp;</span>
<roundcube:button command="import" type="link" class="buttonPas import" classAct="button import" classSel="button importSel" title="importcontacts" content=" " />
-<span class="dropbutton">
<roundcube:button command="export" type="link" class="buttonPas export" classAct="button export" classSel="button exportSel" title="exportvcards" content=" " />
-<span id="exportmenulink" onclick="rcmail_ui.show_popup('exportmenu');return false"></span>
-</span>
<roundcube:button command="advanced-search" type="link" class="buttonPas search" classAct="button search" classSel="button searchSel" title="advsearch" content=" " />
<roundcube:container name="toolbar" id="abooktoolbar" />
</div>
@@ -42,13 +39,6 @@
<roundcube:button command="reset-search" id="searchreset" image="/images/icons/reset.gif" title="resetsearch" width="13" height="13" />
</div>
-<div id="exportmenu" class="popupmenu">
- <ul>
- <li><roundcube:button command="export" label="exportall" prop="sub" classAct="exportalllink active" class="exportalllink" /></li>
- <li><roundcube:button command="export-selected" label="exportsel" prop="sub" classAct="exportsellink active" class="exportsellink" /></li>
- </ul>
-</div>
-
<div id="searchmenu" class="popupmenu">
<ul class="toolbarmenu">
<li><label><input type="checkbox" name="s_mods[]" value="name" id="s_mod_name" onclick="rcmail_ui.set_searchmod(this)" /> <span><roundcube:label name="name" /></span></label></li>
@@ -64,7 +54,8 @@
<div id="directorylistbox">
<div id="directorylist-title" class="boxtitle"><roundcube:label name="groups" /></div>
<div id="directorylist-content" class="boxlistcontent">
- <roundcube:object name="directorylist" id="directorylist" class="treelist" />
+ <roundcube:object name="directorylist" id="directorylist" />
+ <roundcube:object name="groupslist" id="contactgroupslist" />
</div>
<div id="directorylist-footer" class="boxfooter">
<roundcube:button command="group-create" type="link" title="newcontactgroup" class="buttonPas addgroup" classAct="button addgroup" content=" " />
@@ -75,7 +66,7 @@
<div id="addressscreen">
<div id="addresslist">
-<roundcube:object name="addresslisttitle" label="contacts" tag="div" class="boxtitle" />
+<div class="boxtitle"><roundcube:label name="contacts" /></div>
<div class="boxlistcontent">
<roundcube:object name="addresslist" id="contacts-table" class="records-table" cellspacing="0" summary="Contacts list" noheader="true" />
</div>
@@ -116,16 +107,5 @@
</ul>
</div>
-<div id="dragmenu" class="popupmenu">
- <ul>
- <li><roundcube:button command="move" onclick="return rcmail.drag_menu_action('move')" label="move" classAct="active" /></li>
- <li><roundcube:button command="copy" onclick="return rcmail.drag_menu_action('copy')" label="copy" classAct="active" /></li>
- </ul>
-</div>
-
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
</body>
</html>
diff --git a/skins/classic/templates/compose.html b/skins/classic/templates/compose.html
index 74d25778b..b6dab2c4c 100644
--- a/skins/classic/templates/compose.html
+++ b/skins/classic/templates/compose.html
@@ -16,10 +16,10 @@
</style>
</head>
<roundcube:if condition="env:extwin" />
-<body class="extwin">
+<body class="extwin" onload="rcube_init_mail_ui()">
<roundcube:object name="message" id="message" />
<roundcube:else />
-<body>
+<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:endif />
@@ -40,12 +40,11 @@
<span id="spellmenulink" onclick="rcmail_ui.show_popup('spellmenu');return false"></span>
</span>
<roundcube:endif />
- <a href="#responses" class="button responses" label="responses" title="<roundcube:label name='insertresponse' />" id="responsesmenulink" unselectable="on" onmousedown="return false" onclick="rcmail_ui.show_popup('responsesmenu');return false">&nbsp;</a>
<roundcube:container name="toolbar" id="compose-toolbar" />
<roundcube:button name="messageoptions" id="composemenulink" type="link" class="button messagemenu" title="messageoptions" onclick="rcmail_ui.show_popup('composemenu', true);return false" content=" " />
</div>
-<roundcube:form name="form" method="post">
+<form name="form" action="./" method="post">
<div id="mainscreen">
@@ -199,25 +198,11 @@
</table>
</div>
-<div id="responsesmenu" class="popupmenu">
- <ul id="textresponsesmenu">
- <li><label class="comment"><roundcube:label name="insertresponse" /></label></li>
- <roundcube:object name="responseslist" id="responseslist" tagname="ul" itemclass="active" />
- <li><label class="comment"><roundcube:label name="manageresponses" /></label></li>
- <li><roundcube:button command="save-response" type="link" label="savenewresponse" classAct="active" unselectable="on" /></li>
- <li><roundcube:button command="responses" type="link" label="editresponses" classAct="active" /></li>
- </ul>
-</div>
-
<div id="spellmenu" class="popupmenu selectable"></div>
</form>
<roundcube:object name="composeAttachmentForm" id="attachment-form" attachmentFieldSize="40" class="popupmenu" />
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
</body>
</html>
diff --git a/skins/classic/templates/contact.html b/skins/classic/templates/contact.html
index 8be112b49..d74a78b27 100644
--- a/skins/classic/templates/contact.html
+++ b/skins/classic/templates/contact.html
@@ -13,7 +13,7 @@
<div id="sourcename"><roundcube:label name="addressbook" />: <roundcube:var name="env:sourcename" /></div>
<roundcube:endif />
- <div id="contactphoto"><roundcube:object name="contactphoto" id="contactpic" placeholder="/images/contactpic.png" placeholderGroup="/images/contactgroup.png" /></div>
+ <div id="contactphoto"><roundcube:object name="contactphoto" id="contactpic" placeholder="/images/contactpic.png" /></div>
<roundcube:object name="contacthead" id="contacthead" />
<div style="clear:both"></div>
<div id="contacttabs">
diff --git a/skins/classic/templates/contactadd.html b/skins/classic/templates/contactadd.html
index bad6daf28..05cc8aa82 100644
--- a/skins/classic/templates/contactadd.html
+++ b/skins/classic/templates/contactadd.html
@@ -5,11 +5,11 @@
<roundcube:include file="/includes/links.html" />
<script type="text/javascript" src="/functions.js"></script>
</head>
-<body class="iframe">
+<body class="iframe" onload="rcube_init_mail_ui()">
<div id="contact-title" class="boxtitle"><roundcube:label name="addcontact" /></div>
<div id="contact-details" class="boxcontent">
-<roundcube:form name="editform" method="post">
+<form name="editform" method="post" action="./">
<roundcube:if condition="strlen(env:sourcename)" />
<div id="sourcename"><roundcube:label name="addressbook" />: <roundcube:object name="sourceselector" class="hint" id="sourceselect" /></div>
<roundcube:endif />
@@ -35,10 +35,7 @@
<roundcube:object name="photoUploadForm" id="upload-form" size="30" class="popupmenu" />
<roundcube:object name="fileDropArea" id="contactpic" />
-<script type="text/javascript">
-rcube_init_tabs('contacttabs');
-rcube_init_mail_ui();
-</script>
+<script type="text/javascript">rcube_init_tabs('contacttabs')</script>
</body>
</html>
diff --git a/skins/classic/templates/contactedit.html b/skins/classic/templates/contactedit.html
index c51cbf296..db8599ac6 100644
--- a/skins/classic/templates/contactedit.html
+++ b/skins/classic/templates/contactedit.html
@@ -5,11 +5,11 @@
<roundcube:include file="/includes/links.html" />
<script type="text/javascript" src="/functions.js"></script>
</head>
-<body class="iframe">
+<body class="iframe" onload="rcube_init_mail_ui()">
<div id="contact-title" class="boxtitle"><roundcube:label name="editcontact" /></div>
<div id="contact-details" class="boxcontent">
-<roundcube:form name="editform" method="post">
+<form name="editform" method="post" action="./">
<roundcube:if condition="strlen(env:sourcename)" />
<div id="sourcename"><roundcube:label name="addressbook" />: <roundcube:var name="env:sourcename" /></div>
<roundcube:endif />
@@ -35,10 +35,7 @@
<roundcube:object name="photoUploadForm" id="upload-form" size="30" class="popupmenu" />
<roundcube:object name="fileDropArea" id="contactpic" />
-<script type="text/javascript">
-rcube_init_tabs('contacttabs');
-rcube_init_mail_ui();
-</script>
+<script type="text/javascript">rcube_init_tabs('contacttabs')</script>
</body>
</html>
diff --git a/skins/classic/templates/folders.html b/skins/classic/templates/folders.html
index f86be092b..1ae8809ec 100644
--- a/skins/classic/templates/folders.html
+++ b/skins/classic/templates/folders.html
@@ -12,7 +12,7 @@
}
</style>
</head>
-<body>
+<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
@@ -58,9 +58,5 @@
</ul>
</div>
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
</body>
</html>
diff --git a/skins/classic/templates/login.html b/skins/classic/templates/login.html
index 2dacd48ff..cca2bd934 100644
--- a/skins/classic/templates/login.html
+++ b/skins/classic/templates/login.html
@@ -15,7 +15,7 @@
<div class="boxtitle"><roundcube:label name="welcome" /></div>
<div class="boxcontent">
-<roundcube:form name="form" method="post">
+<form name="form" action="./" method="post">
<roundcube:object name="loginform" form="form" />
<p style="text-align:center;"><input type="submit" class="button mainaction" value="<roundcube:label name='login' />" /></p>
diff --git a/skins/classic/templates/mail.html b/skins/classic/templates/mail.html
index 10aebc96d..75a112ff5 100644
--- a/skins/classic/templates/mail.html
+++ b/skins/classic/templates/mail.html
@@ -18,7 +18,7 @@
}
</style>
</head>
-<body>
+<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
@@ -28,7 +28,7 @@
<div id="mailboxlist-container">
<div id="mailboxlist-title" class="boxtitle"><roundcube:label name="mailboxlist" /></div>
<div id="mailboxlist-content" class="boxlistcontent">
-<roundcube:object name="mailboxlist" id="mailboxlist" class="treelist" folder_filter="mail" />
+<roundcube:object name="mailboxlist" id="mailboxlist" folder_filter="mail" />
</div>
<div id="mailboxlist-footer" class="boxfooter">
<roundcube:button name="mailboxmenulink" id="mailboxmenulink" type="link" title="folderactions" class="button groupactions" onclick="rcmail_ui.show_popup('mailboxmenu');return false" content=" " />
@@ -55,7 +55,6 @@
<div id="messagelistcontainer" class="boxlistcontent" style="top:0">
<roundcube:object name="messages"
id="messagelist"
- class="messagelist fixedheader"
cellspacing="0"
columns=""
summary="Message list"
@@ -131,9 +130,9 @@
<roundcube:button command="reset-search" id="searchreset" image="/images/icons/reset.gif" title="resetsearch" width="13" height="13" />
</div>
-<div id="dragmenu" class="popupmenu">
+<div id="dragmessagemenu" class="popupmenu">
<ul>
- <li><roundcube:button command="move" onclick="return rcmail.drag_menu_action('move')" label="move" classAct="active" /></li>
+ <li><roundcube:button command="moveto" onclick="return rcmail.drag_menu_action('moveto')" label="move" classAct="active" /></li>
<li><roundcube:button command="copy" onclick="return rcmail.drag_menu_action('copy')" label="copy" classAct="active" /></li>
</ul>
</div>
@@ -141,8 +140,7 @@
<div id="mailboxoptionsmenu" class="popupmenu">
<ul>
<li><roundcube:button command="expunge" type="link" label="compact" classAct="active" /></li>
- <li><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
- <li class="separator_below"><roundcube:button name="messageimport" type="link" class="active" label="importmessages" id="uploadformlink" onclick="rcmail_ui.show_popup('uploadform', true); return false" /></li>
+ <li class="separator_below"><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
<li><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
<roundcube:container name="mailboxoptions" id="mailboxoptionsmenu" />
</ul>
@@ -206,11 +204,5 @@
</div>
</div>
-<roundcube:object name="messageimportform" id="upload-form" attachmentFieldSize="40" class="popupmenu" />
-
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
</body>
</html>
diff --git a/skins/classic/templates/message.html b/skins/classic/templates/message.html
index bd4fbf277..4a4068dbe 100644
--- a/skins/classic/templates/message.html
+++ b/skins/classic/templates/message.html
@@ -13,10 +13,10 @@
</style>
</head>
<roundcube:if condition="env:extwin" />
-<body class="extwin">
+<body class="extwin" onload="rcube_init_mail_ui()">
<roundcube:object name="message" id="message" />
<roundcube:else />
-<body>
+<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
@@ -30,7 +30,7 @@
<div id="mailboxlist-container">
<div id="mailboxlist-title" class="boxtitle"><roundcube:label name="mailboxlist" /></div>
<div class="boxlistcontent">
- <roundcube:object name="mailboxlist" id="mailboxlist" class="treelist" maxlength="25" />
+ <roundcube:object name="mailboxlist" id="mailboxlist" maxlength="25" />
</div>
<div class="boxfooter"></div>
</div>
@@ -39,14 +39,6 @@
<div id="messageframe">
<div class="boxlistcontent" style="top:0; overflow-x:auto">
- <div id="messagelinks">
- <roundcube:if condition="env:optional_format=='text'" />
- <roundcube:button command="change-format" prop="text" image="/images/icons/text.png" width="15" height="15" title="changeformattext" id="changeformattext" />
- <roundcube:endif />
- <roundcube:if condition="env:optional_format=='html'" />
- <roundcube:button command="change-format" prop="html" image="/images/icons/html.png" width="15" height="15" title="changeformathtml" id="changeformathtml" />
- <roundcube:endif />
- </div>
<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" addicon="/images/icons/silhouette.png" summary="Message headers" />
<roundcube:object name="messageFullHeaders" id="full-headers" />
<roundcube:object name="messageAttachments" id="attachment-list" maxlength="50" />
@@ -73,17 +65,5 @@
</script>
<roundcube:endif />
-<div id="attachmentmenu" class="popupmenu">
- <ul class="toolbarmenu">
- <li><roundcube:button command="open-attachment" id="attachmenuopen" type="link" label="open" class="openlink" classAct="openlink active" innerclass="openlink" /></li>
- <li><roundcube:button command="download-attachment" id="attachmenudownload" type="link" label="download" class="downloadlink" classAct="downloadlink active" innerclass="downloadlink" /></li>
- <roundcube:container name="attachmentmenu" id="attachmentmenu" />
- </ul>
-</div>
-
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
</body>
</html>
diff --git a/skins/classic/templates/messageerror.html b/skins/classic/templates/messageerror.html
index eb8c7e058..918e3092a 100644
--- a/skins/classic/templates/messageerror.html
+++ b/skins/classic/templates/messageerror.html
@@ -27,7 +27,7 @@
</style>
</head>
-<body>
+<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
@@ -42,7 +42,7 @@
<div id="mailboxlist-container">
<div class="boxtitle"><roundcube:label name="mailboxlist" /></div>
<div class="boxlistcontent">
- <roundcube:object name="mailboxlist" id="mailboxlist" class="treelist" folder_filter="mail" />
+ <roundcube:object name="mailboxlist" id="mailboxlist" folder_filter="mail" />
</div>
<div class="boxfooter"></div>
</div>
@@ -61,10 +61,6 @@
rcmail.add_onload('mailviewsplitv.init()');
</script>
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
</body>
<roundcube:endif />
diff --git a/skins/classic/templates/messagepart.html b/skins/classic/templates/messagepart.html
index 9f2215679..ce7dbe2e1 100644
--- a/skins/classic/templates/messagepart.html
+++ b/skins/classic/templates/messagepart.html
@@ -3,39 +3,23 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
-<script type="text/javascript" src="/splitter.js"></script>
-<script type="text/javascript" src="/functions.js"></script>
-<style type="text/css">
-#messagepartheader { width: <roundcube:exp expression="!empty(cookie:mailpartsplitter) ? cookie:mailpartsplitter-5 : 170" />px; }
-#messagepartcontainer { left: <roundcube:exp expression="!empty(cookie:mailpartsplitter) ? cookie:mailpartsplitter+5 : 180" />px;
-<roundcube:exp expression="browser:ie ? ('width: expression((parseInt(this.parentNode.offsetWidth)-'.(!empty(cookie:mailpartsplitter) ? cookie:mailpartsplitter+5 : 180).')+\\'px\\');') : ''" />
-}
-</style>
</head>
<body class="extwin">
-<roundcube:object name="message" id="message" />
-<div id="messagetoolbar">
- <roundcube:button command="download" type="link" class="button download" classAct="button download" classSel="button downloadSel" title="download" content=" " />
- <roundcube:button command="print" type="link" class="button print" classAct="button print" classSel="button printSel" title="print" content=" " />
- <roundcube:container name="toolbar" id="messagetoolbar" />
+<roundcube:include file="/includes/header.html" />
+
+<div id="partheader">
+<roundcube:object name="messagePartControls" cellpadding="2" cellspacing="0" />
+
+<div style="position:absolute; top:2px; right:0; width:12em; text-align:right">
+ [<a href="#close" class="closelink" onclick="self.close()"><roundcube:label name="close" /></a>]
</div>
+</div>
+
-<div id="mainscreen">
- <div id="messagepartheader">
- <div class="boxtitle" /><roundcube:label name="properties" /></div>
- <div class="boxlistcontent">
- <roundcube:object name="messagePartControls" class="records-table" cellspacing="0" />
- </div>
- </div>
- <div id="messagepartcontainer">
- <roundcube:object name="messagePartFrame" id="messagepartframe" width="100%" height="100%" />
- </div>
+<div id="messagepartcontainer">
+<roundcube:object name="messagePartFrame" id="messagepartframe" width="100%" height="100%" />
</div>
-<script type="text/javascript">
-var mailpartsplit = new rcube_splitter({id:'mailpartsplitter', p1: 'messagepartheader', p2: 'messagepartcontainer', orientation: 'v', relative: true, start: 165});
-rcmail.add_onload('mailpartsplit.init()');
-</script>
</body>
</html>
diff --git a/skins/classic/templates/messagepreview.html b/skins/classic/templates/messagepreview.html
index 82414c420..cc6fafab1 100644
--- a/skins/classic/templates/messagepreview.html
+++ b/skins/classic/templates/messagepreview.html
@@ -3,21 +3,11 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
-<script type="text/javascript" src="/splitter.js"></script>
-<script type="text/javascript" src="/functions.js"></script>
</head>
<body class="iframe">
<div class="messageheaderbox">
- <div id="messagelinks">
- <roundcube:if condition="env:optional_format=='text'" />
- <roundcube:button command="change-format" prop="text" image="/images/icons/text.png" width="15" height="15" title="changeformattext" id="changeformattext" />
- <roundcube:endif />
- <roundcube:if condition="env:optional_format=='html'" />
- <roundcube:button command="change-format" prop="html" image="/images/icons/html.png" width="15" height="15" title="changeformathtml" id="changeformathtml" />
- <roundcube:endif />
- <roundcube:button command="extwin" image="/images/icons/extwin.png" width="15" height="15" title="openinextwin" id="openextwinlink" />
- </div>
+<roundcube:button command="extwin" image="/images/icons/extwin.png" width="15" height="15" title="openinextwin" id="openextwinlink" />
<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" addicon="/images/icons/silhouette.png" summary="Message headers" />
<roundcube:object name="messageFullHeaders" id="full-headers" />
<roundcube:object name="messageAttachments" id="attachment-list" maxlength="50" />
@@ -26,17 +16,5 @@
<roundcube:object name="messageObjects" id="message-objects" />
<roundcube:object name="messageBody" id="messagebody" />
-<div id="attachmentmenu" class="popupmenu">
- <ul class="toolbarmenu">
- <li><roundcube:button command="open-attachment" id="attachmenuopen" type="link" label="open" class="openlink" classAct="openlink active" innerclass="openlink" /></li>
- <li><roundcube:button command="download-attachment" id="attachmenudownload" type="link" label="download" class="downloadlink" classAct="downloadlink active" innerclass="downloadlink" /></li>
- <roundcube:container name="attachmentmenu" id="attachmentmenu" />
- </ul>
-</div>
-
-<script type="text/javascript">
-rcube_init_mail_ui();
-</script>
-
</body>
</html>
diff --git a/skins/classic/templates/messageprint.html b/skins/classic/templates/messageprint.html
index 173e8f69f..fa7822ad5 100644
--- a/skins/classic/templates/messageprint.html
+++ b/skins/classic/templates/messageprint.html
@@ -10,7 +10,7 @@
<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" />
<div id="printmessageframe">
-<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" max="10" />
+<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" />
<roundcube:object name="messageAttachments" id="attachment-list" />
<roundcube:object name="messageBody" id="messagebody" showImages="false" />
</div>
diff --git a/skins/larry/addressbook.css b/skins/larry/addressbook.css
index 39d0cce21..5befed9d7 100644
--- a/skins/larry/addressbook.css
+++ b/skins/larry/addressbook.css
@@ -67,7 +67,7 @@
#directorylist li a,
#contacts-table .contact td.name {
- background-image: url(images/listicons.png);
+ background-image: url(images/listicons.png?v=bd98.25486);
background-position: -100px 0;
background-repeat: no-repeat;
overflow: hidden;
@@ -75,27 +75,18 @@
text-overflow: ellipsis;
}
+#contacts-table .contact.readonly td {
+ font-style: italic;
+}
+
#directorylist li.addressbook a {
background-position: 6px -766px;
}
-#directorylist li.addressbook.selected > a {
+#directorylist li.addressbook.selected a {
background-position: 6px -791px;
}
-#directorylist li.addressbook ul li:last-child {
- border-bottom: 0;
-}
-
-#directorylist li.addressbook ul.groups {
- margin: 0;
- padding: 0;
-}
-
-#directorylist li.addressbook ul.groups li {
- width: 100%;
-}
-
#directorylist li.contactgroup a {
padding-left: 62px;
background-position: 32px -1555px;
@@ -121,34 +112,6 @@
margin-left: 8px;
}
-#directorylist li.addressbook div.collapsed,
-#directorylist li.addressbook div.expanded {
- top: 15px;
- left: 20px;
-}
-
-#contacts-table .contact.readonly td {
- font-style: italic;
-}
-
-#contacts-table td.name {
- width: 95%;
-}
-
-#contacts-table td.action {
- width: 24px;
- padding: 4px;
-}
-
-#contacts-table td.action a {
- display: block;
- width: 16px;
- height: 14px;
- text-indent: -5000px;
- overflow: hidden;
- background: url(images/listicons.png) -2px -1180px no-repeat;
-}
-
#contacts-table .contact td.name {
background-position: 6px -1603px;
}
@@ -159,29 +122,6 @@
font-weight: bold;
}
-#contacts-table .group td.name {
- background-position: 6px -1555px;
-}
-
-#contacts-table .group.selected td.name,
-#contacts-table .group.unfocused td.name {
- background-position: 6px -1579px;
- font-weight: bold;
-}
-
-#addresslist .boxtitle {
- padding-right: 95px;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-#addresslist .boxtitle a.poplink {
- color: #004458;
- font-size: 14px;
- line-height: 12px;
- text-decoration: none;
-}
-
#contact-frame {
position: absolute;
top: 0;
@@ -219,12 +159,12 @@
}
#contactpic img {
- max-width: 112px;
+ width: 112px;
visibility: inherit;
}
#contactpic.droptarget {
- background-image: url(images/filedrop.png);
+ background-image: url(images/filedrop.png?v=deab.605);
background-position: center;
background-repeat: no-repeat;
}
@@ -375,20 +315,5 @@ a.deletebutton {
height: 18px;
text-decoration: none;
text-indent: -5000px;
- background: url(images/buttons.png) -7px -377px no-repeat;
-}
-
-#import-box {
- position: absolute;
- bottom: 28px;
- top: 34px;
- left: 0;
- right: 0;
- overflow: auto;
- padding: 10px;
-}
-
-#import-box p,
-#import-box .propform {
- max-width: 50em;
+ background: url(images/buttons.png?v=abf1.36693) -7px -377px no-repeat;
}
diff --git a/skins/larry/embed.css b/skins/larry/embed.css
index 2c8ba39dc..6b8a65f5d 100644
--- a/skins/larry/embed.css
+++ b/skins/larry/embed.css
@@ -15,7 +15,7 @@
font-weight: bold;
color: #996600;
border: 1px solid #ffdf0e;
- background: url("images/messages.png") no-repeat scroll 5px -83px #fef893;
+ background: url(images/messages.png?v=01ee.1736) no-repeat scroll 5px -83px #fef893;
padding: 6px 12px 4px 30px;
margin-bottom: 0.8em;
}
diff --git a/skins/larry/ie7hacks.css b/skins/larry/ie7hacks.css
index 60adff7a1..6d7af4787 100644
--- a/skins/larry/ie7hacks.css
+++ b/skins/larry/ie7hacks.css
@@ -41,10 +41,8 @@ a.deletebutton,
.boxfooter .listbutton .inner,
.attachmentslist li a.delete,
.attachmentslist li a.cancelupload,
-#contacts-table td.action a,
.previewheader .iconlink,
-.minimal #taskbar .button-inner,
-#preferences-details fieldset.advanced .advanced-toggle {
+.minimal #taskbar .button-inner {
/* workaround for text-indent which also offsets the background image */
text-indent: 0;
font-size: 0;
diff --git a/skins/larry/iehacks.css b/skins/larry/iehacks.css
index 960ce7648..9996824b0 100644
--- a/skins/larry/iehacks.css
+++ b/skins/larry/iehacks.css
@@ -29,8 +29,7 @@ input.button.mainaction:active {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2a2e31', endColorstr='#505050', GradientType=0);
}
-a.button,
-.buttongroup {
+a.button {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e6e6e6', GradientType=0);
}
@@ -48,10 +47,6 @@ input.button:active {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bababa', endColorstr='#d8d8d8', GradientType=0);
}
-.buttongroup a.button.selected {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#909090', endColorstr='#858585', GradientType=0);
-}
-
#message.statusbar {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eaeaea', endColorstr='#c8c8c8', GradientType=0);
}
@@ -123,7 +118,7 @@ ul.toolbarmenu li a.active:hover,
.pagenav a.button.disabled span.inner,
.boxfooter .listbutton.disabled .inner,
.dropbutton a.button.disabled + .dropbuttontip {
- background-image: url(images/buttons.gif);
+ background-image: url(images/buttons.gif?v=aab8.13054);
}
/*** addressbook.css ***/
diff --git a/skins/larry/images/buttons.gif b/skins/larry/images/buttons.gif
index 8a4a78ee4..d8a33d6b2 100644
--- a/skins/larry/images/buttons.gif
+++ b/skins/larry/images/buttons.gif
Binary files differ
diff --git a/skins/larry/images/buttons.png b/skins/larry/images/buttons.png
index 8e2560198..4438d9cbc 100644
--- a/skins/larry/images/buttons.png
+++ b/skins/larry/images/buttons.png
Binary files differ
diff --git a/skins/larry/images/favicon.ico b/skins/larry/images/favicon.ico
index 9ef2f3b9e..b3bd18c12 100644
--- a/skins/larry/images/favicon.ico
+++ b/skins/larry/images/favicon.ico
Binary files differ
diff --git a/skins/larry/images/filetypes.png b/skins/larry/images/filetypes.png
index 09772660b..53b2eee9a 100644
--- a/skins/larry/images/filetypes.png
+++ b/skins/larry/images/filetypes.png
Binary files differ
diff --git a/skins/larry/images/listicons.png b/skins/larry/images/listicons.png
index f4fe20ccb..f4505d4fa 100644
--- a/skins/larry/images/listicons.png
+++ b/skins/larry/images/listicons.png
Binary files differ
diff --git a/skins/larry/includes/footer.html b/skins/larry/includes/footer.html
index a4fa69296..ee93fcf57 100644
--- a/skins/larry/includes/footer.html
+++ b/skins/larry/includes/footer.html
@@ -8,16 +8,4 @@ $(document).ready(function(){
});
</script>
-<!--[if lte IE 8]>
-<script type="text/javascript">
-
-// fix missing :last-child selectors
-$(document).ready(function(){
- $('ul.treelist ul').each(function(i,ul){
- $('li:last-child', ul).css('border-bottom', 0);
- });
-});
-
-</script>
-<![endif]-->
diff --git a/skins/larry/includes/header.html b/skins/larry/includes/header.html
index 69e8b8aa6..f2efb8e06 100644
--- a/skins/larry/includes/header.html
+++ b/skins/larry/includes/header.html
@@ -2,7 +2,7 @@
<div id="topline">
<div class="topleft">
<roundcube:container name="topline-left" id="topline-left" />
- <roundcube:button name="about" type="link" label="about" class="about-link" onclick="UI.show_about(this);return false" condition="!env:extwin" />
+ <roundcube:button name="about" type="link" label="about" class="about-link" onclick="UI.show_about(this);return false" />
<roundcube:if condition="config:support_url" />
<a href="<roundcube:var name='config:support_url' />" target="_blank" class="support-link" id="supportlink"><roundcube:label name="support" /></a>
<roundcube:endif />
@@ -14,7 +14,7 @@
<span class="username"><roundcube:object name="username" /></span>
<roundcube:button command="logout" label="logout" class="button-logout" />
<roundcube:elseif condition="env:extwin" />
- <roundcube:button name="close" type="link" label="close" class="closelink" onclick="self.close()" />
+ <roundcube:button command="close" label="close" class="closelink" />
<roundcube:endif />
</div>
</div>
@@ -29,9 +29,11 @@
<roundcube:button command="logout" label="logout" class="button-logout" classSel="button-logout" innerClass="button-inner" />
<span class="minmodetoggle"></span>
</div>
- <roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" alt="Logo" onclick="if(window.rcmail)rcmail.command('switch-task','mail')" />
+ <roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" border="0" alt="Logo" onclick="rcmail.command('switch-task','mail');return false;" />
</div>
<roundcube:endif />
<br style="clear:both" />
</div>
+
+
diff --git a/skins/larry/includes/settingstabs.html b/skins/larry/includes/settingstabs.html
index e62695848..bb26fc6a6 100644
--- a/skins/larry/includes/settingstabs.html
+++ b/skins/larry/includes/settingstabs.html
@@ -1,7 +1,9 @@
<div id="settings-sections" class="uibox listbox">
<h2 class="boxtitle"><roundcube:label name="settings" /></h2>
<div id="settings-tabs" class="scroller">
- <roundcube:object name="settingstabs" class="listitem" />
+ <span id="settingstabpreferences" class="listitem preferences"><roundcube:button command="preferences" type="link" label="preferences" title="editpreferences" /></span>
+ <span id="settingstabfolders" class="listitem folders"><roundcube:button command="folders" type="link" label="folders" title="managefolders" /></span>
+ <span id="settingstabidentities" class="listitem identities"><roundcube:button command="identities" type="link" label="identities" title="manageidentities" /></span>
<roundcube:container name="tabs" id="settings-tabs" />
</div>
</div>
diff --git a/skins/larry/mail.css b/skins/larry/mail.css
index bb2ad7b9d..c3495276e 100644
--- a/skins/larry/mail.css
+++ b/skins/larry/mail.css
@@ -2,7 +2,7 @@
* Roundcube webmail styles for the Email section
*
* Copyright (c) 2012, The Roundcube Dev Team
- * Screendesign by FLINT / Büro für Gestaltung, bueroflint.com
+ * Screendesign by FLINT / B�ro f�r Gestaltung, bueroflint.com
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
* License. It is allowed to copy, distribute, transmit and to adapt the work
@@ -54,10 +54,6 @@
border-top: none;
}
-#composeview-right #mailview-bottom {
- border-radius: 0 0 4px 4px;
-}
-
#folderlist-header {
width: 100%;
height: 12px;
@@ -79,12 +75,6 @@
overflow: auto;
}
-/* Real browsers accept this (not IE) */
-html>/**/body #messagelist {
- overflow: auto;
- overflow-x: hidden;
-}
-
#messagelistfooter {
position: absolute;
bottom: 0;
@@ -151,7 +141,7 @@ a.iconbutton.threadmode.selected {
background-position: 6px 2px;
}
-#mailboxlist > li:first-child {
+#mailboxlist li:first-child {
border-radius: 4px 4px 0 0;
border-top: 0;
}
@@ -161,12 +151,12 @@ a.iconbutton.threadmode.selected {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
- background-image: url(images/listicons.png);
+ background-image: url(images/listicons.png?v=bd98.25486);
background-repeat: no-repeat;
background-position: 6px 3px;
}
-#mailboxlist li.mailbox.unread > a {
+#mailboxlist li.mailbox.unread a {
padding-right: 36px;
}
@@ -222,46 +212,6 @@ a.iconbutton.threadmode.selected {
background-position: 6px -1723px;
}
-#mailboxlist li.mailbox ul li.drafts > a {
- background-position: 23px -238px;
-}
-
-#mailboxlist li.mailbox ul li.drafts.selected > a {
- background-position: 23px -262px;
-}
-
-#mailboxlist li.mailbox ul li.sent > a {
- background-position: 23px -286px;
-}
-
-#mailboxlist li.mailbox ul li.sent.selected > a {
- background-position: 23px -310px;
-}
-
-#mailboxlist li.mailbox ul li.junk > a {
- background-position: 23px -334px;
-}
-
-#mailboxlist li.mailbox ul li.junk.selected > a {
- background-position: 23px -358px;
-}
-
-#mailboxlist li.mailbox ul li.trash > a {
- background-position: 23px -382px;
-}
-
-#mailboxlist li.mailbox ul li.trash.selected > a {
- background-position: 23px -406px;
-}
-
-#mailboxlist li.mailbox ul li.archive > a {
- background-position: 23px -1699px;
-}
-
-#mailboxlist li.mailbox ul li.archive.selected > a {
- background-position: 23px -1723px;
-}
-
#mailboxlist li.unread {
font-weight: bold;
}
@@ -274,17 +224,6 @@ a.iconbutton.threadmode.selected {
color: #017cb4;
}
-#mailboxlist li.mailbox div.treetoggle {
- top: 13px;
- left: 19px;
-}
-
-#mailboxlist li.mailbox ul li:last-child {
- border-bottom: 0;
-}
-
-/* nested mailboxes */
-
#mailboxlist li.mailbox ul {
list-style: none;
margin: 0;
@@ -292,57 +231,50 @@ a.iconbutton.threadmode.selected {
border-top: 1px solid #bbd3da;
}
+#mailboxlist li.mailbox ul li {
+ padding-left: 26px;
+}
+
#mailboxlist li.mailbox ul li a {
- padding-left: 52px; /* 36 + 1 x 16 */
- background-position: 22px -93px; /* 6 + 1 x 16 */
+ background-position: 6px -93px;
}
+
#mailboxlist li.mailbox ul li.selected > a {
- background-position: 22px -117px;
-}
-#mailboxlist li.mailbox ul li div.treetoggle {
- left: 33px;
- top: 14px;
+ background-position: 6px -117px;
}
-#mailboxlist li.mailbox ul ul li.mailbox a {
- padding-left: 68px; /* 2x */
- background-position: 38px -93px;
-}
-#mailboxlist li.mailbox ul ul li.selected > a {
- background-position: 38px -117px;
-}
-#mailboxlist li.mailbox ul ul li div.treetoggle {
- left: 48px;
+#mailboxlist li.mailbox ul li:last-child {
+ border-bottom: 0;
}
-#mailboxlist li.mailbox ul ul ul li.mailbox a {
- padding-left: 84px; /* 3x */
- background-position: 54px -93px;
-}
-#mailboxlist li.mailbox ul ul ul li.selected > a {
- background-position: 54px -117px;
-}
-#mailboxlist li.mailbox ul ul ul li div.treetoggle {
- left: 64px;
+#mailboxlist li.mailbox div.collapsed,
+#mailboxlist li.mailbox div.expanded {
+ position: absolute;
+ top: 13px;
+ left: 19px;
+ width: 13px;
+ height: 13px;
+ background: url(images/listicons.png?v=bd98.25486) -3px -144px no-repeat;
+ cursor: pointer;
}
-#mailboxlist li.mailbox ul ul ul ul li.mailbox a {
- padding-left: 100px; /* 4x */
- background-position: 70px -93px;
+#mailboxlist li.mailbox div.expanded {
+ background-position: -3px -168px;
}
-#mailboxlist li.mailbox ul ul ul ul li.selected > a {
- background-position: 70px -117px;
-}
-#mailboxlist li.mailbox ul ul ul ul li div.treetoggle {
- left: 80px;
+
+#mailboxlist li.mailbox.selected > div.collapsed {
+ background-position: -23px -144px;
}
-/* indent folders on levels > 4 */
-#mailboxlist li.mailbox ul ul ul ul ul li {
- padding-left: 16px;
+#mailboxlist li.mailbox.selected > div.expanded {
+ background-position: -23px -168px;
}
-#mailboxlist li.mailbox ul ul ul ul ul li div.treetoggle {
- left: 96px;
+
+
+#mailboxlist li.mailbox ul li div.collapsed,
+#mailboxlist li.mailbox ul li div.expanded {
+ left: 43px;
+ top: 14px;
}
#mailboxlist li.mailbox .unreadcount {
@@ -434,6 +366,7 @@ a.iconbutton.threadmode.selected {
position: absolute;
right: 0;
top: 0;
+ width: 400px;
}
#mailpreviewtoggle {
@@ -443,7 +376,7 @@ a.iconbutton.threadmode.selected {
right: 4px;
width: 20px;
height: 18px;
- background: url(images/buttons.png) -3px -458px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -3px -458px no-repeat;
}
#mailpreviewtoggle.enabled {
@@ -453,295 +386,278 @@ a.iconbutton.threadmode.selected {
/*** message list ***/
-/* this is necessary to make FF3 display borders */
-body:-moz-last-node #messagelist {
- border-collapse: separate;
-}
-
-table.messagelist {
- z-index: 1;
-}
-
-table.messagelist.fixedcopy {
- z-index: 2;
-}
-
-.messagelist thead td:first-child {
+#messagelist thead td:first-child {
border-radius: 4px 0 0 0; /* for Chrome */
}
-.messagelist tr td.attachment,
-.messagelist tr td.threads,
-.messagelist tr td.status,
-.messagelist tr td.flag,
-.messagelist tr td.priority {
+#messagelist tr td.attachment,
+#messagelist tr td.threads,
+#messagelist tr td.status,
+#messagelist tr td.flag,
+#messagelist tr td.priority {
width: 20px;
padding: 2px 3px;
}
-.webkit .messagelist tr td.attachment,
-.webkit .messagelist tr td.threads,
-.webkit .messagelist tr td.status,
-.webkit .messagelist tr td.flag,
-.webkit .messagelist tr td.priority {
+.webkit #messagelist tr td.attachment,
+.webkit #messagelist tr td.threads,
+.webkit #messagelist tr td.status,
+.webkit #messagelist tr td.flag,
+.webkit #messagelist tr td.priority {
width: 26px;
}
-.messagelist tr td.threads {
+#messagelist tr td.threads {
width: 26px;
}
-.webkit .messagelist tr td.threads {
+.webkit #messagelist tr td.threads {
width: 30px;
}
-.messagelist tr td.threads,
-.messagelist tr td.threads + td {
+#messagelist tr td.threads,
+#messagelist tr td.threads + td {
border-left: 0;
}
-.messagelist tr td.size {
+#messagelist tr td.size {
width: 60px;
text-align: right;
}
-.messagelist thead tr td.size {
+#messagelist thead tr td.size {
text-align: left;
}
-.messagelist tr td.fromto,
-.messagelist tr td.from,
-.messagelist tr td.to,
-.messagelist tr td.cc,
-.messagelist tr td.replyto {
+#messagelist tr td.fromto,
+#messagelist tr td.from,
+#messagelist tr td.to,
+#messagelist tr td.cc,
+#messagelist tr td.replyto {
width: 200px;
}
-.messagelist tr td.date {
- width: 155px;
+#messagelist tr td.date {
+ width: 125px;
}
-.messagelist tr.message {
+#messagelist tr.message {
/* background-color: #fff; */
}
-.messagelist tr.thread.expanded td {
+#messagelist tr.thread.expanded td {
background-color: #ededed;
}
-.messagelist tr.unread {
+#messagelist tr.unread {
font-weight: bold;
/* background-color: #fff; */
}
-.messagelist tr.flagged td,
-.messagelist tr.flagged td a {
+#messagelist tr.flagged td,
+#messagelist tr.flagged td a {
color: #f30;
}
-.messagelist thead tr td.sortedASC a,
-.messagelist thead tr td.sortedDESC a {
+#messagelist thead tr td.sortedASC a,
+#messagelist thead tr td.sortedDESC a {
color: #004458;
text-decoration: underline;
- background: url(images/listicons.png) right -912px no-repeat;
+ background: url(images/listicons.png?v=bd98.25486) right -912px no-repeat;
}
-.messagelist thead tr td.sortedASC a {
+#messagelist thead tr td.sortedASC a {
background-position: right -944px;
}
-.messagelist td img {
+#messagelist td img {
vertical-align: middle;
display: inline-block;
}
-.messagelist tbody td a {
+#messagelist tbody td a {
color: #333;
text-decoration: none;
white-space: nowrap;
cursor: default;
}
-.messagelist tbody tr td.flag,
-.messagelist tbody tr td.status,
-.messagelist tbody tr td.subject span.status {
+#messagelist tbody tr td.flag,
+#messagelist tbody tr td.status,
+#messagelist tbody tr td.subject span.status {
cursor: pointer;
}
-.messagelist tr td.flag span,
-.messagelist tr td.status span,
-.messagelist tr td.attachment span,
-.messagelist tr td.priority span {
+#messagelist tr td.flag span,
+#messagelist tr td.status span,
+#messagelist tr td.attachment span,
+#messagelist tr td.priority span {
display: block;
width: 20px;
}
-.messagelist tr td div.collapsed,
-.messagelist tr td div.expanded,
-.messagelist tr td.threads div.listmenu,
-.messagelist tr td.attachment span.attachment,
-.messagelist tr td.attachment span.report,
-.messagelist tr td.priority span.priority,
-.messagelist tr td.priority span.prio1,
-.messagelist tr td.priority span.prio2,
-.messagelist tr td.priority span.prio3,
-.messagelist tr td.priority span.prio4,
-.messagelist tr td.priority span.prio5,
-.messagelist tr td.flag span.flagged,
-.messagelist tr td.flag span.unflagged,
-.messagelist tr td.flag span.unflagged:hover,
-.messagelist tr td.status span.status,
-.messagelist tr td.status span.msgicon,
-.messagelist tr td.status span.deleted,
-.messagelist tr td.status span.unread,
-.messagelist tr td.status span.unreadchildren,
-.messagelist tr td.subject span.msgicon,
-.messagelist tr td.subject span.deleted,
-.messagelist tr td.subject span.unread,
-.messagelist tr td.subject span.replied,
-.messagelist tr td.subject span.forwarded,
-.messagelist tr td.subject span.unreadchildren {
+#messagelist tr td div.collapsed,
+#messagelist tr td div.expanded,
+#messagelist tr td.threads div.listmenu,
+#messagelist tr td.attachment span.attachment,
+#messagelist tr td.attachment span.report,
+#messagelist tr td.priority span.priority,
+#messagelist tr td.priority span.prio1,
+#messagelist tr td.priority span.prio2,
+#messagelist tr td.priority span.prio3,
+#messagelist tr td.priority span.prio4,
+#messagelist tr td.priority span.prio5,
+#messagelist tr td.flag span.flagged,
+#messagelist tr td.flag span.unflagged,
+#messagelist tr td.flag span.unflagged:hover,
+#messagelist tr td.status span.status,
+#messagelist tr td.status span.msgicon,
+#messagelist tr td.status span.deleted,
+#messagelist tr td.status span.unread,
+#messagelist tr td.status span.unreadchildren,
+#messagelist tr td.subject span.msgicon,
+#messagelist tr td.subject span.deleted,
+#messagelist tr td.subject span.unread,
+#messagelist tr td.subject span.replied,
+#messagelist tr td.subject span.forwarded,
+#messagelist tr td.subject span.unreadchildren {
display: inline-block;
vertical-align: middle;
height: 18px;
width: 20px;
padding: 0;
- background: url(images/listicons.png) -100px 0 no-repeat;
+ background: url(images/listicons.png?v=bd98.25486) -100px 0 no-repeat;
}
-.messagelist tbody tr td.attachment span.attachment {
+#messagelist tbody tr td.attachment span.attachment {
background-position: 0 -996px;
}
-.messagelist thead tr td.attachment span.attachment {
+#messagelist thead tr td.attachment span.attachment {
background-position: -24px -997px;
}
-.messagelist tbody tr td.attachment span.report {
+#messagelist tbody tr td.attachment span.report {
background-position: -24px -1116px;
}
-.messagelist thead tr td.priority span.priority {
- background-position: -24px -1845px;
-}
-
-.messagelist tr td.priority span.prio5 {
+#messagelist tr td.priority span.prio5 {
background-position: 0 -1905px;
}
-.messagelist tr td.priority span.prio4 {
+#messagelist tr td.priority span.prio4 {
background-position: 0 -1885px;
}
-.messagelist tr td.priority span.prio2 {
+#messagelist tr td.priority span.prio2 {
background-position: 0 -1865px;
}
-.messagelist tr td.priority span.prio1 {
+#messagelist tr td.priority span.prio1 {
background-position: 0 -1845px;
}
-.messagelist tbody tr td.flag span.flagged {
+#messagelist tbody tr td.flag span.flagged {
background-position: 0 -1036px;
}
-.messagelist thead tr td.flag span.flagged {
- background-position: -22px -1036px;
+#messagelist thead tr td.flag span.flagged {
+ background-position: -24px -1036px;
}
-.messagelist tr td.status span.msgicon:hover {
+#messagelist tr td.status span.msgicon:hover {
background-position: -23px -1056px;
}
-.messagelist tr td.flag span.unflagged:hover {
+#messagelist tr td.flag span.unflagged:hover {
background-position: -23px -1076px;
}
-.messagelist tr td.subject span.msgicon,
-.messagelist tr td.subject span.unreadchildren {
+#messagelist tr td.subject span.msgicon,
+#messagelist tr td.subject span.unreadchildren {
background-position: 0 -1056px;
margin: 0 1px 0 0;
width: 24px;
}
-.messagelist tr td.subject span.replied {
+#messagelist tr td.subject span.replied {
background-position: 0 -1076px;
}
-.messagelist tr td.subject span.forwarded {
+#messagelist tr td.subject span.forwarded {
background-position: 0 -1096px;
}
-.messagelist tr td.subject span.replied.forwarded {
+#messagelist tr td.subject span.replied.forwarded {
background-position: 0 -1116px;
}
-.messagelist tr td.status span.msgicon,
-.messagelist tr td.flag span.unflagged,
-.messagelist tr td.status span.unreadchildren {
+#messagelist tr td.status span.msgicon,
+#messagelist tr td.flag span.unflagged,
+#messagelist tr td.status span.unreadchildren {
background-position: 0 1056px; /* no icon */
}
/*
-.messagelist tr td.status span.msgicon:hover {
+#messagelist tr td.status span.msgicon:hover {
background-position: 0 -272px;
}
*/
-.messagelist tr td.status span.deleted,
-.messagelist tr td.status span.deleted:hover,
-.messagelist tr td.subject span.deleted {
+#messagelist tr td.status span.deleted,
+#messagelist tr td.status span.deleted:hover,
+#messagelist tr td.subject span.deleted {
background-position: -22px -1096px;
}
-.messagelist tr td.status span.status,
-.messagelist tr td.status span.unread,
-.messagelist tr td.subject span.unread,
-.messagelist tr td.status span.unread:hover {
+#messagelist tr td.status span.status,
+#messagelist tr td.status span.unread,
+#messagelist tr td.subject span.unread,
+#messagelist tr td.status span.unread:hover {
background-position: 0 -1016px;
}
-.messagelist thead tr td.status span.status {
- background-position: -23px -1017px;
+#messagelist thead tr td.status span.status {
+ background-position: -24px -1016px;
}
-.messagelist tr td div.collapsed {
+#messagelist tr td div.collapsed {
background-position: 0 -1137px;
cursor: pointer;
}
-.messagelist tr td div.expanded {
+#messagelist tr td div.expanded {
background-position: 0 -1157px;
cursor: pointer;
}
-.messagelist tr td.threads div.listmenu {
+#messagelist tr td.threads div.listmenu {
background-position: 0 -976px;
cursor: pointer;
width: 26px;
}
-.messagelist thead tr td.subject,
-.messagelist tbody tr td.subject {
+#messagelist thead tr td.subject,
+#messagelist tbody tr td.subject {
width: 99%;
white-space: nowrap;
}
-.messagelist tbody tr td.subject a {
+#messagelist tbody tr td.subject a {
cursor: default;
vertical-align: middle; /* #1487091 */
}
/* thread parent message with unread children */
-.messagelist tbody tr.unroot td.subject a {
+#messagelist tbody tr.unroot td.subject a {
text-decoration: underline;
}
/**** tree indicators ****/
-.messagelist tbody tr td span.branch div {
+#messagelist tbody tr td span.branch div {
display: inline-block;
}
-.messagelist tbody tr td span.branch div.tree {
+#messagelist tbody tr td span.branch div.tree {
width: 15px;
}
@@ -772,10 +688,10 @@ table.messagelist.fixedcopy {
width: 100%;
bottom: 27px;
overflow: auto;
- -webkit-overflow-scrolling: touch;
}
#messageheader,
+#partheader,
#composeheaders {
position: relative;
padding: 3px 0;
@@ -910,7 +826,7 @@ h3.subject {
left: 0;
width: 18px;
height: 16px;
- background: url(images/buttons.png) -27px -242px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -27px -242px no-repeat;
}
.moreheaderstoggle.remove .iconlink {
@@ -930,11 +846,11 @@ div.more-headers {
width: 12px;
height: 10px;
cursor: pointer;
- background: url(images/buttons.png) center -1579px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) center -1579px no-repeat;
}
div.hide-headers {
- background-position: center -1590px;
+ background-position: center -1589px;
}
#all-headers {
@@ -987,7 +903,7 @@ div.hide-headers {
width: 32px;
height: 32px;
overflow: hidden;
- background: url(images/contactpic_32px.png) center center no-repeat #fff;
+ background: url(images/contactpic_32px.png?v=09a3.287) center center no-repeat #fff;
border-radius: 3px;
}
@@ -1011,7 +927,7 @@ div.hide-headers {
overflow: hidden;
border-radius: 4px;
border: 1px solid #e6e6e6;
- background: url(images/contactpic_48px.png) center center no-repeat #fff;
+ background: url(images/contactpic_48px.png?v=1bc4.353) center center no-repeat #fff;
}
#messageheader #contactphoto img {
@@ -1020,8 +936,7 @@ div.hide-headers {
border-radius: 4px;
}
-#messageheader #countcontrols,
-#messageheader #formatcontrols {
+#messageheader #countcontrols {
position: absolute;
top: 8px;
right: 8px;
@@ -1029,11 +944,6 @@ div.hide-headers {
white-space: nowrap;
}
-#messageheader #formatcontrols {
- top: 38px;
- right: 8px;
-}
-
#messageheader .pagenav .countdisplay {
min-width: 0;
padding-right: 0.5em;
@@ -1104,8 +1014,8 @@ div.message-partheaders {
div.message-part pre,
div.message-htmlpart pre,
div.message-part div.pre {
- margin: 0;
- padding: 0;
+ margin: 0px;
+ padding: 0px;
font-family: monospace;
font-size: 12px;
white-space: -moz-pre-wrap !important;
@@ -1114,7 +1024,7 @@ div.message-part div.pre {
}
div.message-part span.sig {
- color: #666;
+ color: #666666;
}
div.message-part blockquote {
@@ -1122,7 +1032,7 @@ div.message-part blockquote {
border-left: 2px solid blue;
border-right: 2px solid blue;
background-color: #F6F6F6;
- margin: 2px 0 2px 0;
+ margin: 2px 0px 2px 0px;
padding: 1px 8px 1px 10px;
}
@@ -1133,9 +1043,9 @@ div.message-part blockquote blockquote {
}
div.message-part blockquote blockquote blockquote {
- color: #900;
- border-left: 2px solid #b00;
- border-right: 2px solid #b00;
+ color: #990000;
+ border-left: 2px solid #bb0000;
+ border-right: 2px solid #bb0000;
}
div.message-partheaders {
@@ -1210,10 +1120,10 @@ div.message-partheaders .headers-table td.header {
#messagepartcontainer {
position: absolute;
- top: 42px;
- left: 232px;
- right: 0;
- bottom: 0;
+ top: 60px;
+ left: 0px;
+ right: 0px;
+ bottom: 0px;
}
#messagepartframe {
@@ -1222,30 +1132,6 @@ div.message-partheaders .headers-table td.header {
height: 100%;
}
-#messagepartheader {
- position: absolute;
- top: 42px;
- left: 0;
- width: 220px;
- bottom: 0;
-}
-
-#messagepartheader table {
- table-layout: fixed;
- overflow: hidden;
-}
-
-#messagepartheader table td {
- text-overflow: ellipsis;
- overflow: hidden;
-}
-
-#messagepartheader table td.title {
- width: 60px;
- padding-right: 0;
-}
-
-
/*** message composition ***/
#composeview-left {
@@ -1318,25 +1204,12 @@ div.message-partheaders .headers-table td.header {
}
#compose-contacts li a, #contacts-table td {
- background: url(images/listicons.png) -100px 0 no-repeat;
+ background: url(images/listicons.png?v=bd98.25486) -100px 0 no-repeat;
overflow: hidden;
padding-left: 36px;
text-overflow: ellipsis;
}
-#contacts-table td.contactgroup a {
- color: #376572;
- text-decoration: none;
-}
-
-#contacts-table td.contactgroup a span {
- display: inline-block;
- font-size: 16px;
- font-weight: bold;
- line-height: 11px;
- margin-left: 0.3em;
-}
-
#contacts-table tr:first-child td {
border-top: 0;
}
@@ -1543,7 +1416,7 @@ div.message-partheaders .headers-table td.header {
}
#compose-attachments.droptarget {
- background-image: url(images/filedrop.png);
+ background-image: url(images/filedrop.png?v=deab.605);
background-position: center bottom;
background-repeat: no-repeat;
}
diff --git a/skins/larry/settings.css b/skins/larry/settings.css
index af667b9e7..213a4cf9b 100644
--- a/skins/larry/settings.css
+++ b/skins/larry/settings.css
@@ -2,7 +2,7 @@
* Roundcube webmail styles for the Settings section
*
* Copyright (c) 2012, The Roundcube Dev Team
- * Screendesign by FLINT / Büro für Gestaltung, bueroflint.com
+ * Screendesign by FLINT / Büro für Gestaltung, bueroflint.com
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
* License. It is allowed to copy, distribute, transmit and to adapt the work
@@ -48,41 +48,11 @@
border-radius: 4px 4px 0 0;
}
-#preferences-details fieldset.advanced legend {
- position: relative;
- display: block;
- width: 100%;
- cursor: pointer;
-}
-
-#preferences-details fieldset.advanced .propform {
- display: none;
-}
-
-#preferences-details fieldset.advanced .advanced-toggle {
- position: absolute;
- display: block;
- top: 0px;
- right: 6px;
- text-decoration: none;
- color: #666;
- font-size: 11px;
- width: 20px;
- height: 18px;
- background: url('images/listicons.png') 0 -1157px no-repeat;
- text-indent: 1000px;
- overflow: hidden;
-}
-
-#preferences-details fieldset.advanced .collapsed .advanced-toggle {
- background-position: -24px -1137px;
-}
-
#sections-table tbody td.section,
#settings-sections span.listitem a,
#settings-sections span.tablink a {
padding-left: 36px;
- background-image: url(images/listicons.png);
+ background-image: url(images/listicons.png?v=bd98.25486);
background-position: -100px 0;
background-repeat: no-repeat;
}
@@ -140,14 +110,6 @@
background-position: 6px -1819px;
}
-#settings-sections span.responses a {
- background-position: 6px -1972px;
-}
-
-#settings-sections span.responses.selected a {
- background-position: 6px -1996px;
-}
-
#sections-table #rcmrowgeneral td.section {
background-position: 6px -573px;
}
@@ -224,10 +186,6 @@
text-overflow: ellipsis;
}
-#identities-table tbody tr.readonly td {
- font-style: italic;
-}
-
#folder-details,
#identity-details {
position: absolute;
@@ -309,13 +267,3 @@ img.skinthumbnail {
.webkit #pluginlist td.source {
width: 9em;
}
-
-#rcmfd_signature {
- width: 99%;
- min-width: 390px;
-}
-
-#rcmfd_signature_toolbar1 td,
-#rcmfd_signature_toolbar2 td {
- width: auto;
-}
diff --git a/skins/larry/styles.css b/skins/larry/styles.css
index 6e0340689..81e5421ad 100644
--- a/skins/larry/styles.css
+++ b/skins/larry/styles.css
@@ -14,7 +14,7 @@ body {
font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #333;
- background: url(images/linen.jpg) repeat #d1d5d8;
+ background: url(images/linen.jpg?v=0382.14157) repeat #d1d5d8;
margin: 0;
}
@@ -50,8 +50,6 @@ textarea {
input[type="text"]:focus,
input[type="password"]:focus,
-input[type="text"]:required,
-input[type="password"]:required,
input.button:focus,
textarea:focus {
border-color: #4787b1;
@@ -179,8 +177,7 @@ input.mainaction {
/** link buttons **/
-a.button,
-.buttongroup {
+a.button {
display: inline-block;
margin: 0 2px;
padding: 2px 5px;
@@ -201,11 +198,6 @@ a.button,
text-decoration: none;
}
-.buttongroup {
- padding: 0;
- white-space: nowrap;
-}
-
a.button:focus,
input.button:focus {
border-color: #4fadd5;
@@ -239,29 +231,6 @@ a.button.disabled span.inner {
filter: alpha(opacity=40);
}
-.buttongroup a.button {
- margin: 0;
- border-width: 0 1px 0 0;
- border-radius: 0;
- background: none;
- box-shadow: none;
- -o-box-shadow: none;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
-}
-
-.buttongroup a.button.first,
-.buttongroup a.button:first-child {
- border-radius: 4px 0 0 4px;
- border-left: 0;
-}
-
-.buttongroup a.button.last,
-.buttongroup a.button:last-child {
- border-radius: 0 4px 4px 0;
- border-right: 0;
-}
-
a.button.pressed,
a.button:active,
input.button:active {
@@ -297,21 +266,6 @@ input.button:active {
background: linear-gradient(top, #bababa 0%, #d8d8d8 100%);
}
-.buttongroup a.button.selected,
-.buttongroup a.button.selected:hover {
- background: #8a8a8a;
- background: -moz-linear-gradient(top, #909090 0%, #858585 100%);
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#909090), color-stop(100%,#858585));
- background: -o-linear-gradient(top, #909090 0%, #858585 100%);
- background: -ms-linear-gradient(top, #909090 0%, #858585 100%);
- background: linear-gradient(top, #909090 0%, #858585 100%);
- -webkit-box-shadow: inset 0 1px 2px 0 #555;
- -moz-box-shadow: inset 0 1px 2px 0 #555;
- box-shadow: inset 0 1px 2px 0 #555;
- border-right-color: #555;
- border-left-color: #555;
-}
-
.pagenav a.button {
padding: 1px 3px;
height: 16px;
@@ -319,19 +273,13 @@ input.button:active {
margin-bottom: 1px;
}
-.pagenav .buttongroup a.button,
-.pagenav .buttongroup a.button:hover {
- padding: 1px 5px;
- margin-bottom: 0;
-}
-
.pagenav a.button span.inner {
display: inline-block;
width: 16px;
height: 13px;
text-indent: 1000px;
overflow: hidden;
- background: url(images/buttons.png) -6px -211px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -6px -211px no-repeat;
}
.pagenav a.prevpage span.inner {
@@ -370,20 +318,6 @@ input.button:active {
background-position: -29px -271px;
}
-.pagenav a.changeformat.html span.inner {
- background-position: -7px -1859px;
-}
-.pagenav a.changeformat.html.selected span.inner {
- background-position: -29px -1859px;
-}
-
-.pagenav a.changeformat.text span.inner {
- background-position: -7px -1874px;
-}
-.pagenav a.changeformat.text.selected span.inner {
- background-position: -29px -1874px;
-}
-
.pagenav .countdisplay {
display: inline-block;
padding: 3px 1em 0 1em;
@@ -402,7 +336,7 @@ a.iconbutton {
height: 18px;
text-decoration: none;
text-indent: -5000px;
- background: url(images/buttons.png) -1000px 0 no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -1000px 0 no-repeat;
}
a.iconbutton.disabled {
@@ -429,7 +363,7 @@ a.iconlink {
text-decoration: none;
white-space: nowrap;
padding: 2px 8px 2px 20px;
- background: url(images/buttons.png) -1000px 0 no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -1000px 0 no-repeat;
}
a.iconlink:hover {
@@ -474,7 +408,7 @@ a.iconlink.upload {
padding: 6px 30px 6px 25px;
display: inline-block;
white-space: nowrap;
- background: url(images/messages.png) 0 5px no-repeat;
+ background: url(images/messages.png?v=01ee.1736) 0 5px no-repeat;
cursor: default;
}
@@ -494,7 +428,7 @@ a.iconlink.upload {
}
#message div.loading {
- background: url(images/ajaxloader.gif) 2px 6px no-repeat;
+ background: url(images/ajaxloader.gif?v=c252.1434) 2px 6px no-repeat;
}
#message div a,
@@ -532,7 +466,7 @@ a.iconlink.upload {
.ui-dialog.warning .ui-dialog-title,
.ui-dialog.confirmation .ui-dialog-title {
padding-left: 25px;
- background: url(images/messages.png) 0 5px no-repeat;
+ background: url(images/messages.png?v=01ee.1736) 0 5px no-repeat;
text-shadow: 0 1px 1px #fff;
}
@@ -580,7 +514,7 @@ a.iconlink.upload {
#topline {
height: 18px;
- background: url(images/linen_header.jpg) repeat #666;
+ background: url(images/linen_header.jpg?v=514a.580) repeat #666;
border-bottom: 1px solid #4f4f4f;
padding: 2px 0 2px 10px;
color: #aaa;
@@ -613,7 +547,6 @@ a.iconlink.upload {
#toplogo {
padding-top: 2px;
cursor: pointer;
- border: none;
}
.topleft {
@@ -642,7 +575,7 @@ a.iconlink.upload {
#topline a.button-logout {
display: inline-block;
padding: 2px 10px 2px 20px;
- background: url(images/buttons.png) -6px -193px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -6px -193px no-repeat;
color: #fff;
}
@@ -693,6 +626,17 @@ a.iconlink.upload {
opacity: 0.999;
}
+.partwin #topline {
+ position: absolute;
+ right: 6px;
+ top: 18px;
+ width: auto;
+ z-index: 100;
+ background: transparent;
+ background: none;
+ border: 0;
+}
+
.minimal #topline a.button-logout {
display: none;
}
@@ -799,7 +743,7 @@ a.iconlink.upload {
text-shadow: 0px 1px 1px black;
padding: 5px 0 0 34px;
height: 19px;
- background: url(images/buttons.png) -1000px 0 no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -1000px 0 no-repeat;
}
#taskbar a.button-selected {
@@ -851,7 +795,7 @@ a.iconlink.upload {
width: 19px;
height: 46px;
cursor: pointer;
- background: url(images/buttons.png) -35px -1778px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -35px -1778px no-repeat;
}
.minimal #taskbar .minmodetoggle {
@@ -875,6 +819,10 @@ a.iconlink.upload {
top: 102px;
}
+.partwin #mainscreen {
+ top: 60px
+}
+
.extwin #mainscreen {
top: 40px;
}
@@ -884,7 +832,7 @@ a.iconlink.upload {
}
#mainscreen .offset {
- top: 42px;
+ margin-top: 42px;
}
.uibox {
@@ -924,7 +872,7 @@ a.iconlink.upload {
}
.watermark {
- background-image: url(images/watermark.jpg);
+ background-image: url(images/watermark.jpg?v=e784.5000);
background-position: center;
background-repeat: no-repeat;
}
@@ -1047,19 +995,11 @@ ul.listing li {
background-color: #d9ecf4;
}
-ul.listing li ul {
- border-top: 1px solid #bbd3da;
-}
-
ul.listing li.droptarget,
table.listing tr.droptarget td {
background-color: #e8e798;
}
-.listbox table.listing {
- background-color: #d9ecf4;
-}
-
table.listing,
table.layout {
border: 0;
@@ -1071,32 +1011,6 @@ table.layout td {
vertical-align: top;
}
-ul.treelist li {
- position: relative;
-}
-
-ul.treelist li div.treetoggle {
- position: absolute;
- top: 13px;
- left: 19px;
- width: 13px;
- height: 13px;
- background: url(images/listicons.png) -3px -144px no-repeat;
- cursor: pointer;
-}
-
-ul.treelist li div.treetoggle.expanded {
- background-position: -3px -168px;
-}
-
-ul.treelist li.selected > div.collapsed {
- background-position: -23px -144px;
-}
-
-ul.treelist li.selected > div.expanded {
- background-position: -23px -168px;
-}
-
.listbox .boxfooter {
position: absolute;
bottom: 0;
@@ -1135,7 +1049,7 @@ ul.treelist li.selected > div.expanded {
width: 48px;
height: 35px;
text-indent: -5000px;
- background: url(images/buttons.png) -1000px 0 no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -1000px 0 no-repeat;
}
.boxfooter .listbutton.add .inner {
@@ -1199,7 +1113,7 @@ ul.treelist li.selected > div.expanded {
text-indent: 1000px;
vertical-align: bottom;
overflow: hidden;
- background: url(images/buttons.png) -4px -286px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -4px -286px no-repeat;
}
.boxpagenav a.icon.prevpage {
@@ -1241,6 +1155,7 @@ table.records-table {
display: table;
width: 100%;
table-layout: fixed;
+ border-collapse: collapse;
border-spacing: 0;
border: 1px solid #bbd3da;
}
@@ -1392,7 +1307,7 @@ body.iframe .footerleft.floating:before,
left: 0;
width: 100%;
height: 6px;
- background: url(images/overflowshadow.png) top center no-repeat;
+ background: url(images/overflowshadow.png?v=8bb4.307) top center no-repeat;
}
.boxcontent {
@@ -1439,20 +1354,6 @@ body.iframe .footerleft.floating:before,
font-size: 12px;
}
-.propform div.prop {
- margin-bottom: 0.5em;
-}
-
-.propform div.prop.block label {
- display: block;
- margin-bottom: 0.3em;
-}
-
-.propform div.prop.block input,
-.propform div.prop.block textarea {
- width: 95%;
-}
-
fieldset.floating {
float: left;
margin-right: 10px;
@@ -1514,7 +1415,7 @@ ul.proplist li {
#login-form .box-inner {
width: 430px;
- background: url(images/linen_login.jpg) top left no-repeat #5c5c5c;
+ background: url(images/linen_login.jpg?v=0484.10363) top left no-repeat #5c5c5c;
margin: 0 50px;
padding: 10px 24px 24px 24px;
border: 1px solid #333;
@@ -1526,7 +1427,7 @@ ul.proplist li {
}
#login-form .box-bottom {
- background: url(images/login_shadow.png) top center no-repeat;
+ background: url(images/login_shadow.png?v=3337.1069) top center no-repeat;
margin-top: -3px;
padding-top: 10px;
}
@@ -1603,7 +1504,6 @@ ul.proplist li {
#login-form #logo {
margin-bottom: 20px;
- border: none;
}
#login-form #message {
@@ -1690,7 +1590,7 @@ ul.proplist li {
-moz-box-shadow: none;
-webkit-box-shadow: none;
-o-box-shadow: none;
- background: url(images/buttons.png) -100px 0 no-repeat transparent;
+ background: url(images/buttons.png?v=abf1.36693) -100px 0 no-repeat transparent;
border: 0;
border-radius: 0;
}
@@ -1712,7 +1612,7 @@ ul.proplist li {
top: 0;
height: 42px;
width: 18px;
- background: url(images/buttons.png) 0 -1255px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) 0 -1255px no-repeat;
cursor: pointer;
}
@@ -1813,7 +1713,6 @@ ul.proplist li {
}
.toolbar a.button.export {
- min-width: 74px;
background-position: center -1054px;
}
@@ -1829,13 +1728,6 @@ ul.proplist li {
background-position: 0 -1745px;
}
-.toolbar a.button.download {
- background-position: center -1892px;
-}
-
-.toolbar a.button.responses {
- background-position: center -1932px;
-}
a.menuselector {
display: inline-block;
@@ -1859,7 +1751,7 @@ a.menuselector .handle {
height: 20px;
line-height: 19px;
text-shadow: 0px 1px 1px #fff;
- background: url(images/selector.png) right center no-repeat;
+ background: url(images/selector.png?v=799c.181) right center no-repeat;
border-radius: 4px;
}
@@ -1882,7 +1774,6 @@ select.decorated {
filter: alpha(opacity=0);
-khtml-appearance: none;
-webkit-appearance: none;
- border: 0;
}
html.opera select.decorated {
@@ -1898,7 +1789,6 @@ select.decorated option {
text-shadow: 0px 1px 1px #333;
padding: 4px 6px;
outline: none;
- cursor: default;
}
@@ -1911,7 +1801,7 @@ select.decorated option {
text-shadow: 0px 1px 1px #fff;
padding-left: 30px;
height: 18px;
- background: url(images/quota.png) -100px 0 no-repeat;
+ background: url(images/quota.png?v=4835.3622) -100px 0 no-repeat;
}
/*** popup menus ***/
@@ -1923,9 +1813,6 @@ select.decorated option {
top: 32px;
left: 90px;
width: auto;
- max-height: 70%;
- overflow: -moz-scrollbars-vertical;
- overflow-y: auto;
background: #444;
border: 1px solid #999;
z-index: 240;
@@ -1942,7 +1829,6 @@ select.decorated option {
}
ul.toolbarmenu,
-ul.toolbarmenu ul,
#rcmKSearchpane ul {
margin: 0;
padding: 0;
@@ -1961,13 +1847,13 @@ ul.toolbarmenu li,
}
.googie_list tr:first-child td,
-ul.toolbarmenu > li:first-child,
+ul.toolbarmenu li:first-child,
select.decorated option:first-child {
border-top: 0;
}
.googie_list tr:last-child td,
-ul.toolbarmenu > li:last-child,
+ul.toolbarmenu li:last-child,
select.decorated option:last-child {
border-bottom: 0;
}
@@ -2011,7 +1897,7 @@ ul.toolbarmenu.selectable li a {
}
ul.toolbarmenu.selectable li a.selected {
- background: url(images/messages.png) 4px -27px no-repeat;
+ background: url(images/messages.png?v=01ee.1736) 4px -27px no-repeat;
}
ul.toolbarmenu li label {
@@ -2021,11 +1907,6 @@ ul.toolbarmenu li label {
text-shadow: 0px 1px 1px #333;
}
-ul.toolbarmenu li.separator label {
- color: #bbb;
- font-style: italic;
-}
-
ul.toolbarmenu li a.icon {
color: #eee;
padding: 2px 6px;
@@ -2036,7 +1917,7 @@ ul.toolbarmenu li span.icon {
min-height: 14px;
padding: 4px 4px 1px 24px;
height: 17px;
- background-image: url(images/listicons.png);
+ background-image: url(images/listicons.png?v=bd98.25486);
background-position: -100px 0;
background-repeat: no-repeat;
opacity: 0.2;
@@ -2104,15 +1985,6 @@ ul.toolbarmenu li span.conversation {
background-position: 0 -1532px;
}
-#snippetslist {
- max-width: 200px;
-}
-
-#snippetslist li a {
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
#rcmKSearchpane {
border-radius: 0 0 4px 4px;
border-top: 0;
@@ -2152,7 +2024,7 @@ ul.toolbarmenu li span.conversation {
-moz-user-select: none;
-khtml-user-select: none;
position: absolute;
- background: url(images/splitter.png) center no-repeat;
+ background: url(images/splitter.png?v=2724.136) center no-repeat;
}
.splitter-h {
@@ -2212,7 +2084,7 @@ ul.toolbarmenu li span.conversation {
content: " ";
width: 16px;
height: 16px;
- background: url(images/buttons.png) -7px -358px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -7px -358px no-repeat;
z-index: 255;
}
@@ -2230,7 +2102,7 @@ ul.toolbarmenu li span.conversation {
.attachmentslist li {
display: block;
position: relative;
- background: url(images/filetypes.png) 0 0 no-repeat;
+ background: url(images/filetypes.png?v=3aa2.8551) 0 0 no-repeat;
margin-bottom: 1px;
}
@@ -2322,24 +2194,12 @@ ul.toolbarmenu li span.conversation {
background-position: 0 -494px;
}
-.attachmentslist li.ppt,
-.attachmentslist li.pptx,
-.attachmentslist li.ppsx,
-.attachmentslist li.vnd.mspowerpoint {
- background-position: 0 -520px;
-}
-
-.attachmentslist li.odp,
-.attachmentslist li.otp {
- background-position: 0 -546px;
-}
-
.attachmentslist li a,
#compose-attachments ul li {
display: block;
color: #333;
font-weight: bold;
- padding: 3px 15px 3px 30px;
+ padding: 3px 4px 3px 30px;
text-shadow: 0px 1px 1px #fff;
text-decoration: none;
white-space: nowrap;
@@ -2348,17 +2208,6 @@ ul.toolbarmenu li span.conversation {
line-height: 20px;
}
-.attachmentslist li a.drop {
- background: url(images/buttons.png) no-repeat scroll center -1570px;
- width: 14px;
- height: 20px;
- cursor: pointer;
- position: absolute;
- right: 0;
- top: 0;
- padding: 0;
-}
-
#compose-attachments ul li {
padding-right: 28px;
}
@@ -2368,7 +2217,7 @@ ul.toolbarmenu li span.conversation {
}
.attachmentslist li.uploading {
- background: url(images/ajaxloader.gif) 2px 6px no-repeat;
+ background: url(images/ajaxloader.gif?v=c252.1434) 2px 6px no-repeat;
}
.attachmentslist li a.delete,
@@ -2381,7 +2230,7 @@ ul.toolbarmenu li span.conversation {
padding: 0;
text-decoration: none;
text-indent: -5000px;
- background: url(images/buttons.png) -7px -337px no-repeat;
+ background: url(images/buttons.png?v=abf1.36693) -7px -337px no-repeat;
}
.attachmentslist li a.cancelupload {
diff --git a/skins/larry/svggradients.css b/skins/larry/svggradients.css
index c40d44f4b..2172ac31a 100644
--- a/skins/larry/svggradients.css
+++ b/skins/larry/svggradients.css
@@ -29,8 +29,7 @@ input.button.mainaction:active {
background-image: url(svggradient.php?c=2a2e31;505050);
}
-a.button,
-.buttongroup {
+a.button {
background-image: url(svggradient.php?c=f9f9f9;e6e6e6);
}
@@ -48,10 +47,6 @@ input.button:active {
background-image: url(svggradient.php?c=bababa;d8d8d8);
}
-.buttongroup a.button.selected {
- background-image: url(svggradient.php?c=909090;858585);
-}
-
#message.statusbar {
background-image: url(svggradient.php?c=eaeaea;c8c8c8);
}
diff --git a/skins/larry/templates/about.html b/skins/larry/templates/about.html
index e2bd0b019..301c301a9 100644
--- a/skins/larry/templates/about.html
+++ b/skins/larry/templates/about.html
@@ -4,11 +4,7 @@
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
-<roundcube:if condition="request:_framed" />
-<body class="iframe fullheight">
-<roundcube:else />
<body class="ui-widget-content">
-<roundcube:endif />
<div class="readtext">
<roundcube:object name="aboutcontent" />
diff --git a/skins/larry/templates/addressbook.html b/skins/larry/templates/addressbook.html
index b33ebd999..1c1647708 100644
--- a/skins/larry/templates/addressbook.html
+++ b/skins/larry/templates/addressbook.html
@@ -13,11 +13,7 @@
<!-- toolbar -->
<div id="addressbooktoolbar" class="toolbar">
<roundcube:button command="import" type="link" class="button import disabled" classAct="button import" classSel="button import pressed" label="import" title="importcontacts" />
- <span class="dropbutton">
- <roundcube:button command="export" type="link" class="button export disabled" classAct="button export" classSel="button export pressed" label="export" title="exportvcards" />
- <span class="dropbuttontip" id="exportmenulink" onclick="UI.show_popup('exportmenu');return false"></span>
- </span>
-
+ <roundcube:button command="export" type="link" class="button export disabled" classAct="button export" classSel="button export pressed" label="export" title="exportvcards" />
<span class="spacer"></span>
<roundcube:button command="compose" type="link" class="button compose disabled" classAct="button compose" classSel="button compose pressed" label="compose" title="writenewmessage" />
<roundcube:button command="advanced-search" type="link" class="button search disabled" classAct="button search" classSel="button search pressed" label="advanced" title="advsearch" />
@@ -30,7 +26,7 @@
<div id="directorylistbox" class="uibox listbox">
<h2 id="directorylist-header" class="boxtitle"><roundcube:label name="groups" /></h2>
<div id="directorylist-content" class="scroller withfooter">
- <roundcube:object name="directorylist" id="directorylist" class="treelist listing" />
+ <roundcube:object name="directorylist" id="directorylist" class="listing" />
</div>
<div id="directorylist-footer" class="boxfooter">
<roundcube:button command="group-create" type="link" title="newcontactgroup" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" /><roundcube:button name="groupoptions" id="groupoptionslink" type="link" title="moreactions" class="listbutton groupactions" onclick="UI.show_popup('groupoptions');return false" innerClass="inner" content="&#9881;" />
@@ -50,7 +46,7 @@
<!-- contacts list -->
<div id="addresslist" class="uibox listbox">
-<roundcube:object name="addresslisttitle" label="contacts" tag="h2" class="boxtitle" />
+<h2 class="boxtitle"><roundcube:label name="contacts" /></h2>
<div class="scroller withfooter">
<roundcube:object name="addresslist" id="contacts-table" class="listing" noheader="true" />
</div>
@@ -79,12 +75,6 @@
</div><!-- end mainscreen -->
-<div id="exportmenu" class="popupmenu">
- <ul class="toolbarmenu">
- <li><roundcube:button command="export" label="exportall" prop="sub" class="exportalllink" classAct="exportalllink active" /></li>
- <li><roundcube:button command="export-selected" label="exportsel" prop="sub" class="exportsellink" classAct="exportsellink active" /></li>
- </ul>
-</div>
<div id="searchmenu" class="popupmenu">
<ul class="toolbarmenu">
@@ -106,13 +96,6 @@
</ul>
</div>
-<div id="dragcontactmenu" class="popupmenu">
- <ul class="toolbarmenu">
- <li><roundcube:button command="move" onclick="return rcmail.drag_menu_action('move')" label="move" classAct="active" /></li>
- <li><roundcube:button command="copy" onclick="return rcmail.drag_menu_action('copy')" label="copy" classAct="active" /></li>
- </ul>
-</div>
-
<roundcube:include file="/includes/footer.html" />
</body>
diff --git a/skins/larry/templates/compose.html b/skins/larry/templates/compose.html
index 5a6285c68..1e2a45912 100644
--- a/skins/larry/templates/compose.html
+++ b/skins/larry/templates/compose.html
@@ -30,7 +30,6 @@
<roundcube:endif />
<roundcube:button name="addattachment" type="link" class="button attach" classAct="button attach" classSel="button attach pressed" label="attach" title="addattachment" onclick="UI.show_uploadform();return false" />
<roundcube:button command="insert-sig" type="link" class="button insertsig disabled" classAct="button insertsig" classSel="button insertsig pressed" label="signature" title="insertsignature" />
- <a href="#responses" class="button responses" label="responses" title="<roundcube:label name='insertresponse' />" id="responsesmenulink" unselectable="on" onmousedown="return false" onclick="UI.show_popup('responsesmenu');return false"><roundcube:label name="responses" /></a>
<roundcube:container name="toolbar" id="compose-toolbar" />
</div>
</div>
@@ -66,7 +65,7 @@
<div id="composeview-right">
-<roundcube:form name="form" method="post" id="compose-content" class="uibox">
+<form name="form" action="./" method="post" id="compose-content" class="uibox">
<!-- message headers -->
<div id="composeheaders">
@@ -86,25 +85,25 @@
</tr><tr id="compose-cc">
<td class="title top">
<label for="_cc"><roundcube:label name="cc" /></label>
- <a href="#cc" onclick="return UI.hide_header_row('cc');" class="iconbutton cancel" title="<roundcube:label name='delete' />">x</a>
+ <a href="#cc" onclick="return UI.hide_header_row('cc');" class="iconbutton cancel" title="<roundcube:label name='delete' />" />x</a>
</td>
<td class="editfield"><roundcube:object name="composeHeaders" part="cc" form="form" id="_cc" cols="70" rows="1" tabindex="3" /></td>
</tr><tr id="compose-bcc">
<td class="title top">
<label for="_bcc"><roundcube:label name="bcc" /></label>
- <a href="#bcc" onclick="return UI.hide_header_row('bcc');" class="iconbutton cancel" title="<roundcube:label name='delete' />">x</a>
+ <a href="#bcc" onclick="return UI.hide_header_row('bcc');" class="iconbutton cancel" title="<roundcube:label name='delete' />" />x</a>
</td>
- <td class="editfield"><roundcube:object name="composeHeaders" part="bcc" form="form" id="_bcc" cols="70" rows="1" tabindex="4" /></td>
+ <td colspan="2" class="editfield"><roundcube:object name="composeHeaders" part="bcc" form="form" id="_bcc" cols="70" rows="1" tabindex="4" /></td>
</tr><tr id="compose-replyto">
<td class="title top">
<label for="_replyto"><roundcube:label name="replyto" /></label>
- <a href="#replyto" onclick="return UI.hide_header_row('replyto');" class="iconbutton cancel" title="<roundcube:label name='delete' />">x</a>
+ <a href="#replyto" onclick="return UI.hide_header_row('replyto');" class="iconbutton cancel" title="<roundcube:label name='delete' />" />x</a>
</td>
<td class="editfield"><roundcube:object name="composeHeaders" part="replyto" form="form" id="_replyto" size="70" tabindex="5" /></td>
</tr><tr id="compose-followupto">
<td class="title top">
<label for="_followupto"><roundcube:label name="followupto" /></label>
- <a href="#followupto" onclick="return UI.hide_header_row('followupto');" class="iconbutton cancel" title="<roundcube:label name='delete' />">x</a>
+ <a href="#followupto" onclick="return UI.hide_header_row('followupto');" class="iconbutton cancel" title="<roundcube:label name='delete' />" />x</a>
</td>
<td class="editfield"><roundcube:object name="composeHeaders" part="followupto" form="form" id="_followupto" size="70" tabindex="7" /></td>
</tr><tr>
@@ -188,7 +187,7 @@
</div><!-- end mainscreen -->
<div id="upload-dialog" class="propform popupdialog" title="<roundcube:label name='addattachment' />">
- <roundcube:object name="composeAttachmentForm" id="uploadform" buttons="no" />
+ <roundcube:object name="composeAttachmentForm" id="uploadform" attachmentFieldSize="40" buttons="no" />
<div class="formbuttons">
<roundcube:button command="send-attachment" type="input" class="button mainaction" label="upload" />
<roundcube:button name="close" type="input" class="button" label="cancel" onclick="UI.show_uploadform()" />
@@ -197,16 +196,6 @@
<div id="spellmenu" class="popupmenu"></div>
-<div id="responsesmenu" class="popupmenu">
- <ul class="toolbarmenu" id="textresponsesmenu">
- <li class="separator" id=""><label><roundcube:label name="insertresponse" /></label></li>
- <roundcube:object name="responseslist" id="responseslist" tagname="ul" itemclass="active" />
- <li class="separator"><label><roundcube:label name="manageresponses" /></label></li>
- <li><roundcube:button command="save-response" type="link" label="savenewresponse" classAct="active" unselectable="on" /></li>
- <li><roundcube:button command="responses" type="link" label="editresponses" classAct="active" /></li>
- </ul>
-</div>
-
<roundcube:include file="/includes/footer.html" />
</body>
diff --git a/skins/larry/templates/contact.html b/skins/larry/templates/contact.html
index 59fe6f79f..d252049cd 100644
--- a/skins/larry/templates/contact.html
+++ b/skins/larry/templates/contact.html
@@ -13,7 +13,7 @@
<div id="sourcename"><roundcube:label name="addressbook" />: <roundcube:var name="env:sourcename" /></div>
<roundcube:endif />
- <div id="contactphoto"><roundcube:object name="contactphoto" id="contactpic" placeholder="/images/contactpic.png" placeholderGroup="/images/contactgroup.png" /></div>
+ <div id="contactphoto"><roundcube:object name="contactphoto" id="contactpic" placeholder="/images/contactpic.png" /></div>
<roundcube:object name="contacthead" id="contacthead" />
<br style="clear:both" />
diff --git a/skins/larry/templates/contactedit.html b/skins/larry/templates/contactedit.html
index 3467ebe8e..f84936635 100644
--- a/skins/larry/templates/contactedit.html
+++ b/skins/larry/templates/contactedit.html
@@ -11,7 +11,7 @@
<roundcube:else /><roundcube:label name="editcontact" />
<roundcube:endif /></h1>
-<roundcube:form name="editform" method="post" id="contact-details" class="boxcontent">
+<form name="editform" method="post" action="./" id="contact-details" class="boxcontent">
<roundcube:if condition="strlen(env:sourcename)" />
<div id="sourcename"><roundcube:label name="addressbook" />: <roundcube:var name="env:sourcename" condition="env:action!='add'" /><roundcube:object name="sourceselector" id="sourceselect" condition="env:action=='add'" /></div>
<roundcube:endif />
diff --git a/skins/larry/templates/importcontacts.html b/skins/larry/templates/importcontacts.html
index 69b138b9a..89aea0a2e 100644
--- a/skins/larry/templates/importcontacts.html
+++ b/skins/larry/templates/importcontacts.html
@@ -14,18 +14,19 @@
<roundcube:button command="list" type="link" class="button back disabled" classAct="button back" classSel="button back pressed" label="back" />
</div>
-<div id="pluginbody" class="offset uibox contentbox">
+<div class="offset uibox contentbox">
<h2 class="boxtitle"><roundcube:label name="importcontacts" /></h2>
-<div id="import-box" class="boxcontent">
-<roundcube:object name="importstep" class="propform" />
+<div class="boxcontent readtext">
+<roundcube:object name="importstep" />
+
<br/>
+
<p class="formbuttons">
<roundcube:object name="importnav" class="button" />
</p>
-</div>
-<roundcube:object name="message" id="message" class="statusbar" />
+</div>
</div>
diff --git a/skins/larry/templates/login.html b/skins/larry/templates/login.html
index 13e919ad3..a605eb7fe 100644
--- a/skins/larry/templates/login.html
+++ b/skins/larry/templates/login.html
@@ -9,9 +9,9 @@
<div id="login-form">
<div class="box-inner">
-<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" />
+<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" />
-<roundcube:form name="form" method="post">
+<form name="form" action="./" method="post">
<roundcube:object name="loginform" form="form" size="40" />
<p class="formbuttons"><input type="submit" class="button mainaction" value="<roundcube:label name='login' />" /></p>
diff --git a/skins/larry/templates/mail.html b/skins/larry/templates/mail.html
index f2c52c820..4b8f03951 100644
--- a/skins/larry/templates/mail.html
+++ b/skins/larry/templates/mail.html
@@ -30,7 +30,7 @@
<div id="folderlist-header"></div>
<div id="mailboxcontainer" class="uibox listbox">
<div id="folderlist-content" class="scroller withfooter">
-<roundcube:object name="mailboxlist" id="mailboxlist" class="treelist listing" folder_filter="mail" unreadwrap="%s" />
+<roundcube:object name="mailboxlist" id="mailboxlist" class="listing" folder_filter="mail" unreadwrap="%s" />
</div>
<div id="folderlist-footer" class="boxfooter">
<roundcube:button name="mailboxmenulink" id="mailboxmenulink" type="link" title="folderactions" class="listbutton groupactions" onclick="UI.show_popup('mailboxmenu');return false" innerClass="inner" content="&#9881;" />
@@ -70,7 +70,7 @@
<div id="messagelistcontainer" class="boxlistcontent">
<roundcube:object name="messages"
id="messagelist"
- class="records-table messagelist sortheader fixedheader"
+ class="records-table sortheader"
optionsmenuIcon="true" />
</div>
@@ -140,7 +140,7 @@
<div id="dragmessagemenu" class="popupmenu">
<ul class="toolbarmenu">
- <li><roundcube:button command="move" onclick="return rcmail.drag_menu_action('move')" label="move" classAct="active" /></li>
+ <li><roundcube:button command="moveto" onclick="return rcmail.drag_menu_action('moveto')" label="move" classAct="active" /></li>
<li><roundcube:button command="copy" onclick="return rcmail.drag_menu_action('copy')" label="copy" classAct="active" /></li>
</ul>
</div>
@@ -148,8 +148,7 @@
<div id="mailboxmenu" class="popupmenu">
<ul class="toolbarmenu" id="mailboxoptionsmenu">
<li><roundcube:button command="expunge" type="link" label="compact" classAct="active" /></li>
- <li><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
- <li><roundcube:button name="messageimport" type="link" class="active" label="importmessages" onclick="UI.show_uploadform()" /></li>
+ <li class="separator_below"><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
<li><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
<roundcube:container name="mailboxoptions" id="mailboxoptionsmenu" />
</ul>
@@ -227,14 +226,6 @@
</div>
</div>
-<div id="upload-dialog" class="propform popupdialog" title="<roundcube:label name='importmessages' />">
- <roundcube:object name="messageimportform" id="uploadform" buttons="no" />
- <div class="formbuttons">
- <roundcube:button command="import-messages" type="input" class="button mainaction" label="upload" />
- <roundcube:button name="close" type="input" class="button" label="cancel" onclick="UI.show_uploadform()" />
- </div>
-</div>
-
<roundcube:include file="/includes/footer.html" />
</body>
diff --git a/skins/larry/templates/message.html b/skins/larry/templates/message.html
index 6937b00af..5ac079c96 100644
--- a/skins/larry/templates/message.html
+++ b/skins/larry/templates/message.html
@@ -17,7 +17,7 @@
<roundcube:endif />
<roundcube:include file="/includes/mailtoolbar.html" />
<div class="toolbarselect">
- <roundcube:object name="mailboxlist" type="select" noSelection="moveto" maxlength="25" onchange="rcmail.command('move', this.options[this.selectedIndex].value)" class="mailboxlist decorated" folder_filter="mail" />
+ <roundcube:object name="mailboxlist" type="select" noSelection="moveto" maxlength="25" onchange="rcmail.command('moveto', this.options[this.selectedIndex].value)" class="mailboxlist decorated" folder_filter="mail" />
</div>
</div>
@@ -28,7 +28,7 @@
<!-- folders list -->
<div id="mailboxcontainer" class="uibox listbox">
<div class="scroller">
-<roundcube:object name="mailboxlist" id="mailboxlist" class="treelist listing" folder_filter="mail" unreadwrap="%s" />
+<roundcube:object name="mailboxlist" id="mailboxlist" class="listing" folder_filter="mail" unreadwrap="%s" />
</div>
</div>
@@ -56,21 +56,6 @@
<roundcube:button command="nextmessage" type="link" class="button nextpage disabled" classAct="button nextpage" classSel="button nextpage pressed" innerClass="inner" title="nextmessage" content="&amp;gt;" />
</div>
-<roundcube:if condition="env:optional_format=='text'" />
-<div class="pagenav" id="formatcontrols">
- <span class="buttongroup">
- <roundcube:button command="change-format" prop="html" type="link" class="button first changeformat html selected" innerClass="inner" title="changeformathtml" /><roundcube:button command="change-format" prop="text" type="link" class="button last changeformat text" classSel="button last changeformat text pressed" innerClass="inner" title="changeformattext" />
- </span>
-</div>
-<roundcube:elseif condition="env:optional_format=='html'" />
-<div class="pagenav" id="formatcontrols">
- <span class="buttongroup">
- <roundcube:button command="change-format" prop="html" type="link" class="button first changeformat html" classSel="button first changeformat html pressed" innerClass="inner" title="changeformathtml" /><roundcube:button command="change-format" prop="text" type="link" class="button last changeformat text selected" innerClass="inner" title="changeformattext" />
- </span>
-</div>
-<roundcube:endif />
-
-
<div id="contactphoto"><roundcube:object name="contactphoto" /></div>
</div>
@@ -90,14 +75,6 @@
</div><!-- end mainscreen -->
-<div id="attachmentmenu" class="popupmenu">
- <ul class="toolbarmenu">
- <li><roundcube:button command="open-attachment" id="attachmenuopen" type="link" label="open" class="icon" classAct="icon active" innerclass="icon extwin" /></li>
- <li><roundcube:button command="download-attachment" id="attachmenudownload" type="link" label="download" class="icon" classAct="icon active" innerclass="icon download" /></li>
- <roundcube:container name="attachmentmenu" id="attachmentmenu" />
- </ul>
-</div>
-
<roundcube:include file="/includes/footer.html" />
</body>
diff --git a/skins/larry/templates/messageerror.html b/skins/larry/templates/messageerror.html
index a735d47f2..3c3c9acdb 100644
--- a/skins/larry/templates/messageerror.html
+++ b/skins/larry/templates/messageerror.html
@@ -28,7 +28,7 @@
<!-- folders list -->
<div id="mailboxcontainer" class="uibox listbox">
<div class="scroller">
- <roundcube:object name="mailboxlist" id="mailboxlist" class="treelist listing" folder_filter="mail" unreadwrap="%s" />
+ <roundcube:object name="mailboxlist" id="mailboxlist" class="listing" folder_filter="mail" unreadwrap="%s" />
</div>
</div>
diff --git a/skins/larry/templates/messagepart.html b/skins/larry/templates/messagepart.html
index d0e3a808d..dbb4940de 100644
--- a/skins/larry/templates/messagepart.html
+++ b/skins/larry/templates/messagepart.html
@@ -4,35 +4,33 @@
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
-<body class="extwin noscroll">
+<body class="partwin">
-<roundcube:include file="/includes/header.html" />
+<div id="header">
+<div id="topline">
+ <div class="topright">
+ <a href="#close" class="closelink" onclick="self.close()"><roundcube:label name="close" /></a>
+ </div>
+</div>
-<div id="mainscreen">
+<div id="topnav">
+ <roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" border="0" alt="Logo" />
+</div>
-<div id="messagetoolbar" class="toolbar fullwidth">
- <roundcube:button command="download" type="link" class="button download disabled" classAct="button download" classSel="button download pressed" label="download" />
- <roundcube:button command="print" type="link" class="button print disabled" classAct="button print" classSel="button print pressed" label="print" />
- <roundcube:container name="toolbar" id="messagetoolbar" />
+<br style="clear:both" />
</div>
-<div id="messagepartheader" class="uibox listbox">
- <h2 class="boxtitle"><roundcube:label name="properties" /></h2>
- <div class="scroller">
- <roundcube:object name="messagePartControls" class="listing" />
- </div>
+<div id="mainscreen">
+
+<div id="partheader" class="uibox">
+<roundcube:object name="messagePartControls" class="headers-table" />
</div>
<div id="messagepartcontainer" class="uibox">
- <div class="iframebox">
- <roundcube:object name="messagePartFrame" id="messagepartframe" frameborder="0" />
- </div>
- <roundcube:object name="message" id="message" class="statusbar" />
+<roundcube:object name="messagePartFrame" id="messagepartframe" frameborder="0" />
</div>
</div>
-<roundcube:include file="/includes/footer.html" />
-
</body>
</html>
diff --git a/skins/larry/templates/messagepreview.html b/skins/larry/templates/messagepreview.html
index f69f65125..aef282ac9 100644
--- a/skins/larry/templates/messagepreview.html
+++ b/skins/larry/templates/messagepreview.html
@@ -30,17 +30,6 @@
<!-- record navigation -->
<div id="countcontrols" class="pagenav">
-<roundcube:if condition="env:optional_format=='text'" />
- <span class="buttongroup">
- <roundcube:button command="change-format" prop="html" type="link" class="button first changeformat html selected" innerClass="inner" title="changeformathtml" content="HTML" /><roundcube:button command="change-format" prop="text" type="link" class="button last changeformat text" classSel="button changeformat text pressed" innerClass="inner" title="changeformattext" content="Text" />
- </span>
- &nbsp;
-<roundcube:elseif condition="env:optional_format=='html'" />
- <span class="buttongroup">
- <roundcube:button command="change-format" prop="html" type="link" class="button first changeformat html" classSel="button changeformat html pressed" innerClass="inner" title="changeformathtml" content="HTML" /><roundcube:button command="change-format" prop="text" type="link" class="button last changeformat text selected" innerClass="inner" title="changeformattext" content="Text" />
- </span>
- &nbsp;
-<roundcube:endif />
<roundcube:if condition="env:mailbox != config:drafts_mbox">
<roundcube:button command="reply" type="link" class="button reply" classSel="button reply pressed" innerClass="inner" title="replytomessage" content="&lt;-" />
<roundcube:button command="reply-all" type="link" class="button replyall" classSel="button replyall pressed" innerClass="inner" title="replytoallmessage" content="&lt;&lt;-" />
@@ -62,14 +51,6 @@
</div>
</div>
-<div id="attachmentmenu" class="popupmenu">
- <ul class="toolbarmenu">
- <li><roundcube:button command="open-attachment" id="attachmenuopen" type="link" label="open" class="icon" classAct="icon active" innerclass="icon extwin" /></li>
- <li><roundcube:button command="download-attachment" id="attachmenudownload" type="link" label="download" class="icon" classAct="icon active" innerclass="icon download" /></li>
- <roundcube:container name="attachmentmenu" id="attachmentmenu" />
- </ul>
-</div>
-
<roundcube:include file="/includes/footer.html" />
</body>
diff --git a/skins/larry/templates/messageprint.html b/skins/larry/templates/messageprint.html
index d2a0f6353..d01c70bcd 100644
--- a/skins/larry/templates/messageprint.html
+++ b/skins/larry/templates/messageprint.html
@@ -10,7 +10,7 @@
<div id="header"><roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" border="0" alt="Logo" /></div>
<div id="printmessageframe">
-<roundcube:object name="messageHeaders" class="headers-table" max="10" />
+<roundcube:object name="messageHeaders" class="headers-table" />
<roundcube:object name="messageAttachments" id="attachment-list" />
<roundcube:object name="messageBody" id="messagebody" showImages="false" />
</div>
diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index 660b18ff9..19f8a516a 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -17,9 +17,8 @@ function rcube_mail_ui()
var popupconfig = {
forwardmenu: { editable:1 },
searchmenu: { editable:1, callback:searchmenu },
- attachmentmenu: { },
listoptions: { editable:1 },
- dragmenu: { sticky:1 },
+ dragmessagemenu: { sticky:1 },
groupmenu: { above:1 },
mailboxmenu: { above:1 },
spellmenu: { callback: spellmenu },
@@ -38,12 +37,10 @@ function rcube_mail_ui()
this.init_tabs = init_tabs;
this.show_about = show_about;
this.show_popup = show_popup;
- this.add_popup = add_popup;
this.set_searchmod = set_searchmod;
this.show_uploadform = show_uploadform;
this.show_header_row = show_header_row;
this.hide_header_row = hide_header_row;
- this.update_quota = update_quota;
// set minimal mode on small screens (don't wait for document.ready)
@@ -88,41 +85,32 @@ function rcube_mail_ui()
/*** mail task ***/
if (rcmail.env.task == 'mail') {
- rcmail.addEventListener('menu-open', menu_open);
- rcmail.addEventListener('menu-save', menu_save);
+ rcmail.addEventListener('menu-open', show_listoptions);
+ rcmail.addEventListener('menu-save', save_listoptions);
rcmail.addEventListener('responseafterlist', function(e){ switch_view_mode(rcmail.env.threading ? 'thread' : 'list') });
var dragmenu = $('#dragmessagemenu');
if (dragmenu.length) {
- rcmail.gui_object('dragmenu', 'dragmessagemenu');
- popups.dragmenu = dragmenu;
+ rcmail.gui_object('message_dragmenu', 'dragmessagemenu');
+ popups.dragmessagemenu = dragmenu;
}
if (rcmail.env.action == 'show' || rcmail.env.action == 'preview') {
- rcmail.addEventListener('enable-command', enable_command);
rcmail.addEventListener('aftershow-headers', function() { layout_messageview(); });
rcmail.addEventListener('afterhide-headers', function() { layout_messageview(); });
- $('#previewheaderstoggle').click(function(e){ toggle_preview_headers(); return false });
-
- // add menu link for each attachment
- $('#attachment-list > li').each(function() {
- $(this).append($('<a class="drop">').click(function() { attachmentmenu(this); }));
- });
+ $('#previewheaderstoggle').click(function(e){ toggle_preview_headers(this); return false });
}
else if (rcmail.env.action == 'compose') {
rcmail.addEventListener('aftertoggle-editor', function(){ window.setTimeout(function(){ layout_composeview() }, 200); });
rcmail.addEventListener('aftersend-attachment', show_uploadform);
rcmail.addEventListener('add-recipient', function(p){ show_header_row(p.field, true); });
+ layout_composeview();
// Show input elements with non-empty value
- var f, v, field, fields = ['cc', 'bcc', 'replyto', 'followupto'];
- for (f=0; f < fields.length; f++) {
- v = fields[f]; field = $('#_'+v);
- if (field.length) {
- field.on('change', {v: v}, function(e) { if (this.value) show_header_row(e.data.v, true); });
- if (field.val() != '')
- show_header_row(v, true);
- }
+ var field, fields = ['cc', 'bcc', 'replyto', 'followupto'];
+ for (var f=0; f < fields.length; f++) {
+ if ((field = $('#_'+fields[f])) && field.length && field.val() != '')
+ show_header_row(fields[f], true);
}
$('#composeoptionstoggle').click(function(){
@@ -132,10 +120,6 @@ function rcube_mail_ui()
return false;
}).css('cursor', 'pointer');
- // adjust hight when textarea starts to scroll
- $("textarea[name='_to'], textarea[name='_cc'], textarea[name='_bcc']").change(function(e){ adjust_compose_editfields(this); }).change();
- rcmail.addEventListener('autocomplete_insert', function(p){ adjust_compose_editfields(p.field); });
-
// toggle compose options if opened in new window and they were visible before
var opener_rc = rcmail.opener();
if (opener_rc && opener_rc.env.action == 'compose' && $('#composeoptionstoggle', opener.document).hasClass('remove'))
@@ -158,12 +142,6 @@ function rcube_mail_ui()
new rcube_scroller('#folderlist-content', '#folderlist-header', '#folderlist-footer');
rcmail.addEventListener('setquota', update_quota);
- rcmail.addEventListener('enable-command', enable_command);
- rcmail.addEventListener('afterimport-messages', show_uploadform);
- }
- else if (rcmail.env.action == 'get') {
- new rcube_splitter({ id:'mailpartsplitterv', p1:'#messagepartheader', p2:'#messagepartcontainer',
- orientation:'v', relative:true, start:226, min:150, size:12}).init();
}
if ($('#mailview-left').length) {
@@ -198,25 +176,10 @@ function rcube_mail_ui()
new rcube_splitter({ id:'prefviewsplitter', p1:'#sectionslist', p2:'#preferences-box',
orientation:'v', relative:true, start:266, min:180, size:12 }).init();
}
- else if (rcmail.env.action == 'edit-prefs') {
- $('<a href="#toggle">&#9660;</a>')
- .addClass('advanced-toggle')
- .appendTo('#preferences-details fieldset.advanced legend');
-
- $('#preferences-details fieldset.advanced legend').click(function(e){
- var collapsed = $(this).hasClass('collapsed'),
- toggle = $('.advanced-toggle', this).html(collapsed ? '&#9650;' : '&#9660;');
- $(this)
- .toggleClass('collapsed')
- .closest('fieldset').children('.propform').toggle()
- }).addClass('collapsed')
- }
}
/*** addressbook task ***/
else if (rcmail.env.task == 'addressbook') {
rcmail.addEventListener('afterupload-photo', show_uploadform);
- rcmail.addEventListener('beforepushgroup', push_contactgroup);
- rcmail.addEventListener('beforepopgroup', pop_contactgroup);
if (rcmail.env.action == '') {
new rcube_splitter({ id:'addressviewsplitterd', p1:'#addressview-left', p2:'#addressview-right',
@@ -226,12 +189,12 @@ function rcube_mail_ui()
new rcube_scroller('#directorylist-content', '#directorylist-header', '#directorylist-footer');
}
+ }
- var dragmenu = $('#dragcontactmenu');
- if (dragmenu.length) {
- rcmail.gui_object('dragmenu', 'dragcontactmenu');
- popups.dragmenu = dragmenu;
- }
+ // set min-width to show all toolbar buttons
+ var screen = $('.minwidth');
+ if (screen.length) {
+ screen.css('min-width', $('.toolbar').width() + $('#quicksearchbar').parent().width() + 20);
}
// turn a group of fieldsets into tabs
@@ -245,7 +208,6 @@ function rcube_mail_ui()
}
var select = $(this),
- parent = select.parent(),
height = Math.max(select.height(), 26) - 2,
width = select.width() - 22,
title = $('option', this).first().text();
@@ -260,23 +222,19 @@ function rcube_mail_ui()
overlay.children().width(width).height(height).css('line-height', (height - 1) + 'px');
+ select.change(function() {
+ var val = $('option:selected', this).text();
+ $(this).next().children().html(val);
+ });
+
+ var parent = select.parent();
if (parent.css('position') != 'absolute')
parent.css('position', 'relative');
// re-set original select width to fix click action and options width in some browsers
- select.width(overlay.width())
- .change(function() {
- var val = $('option:selected', this).text();
- $(this).next().children().text(val);
- });
+ select.width(overlay.width());
});
- // set min-width to show all toolbar buttons
- var screen = $('body > div.minwidth');
- if (screen.length) {
- screen.css('min-width', $('.toolbar').width() + $('#quicksearchbar').width() + $('#searchfilter').width() + 30);
- }
-
$(document.body)
.bind('mouseup', body_mouseup)
.bind('keyup', function(e){
@@ -332,36 +290,28 @@ function rcube_mail_ui()
/**
* Update UI on window resize
*/
- function resize(e)
+ function resize()
{
- // resize in intervals to prevent lags and double onresize calls in Chrome (#1489005)
- var interval = e ? 10 : 0;
-
- if (rcmail.resize_timeout)
- window.clearTimeout(rcmail.resize_timeout);
+ if (rcmail.env.task == 'mail') {
+ if (rcmail.env.action == 'show' || rcmail.env.action == 'preview')
+ layout_messageview();
+ else if (rcmail.env.action == 'compose')
+ layout_composeview();
+ }
- rcmail.resize_timeout = window.setTimeout(function() {
- if (rcmail.env.task == 'mail') {
- if (rcmail.env.action == 'show' || rcmail.env.action == 'preview')
- layout_messageview();
- else if (rcmail.env.action == 'compose')
- layout_composeview();
+ // make iframe footer buttons float if scrolling is active
+ $('body.iframe .footerleft').each(function(){
+ var footer = $(this),
+ body = $(document.body),
+ floating = footer.hasClass('floating'),
+ overflow = body.outerHeight(true) > $(window).height();
+
+ if (overflow != floating) {
+ var action = overflow ? 'addClass' : 'removeClass';
+ footer[action]('floating');
+ body[action]('floatingbuttons');
}
-
- // make iframe footer buttons float if scrolling is active
- $('body.iframe .footerleft').each(function(){
- var footer = $(this),
- body = $(document.body),
- floating = footer.hasClass('floating'),
- overflow = body.outerHeight(true) > $(window).height();
-
- if (overflow != floating) {
- var action = overflow ? 'addClass' : 'removeClass';
- footer[action]('floating');
- body[action]('floatingbuttons');
- }
- });
- }, interval);
+ });
}
/**
@@ -431,16 +381,6 @@ function rcube_mail_ui()
// STUB
}
- function adjust_compose_editfields(elem)
- {
- if (elem.nodeName == 'TEXTAREA') {
- var $elem = $(elem), line_height = 14, // hard-coded because some browsers only provide the outer height in elem.clientHeight
- content_height = elem.scrollHeight,
- rows = elem.value.length > 80 && content_height > line_height*1.5 ? 2 : 1;
- $elem.css('height', (line_height*rows) + 'px');
- layout_composeview();
- }
- }
function layout_composeview()
{
@@ -484,30 +424,6 @@ function rcube_mail_ui()
}
- function enable_command(p)
- {
- if (p.command == 'reply-list' && rcmail.env.reply_all_mode == 1) {
- var label = rcmail.gettext(p.status ? 'replylist' : 'replyall');
- if (rcmail.env.action == 'preview')
- $('a.button.replyall').attr('title', label);
- else
- $('a.button.reply-all').text(label).attr('title', label);
- }
- }
-
-
- /**
- * Register a popup menu
- */
- function add_popup(popup, config)
- {
- var obj = popups[popup] = $('#'+popup);
- obj.appendTo(document.body); // move it to top for proper absolute positioning
-
- if (obj.length)
- popupconfig[popup] = $.extend(popupconfig[popup] || {}, config || {});
- }
-
/**
* Trigger for popup menus
*/
@@ -515,7 +431,7 @@ function rcube_mail_ui()
{
// auto-register menu object
if (config || !popupconfig[popup])
- add_popup(popup, config);
+ popupconfig[popup] = $.extend(popupconfig[popup] || {}, config);
var visible = show_popupmenu(popup, show),
config = popupconfig[popup];
@@ -530,7 +446,7 @@ function rcube_mail_ui()
{
var obj = popups[popup],
config = popupconfig[popup],
- ref = $(config.link ? config.link : '#'+popup+'link'),
+ ref = $('#'+popup+'link'),
above = config.above;
if (!obj) {
@@ -546,7 +462,7 @@ function rcube_mail_ui()
else if (config.toggle && show && obj.is(':visible'))
show = false;
- if (show && ref.length) {
+ if (show && ref) {
var parent = ref.parent(),
win = $(window),
pos;
@@ -630,11 +546,8 @@ function rcube_mail_ui()
mailviewsplit.handle.hide();
}
- if (rcmail.message_list) {
- if (visible && uid)
- rcmail.message_list.scrollto(uid);
- rcmail.message_list.resize();
- }
+ if (visible && uid && rcmail.message_list)
+ rcmail.message_list.scrollto(uid);
rcmail.command('save-pref', { name:'preview_pane', value:(visible?1:0) });
}
@@ -643,7 +556,7 @@ function rcube_mail_ui()
/**
* Switch between short and full headers display in message preview
*/
- function toggle_preview_headers()
+ function toggle_preview_headers(button)
{
$('#preview-shortheaders').toggle();
var full = $('#preview-allheaders').toggle(),
@@ -672,19 +585,6 @@ function rcube_mail_ui()
/**** popup callbacks ****/
- function menu_open(p)
- {
- if (p && p.props && p.props.menu == 'attachmentmenu')
- show_popupmenu('attachmentmenu');
- else
- show_listoptions();
- }
-
- function menu_save(prop)
- {
- save_listoptions();
- }
-
function searchmenu(show)
{
if (show && rcmail.env.search_mods) {
@@ -715,21 +615,6 @@ function rcube_mail_ui()
}
}
- function attachmentmenu(elem)
- {
- var id = elem.parentNode.id.replace(/^attach/, '');
-
- $('#attachmenuopen').unbind('click').attr('onclick', '').click(function(e) {
- return rcmail.command('open-attachment', id, this);
- });
-
- $('#attachmenudownload').unbind('click').attr('onclick', '').click(function() {
- rcmail.command('download-attachment', id, this);
- });
-
- popupconfig.attachmentmenu.link = elem;
- rcmail.command('menu-open', {menu: 'attachmentmenu', id: id});
- }
function spellmenu(show)
{
@@ -798,8 +683,7 @@ function rcube_mail_ui()
close: function() {
$dialog.dialog('destroy').hide();
},
- minWidth: 500,
- width: $dialog.width()+25
+ width: 650
}).show();
}
@@ -868,35 +752,6 @@ function rcube_mail_ui()
});
}
- function push_contactgroup(p)
- {
- // lets the contacts list swipe to the left, nice!
- var table = $('#contacts-table'),
- scroller = table.parent().css('overflow', 'hidden');
-
- table.clone()
- .css({ position:'absolute', top:'0', left:'0', width:table.width()+'px', 'z-index':10 })
- .appendTo(scroller)
- .animate({ left: -(table.width()+5) + 'px' }, 300, 'swing', function(){
- $(this).remove();
- scroller.css('overflow', 'auto')
- });
- }
-
- function pop_contactgroup(p)
- {
- // lets the contacts list swipe to the left, nice!
- var table = $('#contacts-table'),
- scroller = table.parent().css('overflow', 'hidden'),
- clone = table.clone().appendTo(scroller);
-
- table.css({ position:'absolute', top:'0', left:-(table.width()+5) + 'px', width:table.width()+'px', height:table.height()+'px', 'z-index':10 })
- .animate({ left:'0' }, 300, 'linear', function(){
- clone.remove();
- $(this).css({ position:'relative', left:'0', width:'100%', height:'auto', 'z-index':1 });
- scroller.css('overflow', 'auto')
- });
- }
function show_uploadform()
{
@@ -907,7 +762,7 @@ function rcube_mail_ui()
$dialog.dialog('close');
return;
}
-
+
// add icons to clone file input field
if (rcmail.env.action == 'compose' && !$dialog.data('extended')) {
$('<a>')
diff --git a/skins/larry/watermark.html b/skins/larry/watermark.html
index d1061d1f3..af28d6940 100644
--- a/skins/larry/watermark.html
+++ b/skins/larry/watermark.html
@@ -9,7 +9,7 @@ html, body {
}
body {
- background: url(images/watermark.jpg) center no-repeat #fff;
+ background: url(images/watermark.jpg?v=e784.5000) center no-repeat #fff;
}
</style>