summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG53
-rw-r--r--SQL/mssql.initial.sql2
-rw-r--r--SQL/mssql/2015030800.sql1
-rw-r--r--SQL/mysql.initial.sql4
-rw-r--r--SQL/mysql/2015030800.sql1
-rw-r--r--SQL/oracle.initial.sql2
-rw-r--r--SQL/oracle/2015030800.sql1
-rw-r--r--SQL/postgres.initial.sql2
-rw-r--r--SQL/postgres/2015030800.sql1
-rw-r--r--SQL/sqlite.initial.sql2
-rw-r--r--SQL/sqlite/2015030800.sql1
-rw-r--r--UPGRADING15
-rwxr-xr-xbin/cleandb.sh49
-rwxr-xr-xbin/indexcontacts.sh27
-rwxr-xr-xbin/initdb.sh42
-rwxr-xr-xbin/moduserprefs.sh35
-rwxr-xr-xbin/update.sh8
-rwxr-xr-xbin/updatedb.sh138
-rw-r--r--composer.json-dist51
-rw-r--r--config/defaults.inc.php1160
-rw-r--r--installer/check.php2
m---------plugins0
-rw-r--r--plugins/acl/acl.js392
-rw-r--r--plugins/acl/acl.php779
-rw-r--r--plugins/acl/composer.json24
-rw-r--r--plugins/acl/config.inc.php.dist33
-rw-r--r--plugins/acl/localization/ar_SA.inc91
-rw-r--r--plugins/acl/localization/ast.inc80
-rw-r--r--plugins/acl/localization/az_AZ.inc91
-rw-r--r--plugins/acl/localization/be_BE.inc98
-rw-r--r--plugins/acl/localization/bg_BG.inc94
-rw-r--r--plugins/acl/localization/br.inc48
-rw-r--r--plugins/acl/localization/bs_BA.inc98
-rw-r--r--plugins/acl/localization/ca_ES.inc98
-rw-r--r--plugins/acl/localization/cs_CZ.inc92
-rw-r--r--plugins/acl/localization/cy_GB.inc98
-rw-r--r--plugins/acl/localization/da_DK.inc93
-rw-r--r--plugins/acl/localization/de_CH.inc98
-rw-r--r--plugins/acl/localization/de_DE.inc98
-rw-r--r--plugins/acl/localization/el_GR.inc98
-rw-r--r--plugins/acl/localization/en_CA.inc94
-rw-r--r--plugins/acl/localization/en_GB.inc98
-rw-r--r--plugins/acl/localization/en_US.inc108
-rw-r--r--plugins/acl/localization/eo.inc63
-rw-r--r--plugins/acl/localization/es_419.inc98
-rw-r--r--plugins/acl/localization/es_AR.inc98
-rw-r--r--plugins/acl/localization/es_ES.inc98
-rw-r--r--plugins/acl/localization/et_EE.inc98
-rw-r--r--plugins/acl/localization/eu_ES.inc98
-rw-r--r--plugins/acl/localization/fa_AF.inc26
-rw-r--r--plugins/acl/localization/fa_IR.inc98
-rw-r--r--plugins/acl/localization/fi_FI.inc55
-rw-r--r--plugins/acl/localization/fo_FO.inc91
-rw-r--r--plugins/acl/localization/fr_FR.inc98
-rw-r--r--plugins/acl/localization/fy_NL.inc19
-rw-r--r--plugins/acl/localization/gl_ES.inc98
-rw-r--r--plugins/acl/localization/he_IL.inc98
-rw-r--r--plugins/acl/localization/hr_HR.inc89
-rw-r--r--plugins/acl/localization/hu_HU.inc94
-rw-r--r--plugins/acl/localization/hy_AM.inc89
-rw-r--r--plugins/acl/localization/ia.inc98
-rw-r--r--plugins/acl/localization/id_ID.inc94
-rw-r--r--plugins/acl/localization/it_IT.inc98
-rw-r--r--plugins/acl/localization/ja_JP.inc98
-rw-r--r--plugins/acl/localization/km_KH.inc74
-rw-r--r--plugins/acl/localization/ko_KR.inc98
-rw-r--r--plugins/acl/localization/ku.inc83
-rw-r--r--plugins/acl/localization/ku_IQ.inc26
-rw-r--r--plugins/acl/localization/lb_LU.inc69
-rw-r--r--plugins/acl/localization/lt_LT.inc98
-rw-r--r--plugins/acl/localization/lv_LV.inc89
-rw-r--r--plugins/acl/localization/nb_NO.inc91
-rw-r--r--plugins/acl/localization/nl_NL.inc98
-rw-r--r--plugins/acl/localization/nn_NO.inc88
-rw-r--r--plugins/acl/localization/pl_PL.inc98
-rw-r--r--plugins/acl/localization/pt_BR.inc98
-rw-r--r--plugins/acl/localization/pt_PT.inc98
-rw-r--r--plugins/acl/localization/ro_RO.inc94
-rw-r--r--plugins/acl/localization/ru_RU.inc98
-rw-r--r--plugins/acl/localization/sk_SK.inc98
-rw-r--r--plugins/acl/localization/sl_SI.inc91
-rw-r--r--plugins/acl/localization/sq_AL.inc25
-rw-r--r--plugins/acl/localization/sr_CS.inc22
-rw-r--r--plugins/acl/localization/sv_SE.inc98
-rw-r--r--plugins/acl/localization/th_TH.inc49
-rw-r--r--plugins/acl/localization/ti.inc66
-rw-r--r--plugins/acl/localization/tr_TR.inc98
-rw-r--r--plugins/acl/localization/uk_UA.inc44
-rw-r--r--plugins/acl/localization/vi_VN.inc98
-rw-r--r--plugins/acl/localization/zh_CN.inc85
-rw-r--r--plugins/acl/localization/zh_TW.inc89
-rw-r--r--plugins/acl/skins/classic/acl.css98
-rw-r--r--plugins/acl/skins/classic/images/enabled.pngbin0 -> 674 bytes
-rw-r--r--plugins/acl/skins/classic/images/partial.pngbin0 -> 389 bytes
-rw-r--r--plugins/acl/skins/classic/templates/table.html46
-rw-r--r--plugins/acl/skins/larry/acl.css124
-rw-r--r--plugins/acl/skins/larry/images/enabled.pngbin0 -> 674 bytes
-rw-r--r--plugins/acl/skins/larry/images/partial.pngbin0 -> 389 bytes
-rw-r--r--plugins/acl/skins/larry/templates/table.html30
-rw-r--r--plugins/acl/tests/Acl.php23
-rw-r--r--plugins/additional_message_headers/additional_message_headers.php46
-rw-r--r--plugins/additional_message_headers/composer.json24
-rw-r--r--plugins/additional_message_headers/config.inc.php.dist14
-rw-r--r--plugins/additional_message_headers/tests/AdditionalMessageHeaders.php23
-rw-r--r--plugins/archive/archive.js69
-rw-r--r--plugins/archive/archive.php291
-rw-r--r--plugins/archive/composer.json29
-rw-r--r--plugins/archive/localization/ar_SA.inc31
-rw-r--r--plugins/archive/localization/ast.inc31
-rw-r--r--plugins/archive/localization/az_AZ.inc31
-rw-r--r--plugins/archive/localization/be_BE.inc31
-rw-r--r--plugins/archive/localization/bg_BG.inc31
-rw-r--r--plugins/archive/localization/br.inc23
-rw-r--r--plugins/archive/localization/bs_BA.inc31
-rw-r--r--plugins/archive/localization/ca_ES.inc31
-rw-r--r--plugins/archive/localization/cs_CZ.inc31
-rw-r--r--plugins/archive/localization/cy_GB.inc31
-rw-r--r--plugins/archive/localization/da_DK.inc31
-rw-r--r--plugins/archive/localization/de_CH.inc31
-rw-r--r--plugins/archive/localization/de_DE.inc31
-rw-r--r--plugins/archive/localization/el_GR.inc31
-rw-r--r--plugins/archive/localization/en_CA.inc31
-rw-r--r--plugins/archive/localization/en_GB.inc31
-rw-r--r--plugins/archive/localization/en_US.inc34
-rw-r--r--plugins/archive/localization/eo.inc22
-rw-r--r--plugins/archive/localization/es_419.inc31
-rw-r--r--plugins/archive/localization/es_AR.inc31
-rw-r--r--plugins/archive/localization/es_ES.inc31
-rw-r--r--plugins/archive/localization/et_EE.inc31
-rw-r--r--plugins/archive/localization/eu_ES.inc31
-rw-r--r--plugins/archive/localization/fa_AF.inc26
-rw-r--r--plugins/archive/localization/fa_IR.inc31
-rw-r--r--plugins/archive/localization/fi_FI.inc31
-rw-r--r--plugins/archive/localization/fo_FO.inc31
-rw-r--r--plugins/archive/localization/fr_FR.inc31
-rw-r--r--plugins/archive/localization/gl_ES.inc31
-rw-r--r--plugins/archive/localization/he_IL.inc31
-rw-r--r--plugins/archive/localization/hr_HR.inc31
-rw-r--r--plugins/archive/localization/hu_HU.inc31
-rw-r--r--plugins/archive/localization/hy_AM.inc31
-rw-r--r--plugins/archive/localization/ia.inc31
-rw-r--r--plugins/archive/localization/id_ID.inc31
-rw-r--r--plugins/archive/localization/it_IT.inc31
-rw-r--r--plugins/archive/localization/ja_JP.inc31
-rw-r--r--plugins/archive/localization/km_KH.inc31
-rw-r--r--plugins/archive/localization/ko_KR.inc31
-rw-r--r--plugins/archive/localization/ku.inc22
-rw-r--r--plugins/archive/localization/ku_IQ.inc22
-rw-r--r--plugins/archive/localization/lb_LU.inc31
-rw-r--r--plugins/archive/localization/lt_LT.inc31
-rw-r--r--plugins/archive/localization/lv_LV.inc31
-rw-r--r--plugins/archive/localization/ml_IN.inc22
-rw-r--r--plugins/archive/localization/mr_IN.inc22
-rw-r--r--plugins/archive/localization/nb_NO.inc31
-rw-r--r--plugins/archive/localization/nl_NL.inc31
-rw-r--r--plugins/archive/localization/nn_NO.inc31
-rw-r--r--plugins/archive/localization/pl_PL.inc31
-rw-r--r--plugins/archive/localization/pt_BR.inc31
-rw-r--r--plugins/archive/localization/pt_PT.inc31
-rw-r--r--plugins/archive/localization/ro_RO.inc31
-rw-r--r--plugins/archive/localization/ru_RU.inc31
-rw-r--r--plugins/archive/localization/si_LK.inc22
-rw-r--r--plugins/archive/localization/sk_SK.inc31
-rw-r--r--plugins/archive/localization/sl_SI.inc31
-rw-r--r--plugins/archive/localization/sq_AL.inc19
-rw-r--r--plugins/archive/localization/sr_CS.inc22
-rw-r--r--plugins/archive/localization/sv_SE.inc31
-rw-r--r--plugins/archive/localization/tr_TR.inc31
-rw-r--r--plugins/archive/localization/uk_UA.inc31
-rw-r--r--plugins/archive/localization/vi_VN.inc31
-rw-r--r--plugins/archive/localization/zh_CN.inc31
-rw-r--r--plugins/archive/localization/zh_TW.inc31
-rw-r--r--plugins/archive/skins/classic/archive.css10
-rw-r--r--plugins/archive/skins/classic/archive_act.pngbin0 -> 3663 bytes
-rw-r--r--plugins/archive/skins/classic/archive_pas.pngbin0 -> 977 bytes
-rw-r--r--plugins/archive/skins/classic/foldericon.pngbin0 -> 3312 bytes
-rw-r--r--plugins/archive/skins/larry/.gitignore0
-rw-r--r--plugins/archive/tests/Archive.php23
-rwxr-xr-xplugins/attachment_reminder/attachment_reminder.js83
-rwxr-xr-xplugins/attachment_reminder/attachment_reminder.php84
-rw-r--r--plugins/attachment_reminder/composer.json29
-rw-r--r--plugins/attachment_reminder/localization/ar_SA.inc20
-rw-r--r--plugins/attachment_reminder/localization/ast.inc20
-rw-r--r--plugins/attachment_reminder/localization/az_AZ.inc20
-rw-r--r--plugins/attachment_reminder/localization/be_BE.inc20
-rw-r--r--plugins/attachment_reminder/localization/bg_BG.inc20
-rw-r--r--plugins/attachment_reminder/localization/br.inc20
-rw-r--r--plugins/attachment_reminder/localization/bs_BA.inc20
-rw-r--r--plugins/attachment_reminder/localization/ca_ES.inc20
-rw-r--r--plugins/attachment_reminder/localization/cs_CZ.inc20
-rw-r--r--plugins/attachment_reminder/localization/cy_GB.inc20
-rw-r--r--plugins/attachment_reminder/localization/da_DK.inc20
-rw-r--r--plugins/attachment_reminder/localization/de_CH.inc20
-rw-r--r--plugins/attachment_reminder/localization/de_DE.inc20
-rw-r--r--plugins/attachment_reminder/localization/el_GR.inc20
-rw-r--r--plugins/attachment_reminder/localization/en_CA.inc20
-rw-r--r--plugins/attachment_reminder/localization/en_GB.inc20
-rw-r--r--plugins/attachment_reminder/localization/en_US.inc22
-rw-r--r--plugins/attachment_reminder/localization/es_419.inc20
-rw-r--r--plugins/attachment_reminder/localization/es_AR.inc20
-rw-r--r--plugins/attachment_reminder/localization/es_ES.inc20
-rw-r--r--plugins/attachment_reminder/localization/et_EE.inc20
-rw-r--r--plugins/attachment_reminder/localization/eu_ES.inc20
-rw-r--r--plugins/attachment_reminder/localization/fa_AF.inc20
-rw-r--r--plugins/attachment_reminder/localization/fa_IR.inc20
-rw-r--r--plugins/attachment_reminder/localization/fi_FI.inc20
-rw-r--r--plugins/attachment_reminder/localization/fo_FO.inc20
-rw-r--r--plugins/attachment_reminder/localization/fr_FR.inc20
-rw-r--r--plugins/attachment_reminder/localization/gl_ES.inc20
-rw-r--r--plugins/attachment_reminder/localization/he_IL.inc20
-rw-r--r--plugins/attachment_reminder/localization/hr_HR.inc20
-rw-r--r--plugins/attachment_reminder/localization/hu_HU.inc20
-rw-r--r--plugins/attachment_reminder/localization/ia.inc20
-rw-r--r--plugins/attachment_reminder/localization/id_ID.inc20
-rw-r--r--plugins/attachment_reminder/localization/it_IT.inc20
-rw-r--r--plugins/attachment_reminder/localization/ja_JP.inc20
-rw-r--r--plugins/attachment_reminder/localization/km_KH.inc20
-rw-r--r--plugins/attachment_reminder/localization/kn_IN.inc18
-rw-r--r--plugins/attachment_reminder/localization/ko_KR.inc20
-rw-r--r--plugins/attachment_reminder/localization/ku.inc20
-rw-r--r--plugins/attachment_reminder/localization/ku_IQ.inc19
-rw-r--r--plugins/attachment_reminder/localization/lb_LU.inc20
-rw-r--r--plugins/attachment_reminder/localization/lt_LT.inc20
-rw-r--r--plugins/attachment_reminder/localization/lv_LV.inc20
-rw-r--r--plugins/attachment_reminder/localization/ml_IN.inc19
-rw-r--r--plugins/attachment_reminder/localization/nb_NO.inc20
-rw-r--r--plugins/attachment_reminder/localization/nl_NL.inc20
-rw-r--r--plugins/attachment_reminder/localization/pl_PL.inc20
-rw-r--r--plugins/attachment_reminder/localization/pt_BR.inc20
-rw-r--r--plugins/attachment_reminder/localization/pt_PT.inc20
-rw-r--r--plugins/attachment_reminder/localization/ro_RO.inc20
-rw-r--r--plugins/attachment_reminder/localization/ru_RU.inc20
-rw-r--r--plugins/attachment_reminder/localization/sk_SK.inc20
-rw-r--r--plugins/attachment_reminder/localization/sl_SI.inc20
-rw-r--r--plugins/attachment_reminder/localization/sv_SE.inc20
-rw-r--r--plugins/attachment_reminder/localization/tr_TR.inc20
-rw-r--r--plugins/attachment_reminder/localization/uk_UA.inc19
-rw-r--r--plugins/attachment_reminder/localization/vi_VN.inc20
-rw-r--r--plugins/attachment_reminder/localization/zh_CN.inc20
-rw-r--r--plugins/attachment_reminder/localization/zh_TW.inc20
-rw-r--r--plugins/autologon/autologon.php48
-rw-r--r--plugins/autologon/composer.json24
-rw-r--r--plugins/autologon/tests/Autologon.php23
-rw-r--r--plugins/database_attachments/composer.json30
-rw-r--r--plugins/database_attachments/config.inc.php.dist12
-rw-r--r--plugins/database_attachments/database_attachments.php163
-rw-r--r--plugins/database_attachments/tests/DatabaseAttachments.php23
-rw-r--r--plugins/debug_logger/composer.json24
-rw-r--r--plugins/debug_logger/debug_logger.php150
-rw-r--r--plugins/debug_logger/runlog/runlog.php227
-rw-r--r--plugins/debug_logger/tests/DebugLogger.php23
-rw-r--r--plugins/emoticons/composer.json29
-rw-r--r--plugins/emoticons/emoticons.php78
-rw-r--r--plugins/emoticons/tests/Emoticons.php23
-rw-r--r--plugins/enigma/README66
-rw-r--r--plugins/enigma/composer.json29
-rw-r--r--plugins/enigma/config.inc.php.dist30
-rw-r--r--plugins/enigma/enigma.js386
-rw-r--r--plugins/enigma/enigma.php451
-rw-r--r--plugins/enigma/home/.htaccess2
-rw-r--r--plugins/enigma/lib/enigma_driver.php103
-rw-r--r--plugins/enigma/lib/enigma_driver_gnupg.php326
-rw-r--r--plugins/enigma/lib/enigma_driver_phpssl.php230
-rw-r--r--plugins/enigma/lib/enigma_engine.php1137
-rw-r--r--plugins/enigma/lib/enigma_error.php60
-rw-r--r--plugins/enigma/lib/enigma_key.php150
-rw-r--r--plugins/enigma/lib/enigma_mime_message.php299
-rw-r--r--plugins/enigma/lib/enigma_signature.php27
-rw-r--r--plugins/enigma/lib/enigma_subkey.php50
-rw-r--r--plugins/enigma/lib/enigma_ui.php749
-rw-r--r--plugins/enigma/lib/enigma_userid.php24
-rw-r--r--plugins/enigma/localization/en_US.inc72
-rw-r--r--plugins/enigma/localization/ja_JP.inc49
-rw-r--r--plugins/enigma/localization/ru_RU.inc58
-rw-r--r--plugins/enigma/skins/classic/enigma.css208
-rw-r--r--plugins/enigma/skins/classic/enigma.pngbin0 -> 1592 bytes
-rw-r--r--plugins/enigma/skins/classic/enigma_error.pngbin0 -> 1960 bytes
-rw-r--r--plugins/enigma/skins/classic/key.pngbin0 -> 1743 bytes
-rw-r--r--plugins/enigma/skins/classic/key_add.pngbin0 -> 1967 bytes
-rw-r--r--plugins/enigma/skins/classic/keys_toolbar.pngbin0 -> 14977 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.html89
-rw-r--r--plugins/enigma/skins/larry/enigma.css165
-rw-r--r--plugins/enigma/skins/larry/enigma_icons.pngbin0 -> 3285 bytes
-rw-r--r--plugins/enigma/skins/larry/templates/keyimport.html23
-rw-r--r--plugins/enigma/skins/larry/templates/keyinfo.html19
-rw-r--r--plugins/enigma/skins/larry/templates/keys.html83
-rw-r--r--plugins/enigma/tests/Enigma.php23
-rw-r--r--plugins/example_addressbook/composer.json24
-rw-r--r--plugins/example_addressbook/example_addressbook.php53
-rw-r--r--plugins/example_addressbook/example_addressbook_backend.php116
-rw-r--r--plugins/example_addressbook/tests/ExampleAddressbook.php23
-rw-r--r--plugins/filesystem_attachments/composer.json29
-rw-r--r--plugins/filesystem_attachments/filesystem_attachments.php185
-rw-r--r--plugins/filesystem_attachments/tests/FilesystemAttachments.php23
-rw-r--r--plugins/help/composer.json24
-rw-r--r--plugins/help/config.inc.php.dist37
-rw-r--r--plugins/help/content/license.html689
-rw-r--r--plugins/help/help.js38
-rw-r--r--plugins/help/help.php163
-rw-r--r--plugins/help/localization/ar_SA.inc21
-rw-r--r--plugins/help/localization/ast.inc21
-rw-r--r--plugins/help/localization/az_AZ.inc21
-rw-r--r--plugins/help/localization/be_BE.inc21
-rw-r--r--plugins/help/localization/bg_BG.inc21
-rw-r--r--plugins/help/localization/br.inc21
-rw-r--r--plugins/help/localization/bs_BA.inc21
-rw-r--r--plugins/help/localization/ca_ES.inc21
-rw-r--r--plugins/help/localization/cs_CZ.inc21
-rw-r--r--plugins/help/localization/cy_GB.inc21
-rw-r--r--plugins/help/localization/da_DK.inc21
-rw-r--r--plugins/help/localization/de_CH.inc21
-rw-r--r--plugins/help/localization/de_DE.inc21
-rw-r--r--plugins/help/localization/el_GR.inc21
-rw-r--r--plugins/help/localization/en_CA.inc21
-rw-r--r--plugins/help/localization/en_GB.inc21
-rw-r--r--plugins/help/localization/en_US.inc25
-rw-r--r--plugins/help/localization/eo.inc21
-rw-r--r--plugins/help/localization/es_419.inc21
-rw-r--r--plugins/help/localization/es_AR.inc21
-rw-r--r--plugins/help/localization/es_ES.inc21
-rw-r--r--plugins/help/localization/et_EE.inc21
-rw-r--r--plugins/help/localization/eu_ES.inc21
-rw-r--r--plugins/help/localization/fa_AF.inc21
-rw-r--r--plugins/help/localization/fa_IR.inc21
-rw-r--r--plugins/help/localization/fi_FI.inc21
-rw-r--r--plugins/help/localization/fo_FO.inc21
-rw-r--r--plugins/help/localization/fr_FR.inc21
-rw-r--r--plugins/help/localization/fy_NL.inc21
-rw-r--r--plugins/help/localization/gl_ES.inc21
-rw-r--r--plugins/help/localization/he_IL.inc21
-rw-r--r--plugins/help/localization/hr_HR.inc21
-rw-r--r--plugins/help/localization/hu_HU.inc21
-rw-r--r--plugins/help/localization/hy_AM.inc21
-rw-r--r--plugins/help/localization/ia.inc21
-rw-r--r--plugins/help/localization/id_ID.inc21
-rw-r--r--plugins/help/localization/it_IT.inc21
-rw-r--r--plugins/help/localization/ja_JP.inc21
-rw-r--r--plugins/help/localization/km_KH.inc21
-rw-r--r--plugins/help/localization/kn_IN.inc20
-rw-r--r--plugins/help/localization/ko_KR.inc21
-rw-r--r--plugins/help/localization/ku.inc21
-rw-r--r--plugins/help/localization/ku_IQ.inc21
-rw-r--r--plugins/help/localization/lb_LU.inc21
-rw-r--r--plugins/help/localization/lt_LT.inc21
-rw-r--r--plugins/help/localization/lv_LV.inc21
-rw-r--r--plugins/help/localization/ml_IN.inc21
-rw-r--r--plugins/help/localization/nb_NO.inc21
-rw-r--r--plugins/help/localization/nl_NL.inc21
-rw-r--r--plugins/help/localization/nn_NO.inc21
-rw-r--r--plugins/help/localization/pl_PL.inc21
-rw-r--r--plugins/help/localization/pt_BR.inc21
-rw-r--r--plugins/help/localization/pt_PT.inc21
-rw-r--r--plugins/help/localization/ro_RO.inc21
-rw-r--r--plugins/help/localization/ru_RU.inc21
-rw-r--r--plugins/help/localization/sk_SK.inc21
-rw-r--r--plugins/help/localization/sl_SI.inc21
-rw-r--r--plugins/help/localization/sq_AL.inc20
-rw-r--r--plugins/help/localization/sr_CS.inc21
-rw-r--r--plugins/help/localization/sv_SE.inc21
-rw-r--r--plugins/help/localization/ti.inc21
-rw-r--r--plugins/help/localization/tr_TR.inc21
-rw-r--r--plugins/help/localization/uk_UA.inc21
-rw-r--r--plugins/help/localization/vi_VN.inc21
-rw-r--r--plugins/help/localization/zh_CN.inc21
-rw-r--r--plugins/help/localization/zh_TW.inc21
-rw-r--r--plugins/help/skins/classic/help.css43
-rw-r--r--plugins/help/skins/classic/help.gifbin0 -> 898 bytes
-rw-r--r--plugins/help/skins/classic/templates/help.html41
-rw-r--r--plugins/help/skins/larry/help.css44
-rw-r--r--plugins/help/skins/larry/help.pngbin0 -> 2876 bytes
-rw-r--r--plugins/help/skins/larry/icons.psdbin0 -> 339722 bytes
-rw-r--r--plugins/help/skins/larry/templates/help.html31
-rw-r--r--plugins/help/tests/Help.php23
-rw-r--r--plugins/hide_blockquote/composer.json24
-rw-r--r--plugins/hide_blockquote/hide_blockquote.js63
-rw-r--r--plugins/hide_blockquote/hide_blockquote.php78
-rw-r--r--plugins/hide_blockquote/localization/ar_SA.inc21
-rw-r--r--plugins/hide_blockquote/localization/ast.inc21
-rw-r--r--plugins/hide_blockquote/localization/az_AZ.inc21
-rw-r--r--plugins/hide_blockquote/localization/be_BE.inc21
-rw-r--r--plugins/hide_blockquote/localization/bg_BG.inc21
-rw-r--r--plugins/hide_blockquote/localization/br.inc21
-rw-r--r--plugins/hide_blockquote/localization/bs_BA.inc21
-rw-r--r--plugins/hide_blockquote/localization/ca_ES.inc21
-rw-r--r--plugins/hide_blockquote/localization/cs_CZ.inc21
-rw-r--r--plugins/hide_blockquote/localization/cy_GB.inc21
-rw-r--r--plugins/hide_blockquote/localization/da_DK.inc21
-rw-r--r--plugins/hide_blockquote/localization/de_CH.inc21
-rw-r--r--plugins/hide_blockquote/localization/de_DE.inc21
-rw-r--r--plugins/hide_blockquote/localization/el_GR.inc21
-rw-r--r--plugins/hide_blockquote/localization/en_CA.inc21
-rw-r--r--plugins/hide_blockquote/localization/en_GB.inc21
-rw-r--r--plugins/hide_blockquote/localization/en_US.inc24
-rw-r--r--plugins/hide_blockquote/localization/eo.inc21
-rw-r--r--plugins/hide_blockquote/localization/es_419.inc21
-rw-r--r--plugins/hide_blockquote/localization/es_AR.inc21
-rw-r--r--plugins/hide_blockquote/localization/es_ES.inc21
-rw-r--r--plugins/hide_blockquote/localization/et_EE.inc21
-rw-r--r--plugins/hide_blockquote/localization/eu_ES.inc21
-rw-r--r--plugins/hide_blockquote/localization/fa_IR.inc21
-rw-r--r--plugins/hide_blockquote/localization/fi_FI.inc21
-rw-r--r--plugins/hide_blockquote/localization/fo_FO.inc21
-rw-r--r--plugins/hide_blockquote/localization/fr_FR.inc21
-rw-r--r--plugins/hide_blockquote/localization/gl_ES.inc21
-rw-r--r--plugins/hide_blockquote/localization/he_IL.inc21
-rw-r--r--plugins/hide_blockquote/localization/hr_HR.inc21
-rw-r--r--plugins/hide_blockquote/localization/hu_HU.inc21
-rw-r--r--plugins/hide_blockquote/localization/hy_AM.inc21
-rw-r--r--plugins/hide_blockquote/localization/ia.inc21
-rw-r--r--plugins/hide_blockquote/localization/id_ID.inc21
-rw-r--r--plugins/hide_blockquote/localization/it_IT.inc21
-rw-r--r--plugins/hide_blockquote/localization/ja_JP.inc21
-rw-r--r--plugins/hide_blockquote/localization/km_KH.inc21
-rw-r--r--plugins/hide_blockquote/localization/ko_KR.inc21
-rw-r--r--plugins/hide_blockquote/localization/ku.inc21
-rw-r--r--plugins/hide_blockquote/localization/lb_LU.inc21
-rw-r--r--plugins/hide_blockquote/localization/lt_LT.inc21
-rw-r--r--plugins/hide_blockquote/localization/lv_LV.inc21
-rw-r--r--plugins/hide_blockquote/localization/ml_IN.inc21
-rw-r--r--plugins/hide_blockquote/localization/nb_NO.inc21
-rw-r--r--plugins/hide_blockquote/localization/nl_NL.inc21
-rw-r--r--plugins/hide_blockquote/localization/nn_NO.inc21
-rw-r--r--plugins/hide_blockquote/localization/pl_PL.inc21
-rw-r--r--plugins/hide_blockquote/localization/pt_BR.inc21
-rw-r--r--plugins/hide_blockquote/localization/pt_PT.inc21
-rw-r--r--plugins/hide_blockquote/localization/ro_RO.inc21
-rw-r--r--plugins/hide_blockquote/localization/ru_RU.inc21
-rw-r--r--plugins/hide_blockquote/localization/sk_SK.inc21
-rw-r--r--plugins/hide_blockquote/localization/sl_SI.inc21
-rw-r--r--plugins/hide_blockquote/localization/sq_AL.inc20
-rw-r--r--plugins/hide_blockquote/localization/sr_CS.inc21
-rw-r--r--plugins/hide_blockquote/localization/sv_SE.inc21
-rw-r--r--plugins/hide_blockquote/localization/tr_TR.inc21
-rw-r--r--plugins/hide_blockquote/localization/uk_UA.inc20
-rw-r--r--plugins/hide_blockquote/localization/vi_VN.inc21
-rw-r--r--plugins/hide_blockquote/localization/zh_CN.inc21
-rw-r--r--plugins/hide_blockquote/localization/zh_TW.inc21
-rw-r--r--plugins/hide_blockquote/skins/larry/style.css31
-rw-r--r--plugins/hide_blockquote/tests/HideBlockquote.php23
-rw-r--r--plugins/http_authentication/composer.json24
-rw-r--r--plugins/http_authentication/config.inc.php.dist9
-rw-r--r--plugins/http_authentication/http_authentication.php107
-rw-r--r--plugins/http_authentication/logout.html29
-rw-r--r--plugins/http_authentication/tests/HttpAuthentication.php23
-rw-r--r--plugins/identity_select/composer.json24
-rw-r--r--plugins/identity_select/identity_select.php68
-rw-r--r--plugins/identity_select/tests/IdentitySelect.php22
-rw-r--r--plugins/jqueryui/README31
-rw-r--r--plugins/jqueryui/composer.json24
-rw-r--r--plugins/jqueryui/config.inc.php.dist13
-rw-r--r--plugins/jqueryui/jqueryui.php164
-rw-r--r--plugins/jqueryui/js/i18n/jquery-ui-i18n.js1677
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js26
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-de-CH.js24
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js61
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js27
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js23
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-kz.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js24
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js23
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js28
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js26
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js26
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js25
-rw-r--r--plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js25
-rwxr-xr-xplugins/jqueryui/js/jquery-ui-1.10.4.custom.min.js250
-rw-r--r--plugins/jqueryui/js/jquery-ui-accessible-datepicker.js235
-rw-r--r--plugins/jqueryui/js/jquery.miniColors.min.js49
-rw-r--r--plugins/jqueryui/js/jquery.tagedit.js683
-rw-r--r--plugins/jqueryui/tests/Jqueryui.php23
-rwxr-xr-xplugins/jqueryui/themes/classic/images/animated-overlay.gifbin0 -> 1738 bytes
-rw-r--r--plugins/jqueryui/themes/classic/images/buttongradient.pngbin0 -> 193 bytes
-rw-r--r--plugins/jqueryui/themes/classic/images/listheader.pngbin0 -> 356 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-bg_flat_0_aaaaaa_40x100.pngbin0 -> 180 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-bg_flat_75_ffffff_40x100.pngbin0 -> 178 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-bg_flat_90_cc3333_40x100.pngbin0 -> 212 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-bg_glass_95_fef1ec_1x400.pngbin0 -> 119 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_a3a3a3_1x100.pngbin0 -> 114 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_e6e6e7_1x100.pngbin0 -> 101 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_f4f4f4_1x100.pngbin0 -> 122 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.pngbin0 -> 5355 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/classic/jquery-ui-1.10.4.custom.css1223
-rw-r--r--plugins/jqueryui/themes/classic/roundcube-custom.diff174
-rw-r--r--plugins/jqueryui/themes/larry/images/animated-overlay.gifbin0 -> 1738 bytes
-rw-r--r--plugins/jqueryui/themes/larry/images/minicolors-all.pngbin0 -> 13370 bytes
-rw-r--r--plugins/jqueryui/themes/larry/images/minicolors-handles.gifbin0 -> 421 bytes
-rw-r--r--plugins/jqueryui/themes/larry/images/ui-dialog-close.pngbin0 -> 644 bytes
-rw-r--r--plugins/jqueryui/themes/larry/images/ui-icons-datepicker.pngbin0 -> 323 bytes
-rw-r--r--plugins/jqueryui/themes/larry/images/ui-icons_004458_256x240.pngbin0 -> 3395 bytes
-rw-r--r--plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.pngbin0 -> 3378 bytes
-rwxr-xr-xplugins/jqueryui/themes/larry/jquery-ui-1.10.4.custom.css1517
-rw-r--r--plugins/jqueryui/themes/larry/jquery-ui-css.diff600
-rw-r--r--plugins/jqueryui/themes/larry/jquery.miniColors.css106
-rw-r--r--plugins/jqueryui/themes/larry/tagedit.css122
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/animated-overlay.gifbin0 -> 1738 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.pngbin0 -> 180 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.pngbin0 -> 182 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.pngbin0 -> 162 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.pngbin0 -> 123 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.pngbin0 -> 119 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.pngbin0 -> 3457 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.pngbin0 -> 104 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.pngbin0 -> 88 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.pngbin0 -> 4369 bytes
-rwxr-xr-xplugins/jqueryui/themes/redmond/jquery-ui-1.10.4.custom.css1178
-rw-r--r--plugins/legacy_browser/composer.json24
-rw-r--r--plugins/legacy_browser/js/iehacks.js108
-rw-r--r--plugins/legacy_browser/js/jquery.min.js4
-rw-r--r--plugins/legacy_browser/legacy_browser.php112
-rw-r--r--plugins/legacy_browser/skins/classic/iehacks.css295
-rw-r--r--plugins/legacy_browser/skins/classic/images/abook_toolbar.gifbin0 -> 5753 bytes
-rw-r--r--plugins/legacy_browser/skins/classic/images/mail_toolbar.gifbin0 -> 12821 bytes
-rw-r--r--plugins/legacy_browser/skins/larry/ie7hacks.css211
-rw-r--r--plugins/legacy_browser/skins/larry/iehacks.css200
-rw-r--r--plugins/legacy_browser/skins/larry/images/buttons.gifbin0 -> 14997 bytes
-rw-r--r--plugins/legacy_browser/tests/LegacyBrowser.php23
-rw-r--r--plugins/managesieve/Changelog338
-rw-r--r--plugins/managesieve/composer.json29
-rw-r--r--plugins/managesieve/config.inc.php.dist100
-rw-r--r--plugins/managesieve/lib/Roundcube/rcube_sieve.php426
-rw-r--r--plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php2419
-rw-r--r--plugins/managesieve/lib/Roundcube/rcube_sieve_script.php1217
-rw-r--r--plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php901
-rw-r--r--plugins/managesieve/localization/ar_SA.inc188
-rw-r--r--plugins/managesieve/localization/ast.inc50
-rw-r--r--plugins/managesieve/localization/az_AZ.inc188
-rw-r--r--plugins/managesieve/localization/be_BE.inc188
-rw-r--r--plugins/managesieve/localization/bg_BG.inc209
-rw-r--r--plugins/managesieve/localization/br.inc30
-rw-r--r--plugins/managesieve/localization/bs_BA.inc224
-rw-r--r--plugins/managesieve/localization/ca_ES.inc224
-rw-r--r--plugins/managesieve/localization/cs_CZ.inc218
-rw-r--r--plugins/managesieve/localization/cy_GB.inc224
-rw-r--r--plugins/managesieve/localization/da_DK.inc205
-rw-r--r--plugins/managesieve/localization/de_CH.inc224
-rw-r--r--plugins/managesieve/localization/de_DE.inc224
-rw-r--r--plugins/managesieve/localization/el_GR.inc224
-rw-r--r--plugins/managesieve/localization/en_CA.inc209
-rw-r--r--plugins/managesieve/localization/en_GB.inc224
-rw-r--r--plugins/managesieve/localization/en_US.inc230
-rw-r--r--plugins/managesieve/localization/eo.inc51
-rw-r--r--plugins/managesieve/localization/es_419.inc224
-rw-r--r--plugins/managesieve/localization/es_AR.inc224
-rw-r--r--plugins/managesieve/localization/es_ES.inc224
-rw-r--r--plugins/managesieve/localization/et_EE.inc177
-rw-r--r--plugins/managesieve/localization/eu_ES.inc224
-rw-r--r--plugins/managesieve/localization/fa_AF.inc85
-rw-r--r--plugins/managesieve/localization/fa_IR.inc224
-rw-r--r--plugins/managesieve/localization/fi_FI.inc183
-rw-r--r--plugins/managesieve/localization/fr_FR.inc224
-rw-r--r--plugins/managesieve/localization/fy_NL.inc39
-rw-r--r--plugins/managesieve/localization/gl_ES.inc206
-rw-r--r--plugins/managesieve/localization/he_IL.inc224
-rw-r--r--plugins/managesieve/localization/hr_HR.inc194
-rw-r--r--plugins/managesieve/localization/hu_HU.inc224
-rw-r--r--plugins/managesieve/localization/hy_AM.inc138
-rw-r--r--plugins/managesieve/localization/ia.inc224
-rw-r--r--plugins/managesieve/localization/id_ID.inc221
-rw-r--r--plugins/managesieve/localization/it_IT.inc224
-rw-r--r--plugins/managesieve/localization/ja_JP.inc214
-rw-r--r--plugins/managesieve/localization/km_KH.inc116
-rw-r--r--plugins/managesieve/localization/ko_KR.inc224
-rw-r--r--plugins/managesieve/localization/ku.inc90
-rw-r--r--plugins/managesieve/localization/lb_LU.inc49
-rw-r--r--plugins/managesieve/localization/lt_LT.inc221
-rw-r--r--plugins/managesieve/localization/lv_LV.inc188
-rw-r--r--plugins/managesieve/localization/ml_IN.inc148
-rw-r--r--plugins/managesieve/localization/mr_IN.inc34
-rw-r--r--plugins/managesieve/localization/nb_NO.inc188
-rw-r--r--plugins/managesieve/localization/nl_NL.inc224
-rw-r--r--plugins/managesieve/localization/nn_NO.inc152
-rw-r--r--plugins/managesieve/localization/pl_PL.inc224
-rw-r--r--plugins/managesieve/localization/pt_BR.inc224
-rw-r--r--plugins/managesieve/localization/pt_PT.inc224
-rw-r--r--plugins/managesieve/localization/ro_RO.inc202
-rw-r--r--plugins/managesieve/localization/ru_RU.inc224
-rw-r--r--plugins/managesieve/localization/si_LK.inc42
-rw-r--r--plugins/managesieve/localization/sk_SK.inc224
-rw-r--r--plugins/managesieve/localization/sl_SI.inc188
-rw-r--r--plugins/managesieve/localization/sq_AL.inc26
-rw-r--r--plugins/managesieve/localization/sv_SE.inc224
-rw-r--r--plugins/managesieve/localization/th_TH.inc45
-rw-r--r--plugins/managesieve/localization/tr_TR.inc224
-rw-r--r--plugins/managesieve/localization/uk_UA.inc140
-rw-r--r--plugins/managesieve/localization/vi_VN.inc209
-rw-r--r--plugins/managesieve/localization/zh_CN.inc166
-rw-r--r--plugins/managesieve/localization/zh_TW.inc160
-rw-r--r--plugins/managesieve/managesieve.js1061
-rw-r--r--plugins/managesieve/managesieve.php274
-rw-r--r--plugins/managesieve/skins/classic/images/add.pngbin0 -> 280 bytes
-rw-r--r--plugins/managesieve/skins/classic/images/del.pngbin0 -> 247 bytes
-rw-r--r--plugins/managesieve/skins/classic/images/down_small.gifbin0 -> 106 bytes
-rw-r--r--plugins/managesieve/skins/classic/images/erase.pngbin0 -> 453 bytes
-rw-r--r--plugins/managesieve/skins/classic/images/filter.pngbin0 -> 547 bytes
-rw-r--r--plugins/managesieve/skins/classic/images/up_small.gifbin0 -> 106 bytes
-rw-r--r--plugins/managesieve/skins/classic/managesieve.css440
-rw-r--r--plugins/managesieve/skins/classic/managesieve_mail.css62
-rw-r--r--plugins/managesieve/skins/classic/templates/filteredit.html32
-rw-r--r--plugins/managesieve/skins/classic/templates/managesieve.html85
-rw-r--r--plugins/managesieve/skins/classic/templates/setedit.html23
-rw-r--r--plugins/managesieve/skins/classic/templates/vacation.html31
-rw-r--r--plugins/managesieve/skins/larry/images/add.pngbin0 -> 280 bytes
-rw-r--r--plugins/managesieve/skins/larry/images/del.pngbin0 -> 247 bytes
-rw-r--r--plugins/managesieve/skins/larry/images/down_small.gifbin0 -> 106 bytes
-rw-r--r--plugins/managesieve/skins/larry/images/erase.pngbin0 -> 453 bytes
-rw-r--r--plugins/managesieve/skins/larry/images/up_small.gifbin0 -> 106 bytes
-rw-r--r--plugins/managesieve/skins/larry/images/vacation_icons.pngbin0 -> 767 bytes
-rw-r--r--plugins/managesieve/skins/larry/managesieve.css459
-rw-r--r--plugins/managesieve/skins/larry/managesieve_mail.css62
-rw-r--r--plugins/managesieve/skins/larry/templates/filteredit.html32
-rw-r--r--plugins/managesieve/skins/larry/templates/managesieve.html79
-rw-r--r--plugins/managesieve/skins/larry/templates/setedit.html24
-rw-r--r--plugins/managesieve/skins/larry/templates/vacation.html32
-rw-r--r--plugins/managesieve/tests/Managesieve.php23
-rw-r--r--plugins/managesieve/tests/Parser.php62
-rw-r--r--plugins/managesieve/tests/Tokenizer.php33
-rw-r--r--plugins/managesieve/tests/Vacation.php66
-rw-r--r--plugins/managesieve/tests/src/parser52
-rw-r--r--plugins/managesieve/tests/src/parser.out52
-rw-r--r--plugins/managesieve/tests/src/parser_body17
-rw-r--r--plugins/managesieve/tests/src/parser_date21
-rw-r--r--plugins/managesieve/tests/src/parser_enotify_a19
-rw-r--r--plugins/managesieve/tests/src/parser_enotify_b18
-rw-r--r--plugins/managesieve/tests/src/parser_imapflags7
-rw-r--r--plugins/managesieve/tests/src/parser_include7
-rw-r--r--plugins/managesieve/tests/src/parser_index24
-rw-r--r--plugins/managesieve/tests/src/parser_kep142
-rw-r--r--plugins/managesieve/tests/src/parser_kep14.out3
-rw-r--r--plugins/managesieve/tests/src/parser_notify_a18
-rw-r--r--plugins/managesieve/tests/src/parser_notify_b17
-rw-r--r--plugins/managesieve/tests/src/parser_prefix5
-rw-r--r--plugins/managesieve/tests/src/parser_relational6
-rw-r--r--plugins/managesieve/tests/src/parser_subaddress11
-rw-r--r--plugins/managesieve/tests/src/parser_vacation12
-rw-r--r--plugins/managesieve/tests/src/parser_vacation_seconds12
-rw-r--r--plugins/managesieve/tests/src/parser_variables12
-rw-r--r--plugins/markasjunk/composer.json24
-rw-r--r--plugins/markasjunk/localization/ar.inc20
-rw-r--r--plugins/markasjunk/localization/ar_SA.inc21
-rw-r--r--plugins/markasjunk/localization/ast.inc21
-rw-r--r--plugins/markasjunk/localization/az_AZ.inc21
-rw-r--r--plugins/markasjunk/localization/be_BE.inc21
-rw-r--r--plugins/markasjunk/localization/bg_BG.inc21
-rw-r--r--plugins/markasjunk/localization/br.inc21
-rw-r--r--plugins/markasjunk/localization/bs_BA.inc21
-rw-r--r--plugins/markasjunk/localization/ca_ES.inc21
-rw-r--r--plugins/markasjunk/localization/cs_CZ.inc21
-rw-r--r--plugins/markasjunk/localization/cy_GB.inc21
-rw-r--r--plugins/markasjunk/localization/da_DK.inc21
-rw-r--r--plugins/markasjunk/localization/de_CH.inc21
-rw-r--r--plugins/markasjunk/localization/de_DE.inc21
-rw-r--r--plugins/markasjunk/localization/el_GR.inc21
-rw-r--r--plugins/markasjunk/localization/en_CA.inc21
-rw-r--r--plugins/markasjunk/localization/en_GB.inc21
-rw-r--r--plugins/markasjunk/localization/en_US.inc24
-rw-r--r--plugins/markasjunk/localization/eo.inc21
-rw-r--r--plugins/markasjunk/localization/es_419.inc21
-rw-r--r--plugins/markasjunk/localization/es_AR.inc21
-rw-r--r--plugins/markasjunk/localization/es_ES.inc21
-rw-r--r--plugins/markasjunk/localization/et_EE.inc21
-rw-r--r--plugins/markasjunk/localization/eu_ES.inc21
-rw-r--r--plugins/markasjunk/localization/fa_AF.inc21
-rw-r--r--plugins/markasjunk/localization/fa_IR.inc21
-rw-r--r--plugins/markasjunk/localization/fi_FI.inc21
-rw-r--r--plugins/markasjunk/localization/fo_FO.inc21
-rw-r--r--plugins/markasjunk/localization/fr_FR.inc21
-rw-r--r--plugins/markasjunk/localization/fy_NL.inc19
-rw-r--r--plugins/markasjunk/localization/gl_ES.inc21
-rw-r--r--plugins/markasjunk/localization/he_IL.inc21
-rw-r--r--plugins/markasjunk/localization/hr_HR.inc21
-rw-r--r--plugins/markasjunk/localization/hu_HU.inc21
-rw-r--r--plugins/markasjunk/localization/hy_AM.inc21
-rw-r--r--plugins/markasjunk/localization/ia.inc21
-rw-r--r--plugins/markasjunk/localization/id_ID.inc21
-rw-r--r--plugins/markasjunk/localization/it_IT.inc21
-rw-r--r--plugins/markasjunk/localization/ja_JP.inc21
-rw-r--r--plugins/markasjunk/localization/km_KH.inc21
-rw-r--r--plugins/markasjunk/localization/ko_KR.inc21
-rw-r--r--plugins/markasjunk/localization/lb_LU.inc21
-rw-r--r--plugins/markasjunk/localization/lt_LT.inc21
-rw-r--r--plugins/markasjunk/localization/lv_LV.inc21
-rw-r--r--plugins/markasjunk/localization/ml_IN.inc21
-rw-r--r--plugins/markasjunk/localization/mr_IN.inc20
-rw-r--r--plugins/markasjunk/localization/nb_NO.inc21
-rw-r--r--plugins/markasjunk/localization/nl_NL.inc21
-rw-r--r--plugins/markasjunk/localization/nn_NO.inc21
-rw-r--r--plugins/markasjunk/localization/pl_PL.inc21
-rw-r--r--plugins/markasjunk/localization/pt_BR.inc21
-rw-r--r--plugins/markasjunk/localization/pt_PT.inc21
-rw-r--r--plugins/markasjunk/localization/ro_RO.inc21
-rw-r--r--plugins/markasjunk/localization/ru_RU.inc21
-rw-r--r--plugins/markasjunk/localization/si_LK.inc20
-rw-r--r--plugins/markasjunk/localization/sk_SK.inc21
-rw-r--r--plugins/markasjunk/localization/sl_SI.inc21
-rw-r--r--plugins/markasjunk/localization/sr_CS.inc21
-rw-r--r--plugins/markasjunk/localization/sv_SE.inc21
-rw-r--r--plugins/markasjunk/localization/tr_TR.inc21
-rw-r--r--plugins/markasjunk/localization/uk_UA.inc21
-rw-r--r--plugins/markasjunk/localization/vi_VN.inc21
-rw-r--r--plugins/markasjunk/localization/zh_CN.inc21
-rw-r--r--plugins/markasjunk/localization/zh_TW.inc21
-rw-r--r--plugins/markasjunk/markasjunk.js43
-rw-r--r--plugins/markasjunk/markasjunk.php75
-rw-r--r--plugins/markasjunk/skins/classic/junk_act.pngbin0 -> 1995 bytes
-rw-r--r--plugins/markasjunk/skins/classic/junk_pas.pngbin0 -> 1988 bytes
-rw-r--r--plugins/markasjunk/skins/classic/markasjunk.css6
-rw-r--r--plugins/markasjunk/skins/larry/.gitignore0
-rw-r--r--plugins/markasjunk/tests/Markasjunk.php23
-rw-r--r--plugins/new_user_dialog/composer.json24
-rw-r--r--plugins/new_user_dialog/localization/ar.inc20
-rw-r--r--plugins/new_user_dialog/localization/ar_SA.inc20
-rw-r--r--plugins/new_user_dialog/localization/ast.inc20
-rw-r--r--plugins/new_user_dialog/localization/az_AZ.inc20
-rw-r--r--plugins/new_user_dialog/localization/be_BE.inc20
-rw-r--r--plugins/new_user_dialog/localization/bg_BG.inc20
-rw-r--r--plugins/new_user_dialog/localization/br.inc20
-rw-r--r--plugins/new_user_dialog/localization/bs_BA.inc20
-rw-r--r--plugins/new_user_dialog/localization/ca_ES.inc20
-rw-r--r--plugins/new_user_dialog/localization/cs_CZ.inc20
-rw-r--r--plugins/new_user_dialog/localization/cy_GB.inc20
-rw-r--r--plugins/new_user_dialog/localization/da_DK.inc20
-rw-r--r--plugins/new_user_dialog/localization/de_CH.inc20
-rw-r--r--plugins/new_user_dialog/localization/de_DE.inc20
-rw-r--r--plugins/new_user_dialog/localization/el_GR.inc20
-rw-r--r--plugins/new_user_dialog/localization/en_CA.inc20
-rw-r--r--plugins/new_user_dialog/localization/en_GB.inc20
-rw-r--r--plugins/new_user_dialog/localization/en_US.inc23
-rw-r--r--plugins/new_user_dialog/localization/eo.inc20
-rw-r--r--plugins/new_user_dialog/localization/es_419.inc20
-rw-r--r--plugins/new_user_dialog/localization/es_AR.inc20
-rw-r--r--plugins/new_user_dialog/localization/es_ES.inc20
-rw-r--r--plugins/new_user_dialog/localization/et_EE.inc20
-rw-r--r--plugins/new_user_dialog/localization/eu_ES.inc20
-rw-r--r--plugins/new_user_dialog/localization/fa_AF.inc20
-rw-r--r--plugins/new_user_dialog/localization/fa_IR.inc20
-rw-r--r--plugins/new_user_dialog/localization/fi_FI.inc20
-rw-r--r--plugins/new_user_dialog/localization/fo_FO.inc20
-rw-r--r--plugins/new_user_dialog/localization/fr_FR.inc20
-rw-r--r--plugins/new_user_dialog/localization/gl_ES.inc20
-rw-r--r--plugins/new_user_dialog/localization/he_IL.inc20
-rw-r--r--plugins/new_user_dialog/localization/hr_HR.inc20
-rw-r--r--plugins/new_user_dialog/localization/hu_HU.inc20
-rw-r--r--plugins/new_user_dialog/localization/hy_AM.inc20
-rw-r--r--plugins/new_user_dialog/localization/ia.inc20
-rw-r--r--plugins/new_user_dialog/localization/id_ID.inc20
-rw-r--r--plugins/new_user_dialog/localization/it_IT.inc20
-rw-r--r--plugins/new_user_dialog/localization/ja_JP.inc20
-rw-r--r--plugins/new_user_dialog/localization/km_KH.inc20
-rw-r--r--plugins/new_user_dialog/localization/ko_KR.inc20
-rw-r--r--plugins/new_user_dialog/localization/ku.inc20
-rw-r--r--plugins/new_user_dialog/localization/lb_LU.inc20
-rw-r--r--plugins/new_user_dialog/localization/lt_LT.inc20
-rw-r--r--plugins/new_user_dialog/localization/lv_LV.inc20
-rw-r--r--plugins/new_user_dialog/localization/ml_IN.inc20
-rw-r--r--plugins/new_user_dialog/localization/mr_IN.inc20
-rw-r--r--plugins/new_user_dialog/localization/nb_NO.inc20
-rw-r--r--plugins/new_user_dialog/localization/nl_NL.inc20
-rw-r--r--plugins/new_user_dialog/localization/nn_NO.inc20
-rw-r--r--plugins/new_user_dialog/localization/pl_PL.inc20
-rw-r--r--plugins/new_user_dialog/localization/pt_BR.inc20
-rw-r--r--plugins/new_user_dialog/localization/pt_PT.inc20
-rw-r--r--plugins/new_user_dialog/localization/ro_RO.inc20
-rw-r--r--plugins/new_user_dialog/localization/ru_RU.inc20
-rw-r--r--plugins/new_user_dialog/localization/sk_SK.inc20
-rw-r--r--plugins/new_user_dialog/localization/sl_SI.inc20
-rw-r--r--plugins/new_user_dialog/localization/sr_CS.inc20
-rw-r--r--plugins/new_user_dialog/localization/sv_SE.inc20
-rw-r--r--plugins/new_user_dialog/localization/tr_TR.inc20
-rw-r--r--plugins/new_user_dialog/localization/uk_UA.inc20
-rw-r--r--plugins/new_user_dialog/localization/vi_VN.inc20
-rw-r--r--plugins/new_user_dialog/localization/zh_CN.inc20
-rw-r--r--plugins/new_user_dialog/localization/zh_TW.inc20
-rw-r--r--plugins/new_user_dialog/new_user_dialog.php174
-rw-r--r--plugins/new_user_dialog/newuserdialog.css39
-rw-r--r--plugins/new_user_dialog/tests/NewUserDialog.php23
-rw-r--r--plugins/new_user_identity/composer.json24
-rw-r--r--plugins/new_user_identity/config.inc.php.dist15
-rw-r--r--plugins/new_user_identity/new_user_identity.php133
-rw-r--r--plugins/new_user_identity/tests/NewUserIdentity.php23
-rw-r--r--plugins/newmail_notifier/composer.json24
-rw-r--r--plugins/newmail_notifier/config.inc.php.dist15
-rw-r--r--plugins/newmail_notifier/favicon.icobin0 -> 1734 bytes
-rw-r--r--plugins/newmail_notifier/localization/ar_SA.inc28
-rw-r--r--plugins/newmail_notifier/localization/ast.inc28
-rw-r--r--plugins/newmail_notifier/localization/az_AZ.inc28
-rw-r--r--plugins/newmail_notifier/localization/be_BE.inc28
-rw-r--r--plugins/newmail_notifier/localization/bg_BG.inc28
-rw-r--r--plugins/newmail_notifier/localization/br.inc28
-rw-r--r--plugins/newmail_notifier/localization/bs_BA.inc28
-rw-r--r--plugins/newmail_notifier/localization/ca_ES.inc28
-rw-r--r--plugins/newmail_notifier/localization/cs_CZ.inc28
-rw-r--r--plugins/newmail_notifier/localization/cy_GB.inc28
-rw-r--r--plugins/newmail_notifier/localization/da_DK.inc28
-rw-r--r--plugins/newmail_notifier/localization/de_CH.inc28
-rw-r--r--plugins/newmail_notifier/localization/de_DE.inc28
-rw-r--r--plugins/newmail_notifier/localization/el_GR.inc28
-rw-r--r--plugins/newmail_notifier/localization/en_CA.inc28
-rw-r--r--plugins/newmail_notifier/localization/en_GB.inc28
-rw-r--r--plugins/newmail_notifier/localization/en_US.inc30
-rw-r--r--plugins/newmail_notifier/localization/eo.inc27
-rw-r--r--plugins/newmail_notifier/localization/es_419.inc28
-rw-r--r--plugins/newmail_notifier/localization/es_AR.inc28
-rw-r--r--plugins/newmail_notifier/localization/es_ES.inc28
-rw-r--r--plugins/newmail_notifier/localization/et_EE.inc28
-rw-r--r--plugins/newmail_notifier/localization/eu_ES.inc28
-rw-r--r--plugins/newmail_notifier/localization/fa_IR.inc28
-rw-r--r--plugins/newmail_notifier/localization/fi_FI.inc28
-rw-r--r--plugins/newmail_notifier/localization/fo_FO.inc28
-rw-r--r--plugins/newmail_notifier/localization/fr_FR.inc28
-rw-r--r--plugins/newmail_notifier/localization/fy_NL.inc20
-rw-r--r--plugins/newmail_notifier/localization/gl_ES.inc28
-rw-r--r--plugins/newmail_notifier/localization/he_IL.inc28
-rw-r--r--plugins/newmail_notifier/localization/hr_HR.inc28
-rw-r--r--plugins/newmail_notifier/localization/hu_HU.inc28
-rw-r--r--plugins/newmail_notifier/localization/hy_AM.inc28
-rw-r--r--plugins/newmail_notifier/localization/ia.inc28
-rw-r--r--plugins/newmail_notifier/localization/id_ID.inc28
-rw-r--r--plugins/newmail_notifier/localization/it_IT.inc28
-rw-r--r--plugins/newmail_notifier/localization/ja_JP.inc28
-rw-r--r--plugins/newmail_notifier/localization/km_KH.inc28
-rw-r--r--plugins/newmail_notifier/localization/ko_KR.inc28
-rw-r--r--plugins/newmail_notifier/localization/ku.inc28
-rw-r--r--plugins/newmail_notifier/localization/ku_IQ.inc19
-rw-r--r--plugins/newmail_notifier/localization/lb_LU.inc28
-rw-r--r--plugins/newmail_notifier/localization/lt_LT.inc28
-rw-r--r--plugins/newmail_notifier/localization/lv_LV.inc28
-rw-r--r--plugins/newmail_notifier/localization/ml_IN.inc28
-rw-r--r--plugins/newmail_notifier/localization/mr_IN.inc23
-rw-r--r--plugins/newmail_notifier/localization/nb_NO.inc28
-rw-r--r--plugins/newmail_notifier/localization/nl_NL.inc28
-rw-r--r--plugins/newmail_notifier/localization/nn_NO.inc27
-rw-r--r--plugins/newmail_notifier/localization/pl_PL.inc28
-rw-r--r--plugins/newmail_notifier/localization/pt_BR.inc28
-rw-r--r--plugins/newmail_notifier/localization/pt_PT.inc28
-rw-r--r--plugins/newmail_notifier/localization/ro_RO.inc28
-rw-r--r--plugins/newmail_notifier/localization/ru_RU.inc28
-rw-r--r--plugins/newmail_notifier/localization/si_LK.inc19
-rw-r--r--plugins/newmail_notifier/localization/sk_SK.inc28
-rw-r--r--plugins/newmail_notifier/localization/sl_SI.inc28
-rw-r--r--plugins/newmail_notifier/localization/sq_AL.inc20
-rw-r--r--plugins/newmail_notifier/localization/sr_CS.inc27
-rw-r--r--plugins/newmail_notifier/localization/sv_SE.inc28
-rw-r--r--plugins/newmail_notifier/localization/ti.inc27
-rw-r--r--plugins/newmail_notifier/localization/tr_TR.inc28
-rw-r--r--plugins/newmail_notifier/localization/uk_UA.inc28
-rw-r--r--plugins/newmail_notifier/localization/vi_VN.inc28
-rw-r--r--plugins/newmail_notifier/localization/zh_CN.inc27
-rw-r--r--plugins/newmail_notifier/localization/zh_TW.inc28
-rw-r--r--plugins/newmail_notifier/mail.pngbin0 -> 1408 bytes
-rw-r--r--plugins/newmail_notifier/newmail_notifier.js200
-rw-r--r--plugins/newmail_notifier/newmail_notifier.php218
-rw-r--r--plugins/newmail_notifier/overlay.icobin0 -> 1150 bytes
-rw-r--r--plugins/newmail_notifier/sound.mp3bin0 -> 7488 bytes
-rw-r--r--plugins/newmail_notifier/sound.wavbin0 -> 10444 bytes
-rw-r--r--plugins/newmail_notifier/tests/NewmailNotifier.php23
-rw-r--r--plugins/password/README350
-rw-r--r--plugins/password/composer.json24
-rw-r--r--plugins/password/config.inc.php.dist407
-rw-r--r--plugins/password/drivers/chpasswd.php54
-rw-r--r--plugins/password/drivers/cpanel.php87
-rw-r--r--plugins/password/drivers/dbmail.php70
-rw-r--r--plugins/password/drivers/directadmin.php502
-rw-r--r--plugins/password/drivers/domainfactory.php100
-rw-r--r--plugins/password/drivers/expect.php73
-rw-r--r--plugins/password/drivers/gearman.php70
-rw-r--r--plugins/password/drivers/hmail.php76
-rw-r--r--plugins/password/drivers/kpasswd.php45
-rw-r--r--plugins/password/drivers/ldap.php381
-rw-r--r--plugins/password/drivers/ldap_simple.php238
-rw-r--r--plugins/password/drivers/pam.php58
-rw-r--r--plugins/password/drivers/plesk.php241
-rw-r--r--plugins/password/drivers/poppassd.php82
-rw-r--r--plugins/password/drivers/pw_usermod.php56
-rw-r--r--plugins/password/drivers/sasl.php60
-rw-r--r--plugins/password/drivers/smb.php74
-rw-r--r--plugins/password/drivers/sql.php212
-rw-r--r--plugins/password/drivers/virtualmin.php94
-rw-r--r--plugins/password/drivers/vpopmaild.php71
-rw-r--r--plugins/password/drivers/ximss.php89
-rw-r--r--plugins/password/drivers/xmail.php119
-rw-r--r--plugins/password/helpers/chgdbmailusers.c47
-rw-r--r--plugins/password/helpers/chgsaslpasswd.c29
-rw-r--r--plugins/password/helpers/chgvirtualminpasswd.c28
-rw-r--r--plugins/password/helpers/chpass-wrapper.py32
-rw-r--r--plugins/password/helpers/dovecot_hmacmd5.php191
-rw-r--r--plugins/password/helpers/passwd-expect267
-rw-r--r--plugins/password/localization/ar.inc31
-rw-r--r--plugins/password/localization/ar_SA.inc31
-rw-r--r--plugins/password/localization/ast.inc32
-rw-r--r--plugins/password/localization/az_AZ.inc31
-rw-r--r--plugins/password/localization/be_BE.inc33
-rw-r--r--plugins/password/localization/bg_BG.inc31
-rw-r--r--plugins/password/localization/br.inc33
-rw-r--r--plugins/password/localization/bs_BA.inc33
-rw-r--r--plugins/password/localization/ca_ES.inc33
-rw-r--r--plugins/password/localization/cs_CZ.inc33
-rw-r--r--plugins/password/localization/cy_GB.inc33
-rw-r--r--plugins/password/localization/da_DK.inc33
-rw-r--r--plugins/password/localization/de_CH.inc33
-rw-r--r--plugins/password/localization/de_DE.inc33
-rw-r--r--plugins/password/localization/el_GR.inc33
-rw-r--r--plugins/password/localization/en_CA.inc31
-rw-r--r--plugins/password/localization/en_GB.inc33
-rw-r--r--plugins/password/localization/en_US.inc38
-rw-r--r--plugins/password/localization/eo.inc31
-rw-r--r--plugins/password/localization/es_419.inc33
-rw-r--r--plugins/password/localization/es_AR.inc33
-rw-r--r--plugins/password/localization/es_ES.inc33
-rw-r--r--plugins/password/localization/et_EE.inc33
-rw-r--r--plugins/password/localization/eu_ES.inc33
-rw-r--r--plugins/password/localization/fa_AF.inc31
-rw-r--r--plugins/password/localization/fa_IR.inc33
-rw-r--r--plugins/password/localization/fi_FI.inc33
-rw-r--r--plugins/password/localization/fo_FO.inc31
-rw-r--r--plugins/password/localization/fr_FR.inc33
-rw-r--r--plugins/password/localization/fy_NL.inc19
-rw-r--r--plugins/password/localization/gl_ES.inc33
-rw-r--r--plugins/password/localization/he_IL.inc33
-rw-r--r--plugins/password/localization/hr_HR.inc31
-rw-r--r--plugins/password/localization/hu_HU.inc33
-rw-r--r--plugins/password/localization/hy_AM.inc33
-rw-r--r--plugins/password/localization/ia.inc33
-rw-r--r--plugins/password/localization/id_ID.inc31
-rw-r--r--plugins/password/localization/it_IT.inc33
-rw-r--r--plugins/password/localization/ja_JP.inc33
-rw-r--r--plugins/password/localization/km_KH.inc31
-rw-r--r--plugins/password/localization/ko_KR.inc33
-rw-r--r--plugins/password/localization/ku.inc33
-rw-r--r--plugins/password/localization/ku_IQ.inc30
-rw-r--r--plugins/password/localization/lb_LU.inc31
-rw-r--r--plugins/password/localization/lt_LT.inc33
-rw-r--r--plugins/password/localization/lv_LV.inc31
-rw-r--r--plugins/password/localization/ml_IN.inc33
-rw-r--r--plugins/password/localization/nb_NO.inc31
-rw-r--r--plugins/password/localization/nl_NL.inc33
-rw-r--r--plugins/password/localization/nn_NO.inc31
-rw-r--r--plugins/password/localization/pl_PL.inc33
-rw-r--r--plugins/password/localization/pt_BR.inc33
-rw-r--r--plugins/password/localization/pt_PT.inc33
-rw-r--r--plugins/password/localization/ro_RO.inc33
-rw-r--r--plugins/password/localization/ru_RU.inc33
-rw-r--r--plugins/password/localization/sk_SK.inc33
-rw-r--r--plugins/password/localization/sl_SI.inc31
-rw-r--r--plugins/password/localization/sq_AL.inc24
-rw-r--r--plugins/password/localization/sr_CS.inc31
-rw-r--r--plugins/password/localization/sv_SE.inc33
-rw-r--r--plugins/password/localization/ti.inc31
-rw-r--r--plugins/password/localization/tr_TR.inc33
-rw-r--r--plugins/password/localization/uk_UA.inc31
-rw-r--r--plugins/password/localization/vi_VN.inc31
-rw-r--r--plugins/password/localization/zh_CN.inc31
-rw-r--r--plugins/password/localization/zh_TW.inc33
-rw-r--r--plugins/password/password.js47
-rw-r--r--plugins/password/password.php370
-rw-r--r--plugins/password/tests/Password.php23
-rw-r--r--plugins/redundant_attachments/composer.json30
-rw-r--r--plugins/redundant_attachments/config.inc.php.dist13
-rw-r--r--plugins/redundant_attachments/redundant_attachments.php234
-rw-r--r--plugins/redundant_attachments/tests/RedundantAttachments.php23
-rw-r--r--plugins/show_additional_headers/composer.json24
-rw-r--r--plugins/show_additional_headers/show_additional_headers.php51
-rw-r--r--plugins/show_additional_headers/tests/ShowAdditionalHeaders.php23
-rw-r--r--plugins/squirrelmail_usercopy/composer.json24
-rw-r--r--plugins/squirrelmail_usercopy/config.inc.php.dist25
-rw-r--r--plugins/squirrelmail_usercopy/squirrelmail_usercopy.php191
-rw-r--r--plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php23
-rw-r--r--plugins/subscriptions_option/composer.json29
-rw-r--r--plugins/subscriptions_option/localization/ar_SA.inc19
-rw-r--r--plugins/subscriptions_option/localization/ast.inc19
-rw-r--r--plugins/subscriptions_option/localization/az_AZ.inc19
-rw-r--r--plugins/subscriptions_option/localization/be_BE.inc19
-rw-r--r--plugins/subscriptions_option/localization/bg_BG.inc19
-rw-r--r--plugins/subscriptions_option/localization/br.inc19
-rw-r--r--plugins/subscriptions_option/localization/bs_BA.inc19
-rw-r--r--plugins/subscriptions_option/localization/ca_ES.inc19
-rw-r--r--plugins/subscriptions_option/localization/cs_CZ.inc19
-rw-r--r--plugins/subscriptions_option/localization/cy_GB.inc19
-rw-r--r--plugins/subscriptions_option/localization/da_DK.inc19
-rw-r--r--plugins/subscriptions_option/localization/de_CH.inc19
-rw-r--r--plugins/subscriptions_option/localization/de_DE.inc19
-rw-r--r--plugins/subscriptions_option/localization/el_GR.inc19
-rw-r--r--plugins/subscriptions_option/localization/en_CA.inc19
-rw-r--r--plugins/subscriptions_option/localization/en_GB.inc19
-rw-r--r--plugins/subscriptions_option/localization/en_US.inc22
-rw-r--r--plugins/subscriptions_option/localization/eo.inc19
-rw-r--r--plugins/subscriptions_option/localization/es_419.inc19
-rw-r--r--plugins/subscriptions_option/localization/es_AR.inc19
-rw-r--r--plugins/subscriptions_option/localization/es_ES.inc19
-rw-r--r--plugins/subscriptions_option/localization/et_EE.inc19
-rw-r--r--plugins/subscriptions_option/localization/eu_ES.inc19
-rw-r--r--plugins/subscriptions_option/localization/fa_AF.inc19
-rw-r--r--plugins/subscriptions_option/localization/fa_IR.inc19
-rw-r--r--plugins/subscriptions_option/localization/fi_FI.inc19
-rw-r--r--plugins/subscriptions_option/localization/fo_FO.inc19
-rw-r--r--plugins/subscriptions_option/localization/fr_FR.inc19
-rw-r--r--plugins/subscriptions_option/localization/gl_ES.inc19
-rw-r--r--plugins/subscriptions_option/localization/he_IL.inc19
-rw-r--r--plugins/subscriptions_option/localization/hr_HR.inc19
-rw-r--r--plugins/subscriptions_option/localization/hu_HU.inc19
-rw-r--r--plugins/subscriptions_option/localization/hy_AM.inc19
-rw-r--r--plugins/subscriptions_option/localization/ia.inc19
-rw-r--r--plugins/subscriptions_option/localization/id_ID.inc19
-rw-r--r--plugins/subscriptions_option/localization/it_IT.inc19
-rw-r--r--plugins/subscriptions_option/localization/ja_JP.inc19
-rw-r--r--plugins/subscriptions_option/localization/km_KH.inc19
-rw-r--r--plugins/subscriptions_option/localization/ko_KR.inc19
-rw-r--r--plugins/subscriptions_option/localization/ku.inc19
-rw-r--r--plugins/subscriptions_option/localization/lb_LU.inc19
-rw-r--r--plugins/subscriptions_option/localization/lt_LT.inc19
-rw-r--r--plugins/subscriptions_option/localization/lv_LV.inc19
-rw-r--r--plugins/subscriptions_option/localization/ml_IN.inc19
-rw-r--r--plugins/subscriptions_option/localization/nb_NO.inc19
-rw-r--r--plugins/subscriptions_option/localization/nl_NL.inc19
-rw-r--r--plugins/subscriptions_option/localization/nn_NO.inc19
-rw-r--r--plugins/subscriptions_option/localization/pl_PL.inc19
-rw-r--r--plugins/subscriptions_option/localization/pt_BR.inc19
-rw-r--r--plugins/subscriptions_option/localization/pt_PT.inc19
-rw-r--r--plugins/subscriptions_option/localization/ro_RO.inc19
-rw-r--r--plugins/subscriptions_option/localization/ru_RU.inc19
-rw-r--r--plugins/subscriptions_option/localization/sk_SK.inc19
-rw-r--r--plugins/subscriptions_option/localization/sl_SI.inc19
-rw-r--r--plugins/subscriptions_option/localization/sr_CS.inc19
-rw-r--r--plugins/subscriptions_option/localization/sv_SE.inc19
-rw-r--r--plugins/subscriptions_option/localization/tr_TR.inc19
-rw-r--r--plugins/subscriptions_option/localization/uk_UA.inc19
-rw-r--r--plugins/subscriptions_option/localization/vi_VN.inc19
-rw-r--r--plugins/subscriptions_option/localization/zh_CN.inc19
-rw-r--r--plugins/subscriptions_option/localization/zh_TW.inc19
-rw-r--r--plugins/subscriptions_option/subscriptions_option.php95
-rw-r--r--plugins/subscriptions_option/tests/SubscriptionsOption.php23
-rw-r--r--plugins/userinfo/composer.json24
-rw-r--r--plugins/userinfo/localization/ar.inc21
-rw-r--r--plugins/userinfo/localization/ar_SA.inc22
-rw-r--r--plugins/userinfo/localization/ast.inc22
-rw-r--r--plugins/userinfo/localization/az_AZ.inc22
-rw-r--r--plugins/userinfo/localization/be_BE.inc22
-rw-r--r--plugins/userinfo/localization/bg_BG.inc22
-rw-r--r--plugins/userinfo/localization/br.inc22
-rw-r--r--plugins/userinfo/localization/bs_BA.inc22
-rw-r--r--plugins/userinfo/localization/ca_ES.inc22
-rw-r--r--plugins/userinfo/localization/cs_CZ.inc22
-rw-r--r--plugins/userinfo/localization/cy_GB.inc22
-rw-r--r--plugins/userinfo/localization/da_DK.inc22
-rw-r--r--plugins/userinfo/localization/de_CH.inc22
-rw-r--r--plugins/userinfo/localization/de_DE.inc22
-rw-r--r--plugins/userinfo/localization/el_GR.inc22
-rw-r--r--plugins/userinfo/localization/en_CA.inc22
-rw-r--r--plugins/userinfo/localization/en_GB.inc22
-rw-r--r--plugins/userinfo/localization/en_US.inc25
-rw-r--r--plugins/userinfo/localization/eo.inc22
-rw-r--r--plugins/userinfo/localization/es_419.inc22
-rw-r--r--plugins/userinfo/localization/es_AR.inc22
-rw-r--r--plugins/userinfo/localization/es_ES.inc22
-rw-r--r--plugins/userinfo/localization/et_EE.inc22
-rw-r--r--plugins/userinfo/localization/eu_ES.inc22
-rw-r--r--plugins/userinfo/localization/fa_AF.inc22
-rw-r--r--plugins/userinfo/localization/fa_IR.inc22
-rw-r--r--plugins/userinfo/localization/fi_FI.inc22
-rw-r--r--plugins/userinfo/localization/fo_FO.inc22
-rw-r--r--plugins/userinfo/localization/fr_FR.inc22
-rw-r--r--plugins/userinfo/localization/fy_NL.inc19
-rw-r--r--plugins/userinfo/localization/gl_ES.inc22
-rw-r--r--plugins/userinfo/localization/he_IL.inc22
-rw-r--r--plugins/userinfo/localization/hr_HR.inc22
-rw-r--r--plugins/userinfo/localization/hu_HU.inc22
-rw-r--r--plugins/userinfo/localization/hy_AM.inc22
-rw-r--r--plugins/userinfo/localization/ia.inc22
-rw-r--r--plugins/userinfo/localization/id_ID.inc22
-rw-r--r--plugins/userinfo/localization/it_IT.inc22
-rw-r--r--plugins/userinfo/localization/ja_JP.inc22
-rw-r--r--plugins/userinfo/localization/km_KH.inc22
-rw-r--r--plugins/userinfo/localization/ko_KR.inc22
-rw-r--r--plugins/userinfo/localization/ku.inc22
-rw-r--r--plugins/userinfo/localization/ku_IQ.inc22
-rw-r--r--plugins/userinfo/localization/lb_LU.inc22
-rw-r--r--plugins/userinfo/localization/lt_LT.inc22
-rw-r--r--plugins/userinfo/localization/lv_LV.inc22
-rw-r--r--plugins/userinfo/localization/ml_IN.inc22
-rw-r--r--plugins/userinfo/localization/mr_IN.inc20
-rw-r--r--plugins/userinfo/localization/nb_NO.inc22
-rw-r--r--plugins/userinfo/localization/nl_NL.inc22
-rw-r--r--plugins/userinfo/localization/nn_NO.inc22
-rw-r--r--plugins/userinfo/localization/pl_PL.inc22
-rw-r--r--plugins/userinfo/localization/pt_BR.inc22
-rw-r--r--plugins/userinfo/localization/pt_PT.inc22
-rw-r--r--plugins/userinfo/localization/ro_RO.inc22
-rw-r--r--plugins/userinfo/localization/ru_RU.inc22
-rw-r--r--plugins/userinfo/localization/sk_SK.inc22
-rw-r--r--plugins/userinfo/localization/sl_SI.inc22
-rw-r--r--plugins/userinfo/localization/sq_AL.inc21
-rw-r--r--plugins/userinfo/localization/sr_CS.inc22
-rw-r--r--plugins/userinfo/localization/sv_SE.inc22
-rw-r--r--plugins/userinfo/localization/ti.inc22
-rw-r--r--plugins/userinfo/localization/tr_TR.inc22
-rw-r--r--plugins/userinfo/localization/uk_UA.inc22
-rw-r--r--plugins/userinfo/localization/vi_VN.inc22
-rw-r--r--plugins/userinfo/localization/zh_CN.inc22
-rw-r--r--plugins/userinfo/localization/zh_TW.inc22
-rw-r--r--plugins/userinfo/tests/Userinfo.php23
-rw-r--r--plugins/userinfo/userinfo.js16
-rw-r--r--plugins/userinfo/userinfo.php55
-rw-r--r--plugins/vcard_attachments/composer.json29
-rw-r--r--plugins/vcard_attachments/localization/ar.inc20
-rw-r--r--plugins/vcard_attachments/localization/ar_SA.inc20
-rw-r--r--plugins/vcard_attachments/localization/ast.inc20
-rw-r--r--plugins/vcard_attachments/localization/az_AZ.inc20
-rw-r--r--plugins/vcard_attachments/localization/be_BE.inc20
-rw-r--r--plugins/vcard_attachments/localization/bg_BG.inc20
-rw-r--r--plugins/vcard_attachments/localization/br.inc20
-rw-r--r--plugins/vcard_attachments/localization/bs_BA.inc20
-rw-r--r--plugins/vcard_attachments/localization/ca_ES.inc20
-rw-r--r--plugins/vcard_attachments/localization/cs_CZ.inc20
-rw-r--r--plugins/vcard_attachments/localization/cy_GB.inc20
-rw-r--r--plugins/vcard_attachments/localization/da_DK.inc20
-rw-r--r--plugins/vcard_attachments/localization/de_CH.inc20
-rw-r--r--plugins/vcard_attachments/localization/de_DE.inc20
-rw-r--r--plugins/vcard_attachments/localization/el_GR.inc20
-rw-r--r--plugins/vcard_attachments/localization/en_CA.inc20
-rw-r--r--plugins/vcard_attachments/localization/en_GB.inc20
-rw-r--r--plugins/vcard_attachments/localization/en_US.inc23
-rw-r--r--plugins/vcard_attachments/localization/eo.inc20
-rw-r--r--plugins/vcard_attachments/localization/es_419.inc20
-rw-r--r--plugins/vcard_attachments/localization/es_AR.inc20
-rw-r--r--plugins/vcard_attachments/localization/es_ES.inc20
-rw-r--r--plugins/vcard_attachments/localization/et_EE.inc20
-rw-r--r--plugins/vcard_attachments/localization/eu_ES.inc20
-rw-r--r--plugins/vcard_attachments/localization/fa_IR.inc20
-rw-r--r--plugins/vcard_attachments/localization/fi_FI.inc20
-rw-r--r--plugins/vcard_attachments/localization/fo_FO.inc20
-rw-r--r--plugins/vcard_attachments/localization/fr_FR.inc20
-rw-r--r--plugins/vcard_attachments/localization/gl_ES.inc20
-rw-r--r--plugins/vcard_attachments/localization/he_IL.inc20
-rw-r--r--plugins/vcard_attachments/localization/hr_HR.inc20
-rw-r--r--plugins/vcard_attachments/localization/hu_HU.inc20
-rw-r--r--plugins/vcard_attachments/localization/hy_AM.inc20
-rw-r--r--plugins/vcard_attachments/localization/ia.inc20
-rw-r--r--plugins/vcard_attachments/localization/id_ID.inc20
-rw-r--r--plugins/vcard_attachments/localization/it_IT.inc20
-rw-r--r--plugins/vcard_attachments/localization/ja_JP.inc20
-rw-r--r--plugins/vcard_attachments/localization/km_KH.inc20
-rw-r--r--plugins/vcard_attachments/localization/ko_KR.inc20
-rw-r--r--plugins/vcard_attachments/localization/ku.inc20
-rw-r--r--plugins/vcard_attachments/localization/lb_LU.inc20
-rw-r--r--plugins/vcard_attachments/localization/lt_LT.inc20
-rw-r--r--plugins/vcard_attachments/localization/lv_LV.inc20
-rw-r--r--plugins/vcard_attachments/localization/ml_IN.inc20
-rw-r--r--plugins/vcard_attachments/localization/mr_IN.inc20
-rw-r--r--plugins/vcard_attachments/localization/nb_NO.inc20
-rw-r--r--plugins/vcard_attachments/localization/nl_NL.inc20
-rw-r--r--plugins/vcard_attachments/localization/nn_NO.inc20
-rw-r--r--plugins/vcard_attachments/localization/pl_PL.inc20
-rw-r--r--plugins/vcard_attachments/localization/pt_BR.inc20
-rw-r--r--plugins/vcard_attachments/localization/pt_PT.inc20
-rw-r--r--plugins/vcard_attachments/localization/ro_RO.inc20
-rw-r--r--plugins/vcard_attachments/localization/ru_RU.inc20
-rw-r--r--plugins/vcard_attachments/localization/si_LK.inc20
-rw-r--r--plugins/vcard_attachments/localization/sk_SK.inc20
-rw-r--r--plugins/vcard_attachments/localization/sl_SI.inc20
-rw-r--r--plugins/vcard_attachments/localization/sr_CS.inc20
-rw-r--r--plugins/vcard_attachments/localization/sv_SE.inc20
-rw-r--r--plugins/vcard_attachments/localization/tr_TR.inc20
-rw-r--r--plugins/vcard_attachments/localization/uk_UA.inc20
-rw-r--r--plugins/vcard_attachments/localization/vi_VN.inc20
-rw-r--r--plugins/vcard_attachments/localization/zh_CN.inc20
-rw-r--r--plugins/vcard_attachments/localization/zh_TW.inc20
-rw-r--r--plugins/vcard_attachments/skins/classic/style.css17
-rw-r--r--plugins/vcard_attachments/skins/classic/vcard.pngbin0 -> 493 bytes
-rw-r--r--plugins/vcard_attachments/skins/classic/vcard_add_contact.pngbin0 -> 1361 bytes
-rw-r--r--plugins/vcard_attachments/skins/larry/style.css16
-rw-r--r--plugins/vcard_attachments/skins/larry/vcard.pngbin0 -> 493 bytes
-rw-r--r--plugins/vcard_attachments/skins/larry/vcard_add_contact.pngbin0 -> 1859 bytes
-rw-r--r--plugins/vcard_attachments/tests/VcardAttachments.php23
-rw-r--r--plugins/vcard_attachments/vcard_attachments.php227
-rw-r--r--plugins/vcard_attachments/vcardattach.js38
-rw-r--r--plugins/virtuser_file/composer.json24
-rw-r--r--plugins/virtuser_file/tests/VirtuserFile.php23
-rw-r--r--plugins/virtuser_file/virtuser_file.php105
-rw-r--r--plugins/virtuser_query/composer.json24
-rw-r--r--plugins/virtuser_query/tests/VirtuserQuery.php23
-rw-r--r--plugins/virtuser_query/virtuser_query.php165
-rw-r--r--plugins/zipdownload/README34
-rw-r--r--plugins/zipdownload/composer.json30
-rw-r--r--plugins/zipdownload/config.inc.php.dist18
-rw-r--r--plugins/zipdownload/localization/ar.inc18
-rw-r--r--plugins/zipdownload/localization/ar_SA.inc18
-rw-r--r--plugins/zipdownload/localization/ast.inc22
-rw-r--r--plugins/zipdownload/localization/az_AZ.inc18
-rw-r--r--plugins/zipdownload/localization/be_BE.inc22
-rw-r--r--plugins/zipdownload/localization/bg_BG.inc22
-rw-r--r--plugins/zipdownload/localization/br.inc22
-rw-r--r--plugins/zipdownload/localization/bs_BA.inc22
-rw-r--r--plugins/zipdownload/localization/ca_ES.inc22
-rw-r--r--plugins/zipdownload/localization/cs_CZ.inc22
-rw-r--r--plugins/zipdownload/localization/cy_GB.inc22
-rw-r--r--plugins/zipdownload/localization/da_DK.inc22
-rw-r--r--plugins/zipdownload/localization/de_CH.inc22
-rw-r--r--plugins/zipdownload/localization/de_DE.inc22
-rw-r--r--plugins/zipdownload/localization/el_GR.inc22
-rw-r--r--plugins/zipdownload/localization/en_CA.inc22
-rw-r--r--plugins/zipdownload/localization/en_GB.inc22
-rw-r--r--plugins/zipdownload/localization/en_US.inc24
-rw-r--r--plugins/zipdownload/localization/eo.inc18
-rw-r--r--plugins/zipdownload/localization/es_419.inc22
-rw-r--r--plugins/zipdownload/localization/es_AR.inc22
-rw-r--r--plugins/zipdownload/localization/es_ES.inc22
-rw-r--r--plugins/zipdownload/localization/et_EE.inc22
-rw-r--r--plugins/zipdownload/localization/eu_ES.inc22
-rw-r--r--plugins/zipdownload/localization/fa_AF.inc18
-rw-r--r--plugins/zipdownload/localization/fa_IR.inc22
-rw-r--r--plugins/zipdownload/localization/fi_FI.inc22
-rw-r--r--plugins/zipdownload/localization/fo_FO.inc18
-rw-r--r--plugins/zipdownload/localization/fr_FR.inc22
-rw-r--r--plugins/zipdownload/localization/fy_NL.inc18
-rw-r--r--plugins/zipdownload/localization/gl_ES.inc22
-rw-r--r--plugins/zipdownload/localization/he_IL.inc22
-rw-r--r--plugins/zipdownload/localization/hr_HR.inc18
-rw-r--r--plugins/zipdownload/localization/hu_HU.inc22
-rw-r--r--plugins/zipdownload/localization/hy_AM.inc18
-rw-r--r--plugins/zipdownload/localization/ia.inc22
-rw-r--r--plugins/zipdownload/localization/id_ID.inc18
-rw-r--r--plugins/zipdownload/localization/it_IT.inc22
-rw-r--r--plugins/zipdownload/localization/ja_JP.inc22
-rw-r--r--plugins/zipdownload/localization/km_KH.inc18
-rw-r--r--plugins/zipdownload/localization/ko_KR.inc22
-rw-r--r--plugins/zipdownload/localization/ku.inc22
-rw-r--r--plugins/zipdownload/localization/ku_IQ.inc22
-rw-r--r--plugins/zipdownload/localization/lb_LU.inc22
-rw-r--r--plugins/zipdownload/localization/lt_LT.inc22
-rw-r--r--plugins/zipdownload/localization/lv_LV.inc18
-rw-r--r--plugins/zipdownload/localization/ml_IN.inc22
-rw-r--r--plugins/zipdownload/localization/nb_NO.inc22
-rw-r--r--plugins/zipdownload/localization/nl_NL.inc22
-rw-r--r--plugins/zipdownload/localization/nn_NO.inc18
-rw-r--r--plugins/zipdownload/localization/pl_PL.inc22
-rw-r--r--plugins/zipdownload/localization/pt_BR.inc22
-rw-r--r--plugins/zipdownload/localization/pt_PT.inc22
-rw-r--r--plugins/zipdownload/localization/ro_RO.inc18
-rw-r--r--plugins/zipdownload/localization/ru_RU.inc22
-rw-r--r--plugins/zipdownload/localization/sk_SK.inc22
-rw-r--r--plugins/zipdownload/localization/sl_SI.inc18
-rw-r--r--plugins/zipdownload/localization/sr_CS.inc18
-rw-r--r--plugins/zipdownload/localization/sv_SE.inc22
-rw-r--r--plugins/zipdownload/localization/tr_TR.inc22
-rw-r--r--plugins/zipdownload/localization/uk_UA.inc18
-rw-r--r--plugins/zipdownload/localization/vi_VN.inc22
-rw-r--r--plugins/zipdownload/localization/zh_CN.inc18
-rw-r--r--plugins/zipdownload/localization/zh_TW.inc22
-rw-r--r--plugins/zipdownload/skins/classic/zip.pngbin0 -> 546 bytes
-rw-r--r--plugins/zipdownload/skins/classic/zipdownload.css8
-rw-r--r--plugins/zipdownload/skins/larry/zipdownload.css7
-rw-r--r--plugins/zipdownload/tests/Zipdownload.php23
-rw-r--r--plugins/zipdownload/zipdownload.js99
-rw-r--r--plugins/zipdownload/zipdownload.php339
-rw-r--r--program/include/iniset.php11
-rw-r--r--program/include/rcmail.php17
-rw-r--r--program/include/rcmail_install.php8
-rw-r--r--program/include/rcmail_output_html.php2
-rw-r--r--program/include/rcmail_utils.php362
-rw-r--r--program/js/app.js238
-rw-r--r--program/js/common.js43
-rw-r--r--program/js/editor.js130
-rw-r--r--program/js/list.js9
-rw-r--r--program/js/tinymce/plugins/autoresize/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/charmap/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/fullscreen/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/image/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/legacyoutput/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/link/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/lists/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/media/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/noneditable/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/paste/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/print/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/save/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/searchreplace/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/table/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/textcolor/plugin.min.js2
-rw-r--r--program/js/tinymce/plugins/visualchars/plugin.min.js2
-rw-r--r--program/js/tinymce/skins/lightgray/content.inline.min.css2
-rw-r--r--program/js/tinymce/skins/lightgray/content.min.css2
-rw-r--r--program/js/tinymce/skins/lightgray/fonts/tinymce-small.eotbin10316 -> 9112 bytes
-rw-r--r--program/js/tinymce/skins/lightgray/fonts/tinymce-small.svg112
-rw-r--r--program/js/tinymce/skins/lightgray/fonts/tinymce-small.ttfbin10128 -> 8924 bytes
-rw-r--r--program/js/tinymce/skins/lightgray/fonts/tinymce-small.woffbin7848 -> 9000 bytes
-rw-r--r--program/js/tinymce/skins/lightgray/fonts/tinymce.eotbin10024 -> 9000 bytes
-rw-r--r--program/js/tinymce/skins/lightgray/fonts/tinymce.svg114
-rw-r--r--program/js/tinymce/skins/lightgray/fonts/tinymce.ttfbin9860 -> 8836 bytes
-rw-r--r--program/js/tinymce/skins/lightgray/fonts/tinymce.woffbin7664 -> 8912 bytes
-rw-r--r--program/js/tinymce/tinymce.min.js22
-rw-r--r--program/js/treelist.js8
-rw-r--r--program/lib/Roundcube/bootstrap.php8
-rw-r--r--program/lib/Roundcube/rcube.php27
-rw-r--r--program/lib/Roundcube/rcube_addressbook.php28
-rw-r--r--program/lib/Roundcube/rcube_cache.php6
-rw-r--r--program/lib/Roundcube/rcube_cache_shared.php6
-rw-r--r--program/lib/Roundcube/rcube_config.php1
-rw-r--r--program/lib/Roundcube/rcube_contacts.php156
-rw-r--r--program/lib/Roundcube/rcube_db.php25
-rw-r--r--program/lib/Roundcube/rcube_db_mysql.php30
-rw-r--r--program/lib/Roundcube/rcube_db_oracle.php9
-rw-r--r--program/lib/Roundcube/rcube_db_pgsql.php23
-rw-r--r--program/lib/Roundcube/rcube_html2text.php2
-rw-r--r--program/lib/Roundcube/rcube_imap.php26
-rw-r--r--program/lib/Roundcube/rcube_imap_generic.php11
-rw-r--r--program/lib/Roundcube/rcube_ldap.php67
-rw-r--r--program/lib/Roundcube/rcube_ldap_generic.php43
-rw-r--r--program/lib/Roundcube/rcube_message.php54
-rw-r--r--program/lib/Roundcube/rcube_message_header.php2
-rw-r--r--program/lib/Roundcube/rcube_plugin_api.php91
-rw-r--r--program/lib/Roundcube/rcube_session.php403
-rw-r--r--program/lib/Roundcube/rcube_session_db.php175
-rw-r--r--program/lib/Roundcube/rcube_session_memcache.php144
-rw-r--r--program/lib/Roundcube/rcube_session_php.php77
-rw-r--r--program/lib/Roundcube/rcube_session_redis.php211
-rw-r--r--program/lib/Roundcube/rcube_smtp.php15
-rw-r--r--program/lib/Roundcube/rcube_storage.php12
-rw-r--r--program/lib/Roundcube/rcube_text2html.php27
-rw-r--r--program/lib/Roundcube/rcube_user.php28
-rw-r--r--program/lib/Roundcube/rcube_utils.php24
-rw-r--r--program/lib/Roundcube/rcube_vcard.php4
-rw-r--r--program/lib/Roundcube/rcube_washtml.php15
-rw-r--r--program/localization/en_US/labels.inc1
-rw-r--r--program/localization/en_US/messages.inc10
-rw-r--r--program/steps/addressbook/export.inc25
-rw-r--r--program/steps/mail/autocomplete.inc54
-rw-r--r--program/steps/mail/compose.inc22
-rw-r--r--program/steps/mail/func.inc26
-rw-r--r--program/steps/mail/get.inc6
-rw-r--r--program/steps/mail/list.inc14
-rw-r--r--program/steps/mail/search.inc6
-rw-r--r--program/steps/mail/sendmail.inc75
-rw-r--r--program/steps/mail/show.inc6
-rw-r--r--program/steps/settings/folders.inc2
-rw-r--r--program/steps/settings/func.inc25
-rw-r--r--program/steps/settings/save_prefs.inc1
-rw-r--r--program/steps/utils/error.inc46
-rw-r--r--skins/classic/common.css12
-rw-r--r--skins/classic/functions.js6
-rw-r--r--skins/classic/includes/messagetoolbar.html16
-rw-r--r--skins/classic/settings.css6
-rw-r--r--skins/classic/templates/responses.html2
-rw-r--r--skins/larry/images/quota.pngbin2033 -> 4967 bytes
-rw-r--r--skins/larry/includes/mailtoolbar.html42
-rw-r--r--skins/larry/styles.css5
-rw-r--r--skins/larry/ui.js1
-rw-r--r--tests/Framework/DB.php108
-rw-r--r--tests/Framework/Html2text.php5
-rw-r--r--tests/Framework/Text2Html.php2
1417 files changed, 75853 insertions, 1247 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 25f7e19..0a24125 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,15 +1,66 @@
CHANGELOG Roundcube Webmail
===========================
+- Installer: Remove system() function use (#1490139)
+- Password plugin: Added 'kpasswd' driver by Peter Allgeyer
+- Add initdb.sh to create database from initial.sql script with prefix support (#1490188)
+- Plugin API: Added message_part_body hook
+- Plugin API: Added message_ready hook
- Plugin API: Add special onload() method to execute plugin actions before startup (session and GUI initialization)
+- Add option to place signature at bottom of the quoted text even in top-posting mode [sig_below]
+- Fix handling of %-encoded entities in mailto: URLs (#1490346)
+- Fix zipped messages downloads after selecting all messages in a folder (#1490339)
+- Fix vpopmaild driver of password plugin
+- Fix PHP warning: Non-static method PEAR::setErrorHandling() should not be called statically (#1490343)
+- Fix tables listing routine on mysql and postgres so it skips system or other database tables and views (#1490337)
+- Fix message list header in classic skin on window resize in Internet Explorer (#1490213)
+- Fix so text/calendar parts are listed as attachments even if not marked as such (#1490325)
+- Fix so unrecognized TNEF attachments are displayed on the list of attachments (#1490351)
+- Fix lack of signature separator for plain text signatures in html mode (#1490352)
+- Fix font artifact in Google Chrome on Windows (#1490353)
+- Fix bug where forced extwin page reload could exit from the extwin mode (#1490350)
+- Fix bug where some unrelated attachments in multipart/related message were not listed (#1490355)
+- Fix mouseup event handling when dragging a list record (#1490359)
+- Fix bug where preview_pane setting wasn't always saved into user preferences (#1490362)
+
+RELEASE 1.1.1
+-------------
+- ACL: Allow other plugins to adjust the list of permissions and groups to edit
- Add possibility to print contact information (of a single contact)
+- Add possibility to configure max_allowed_packet value for all database engines (#1490283)
+- Improved handling of storage errors after message is sent
+- Update to TinyMCE 4.1.9
+- Unified request* event arguments handling, added support for _unlock and _action parameters
+- Security: Generate random hash for the per-user local storage prefix (#1490279)
- Fix refreshing of drafts list when sending a message which was saved in meantime (#1490238)
- Fix saving/sending emoticon images when assets_dir is set
-- Fix PHP fatal error when visiting Vacation interface and there's no sieve script yet
+- Fix PHP fatal error when visiting Vacation interface and there's no sieve script yet (#1490292)
- Fix setting max packet size for DB caches and check packet size also in shared cache
- Fix needless security warning on BMP attachments display (#1490282)
- Fix handling of some improper constructs in format=flowed text as per the RFC3676[4.5] (#1490284)
- Fix performance of rcube_db_mysql::get_variable()
+- Fix missing or not up-to-date CATEGORIES entry in vCard export (#1490277)
+- Fix fatal errors on systems without mbstring extension or mb_regex_encoding() function (#1490280)
+- Fix cursor position on reply below the quote in HTML mode (#1490263)
+- Fix so "over quota" errors are displayed also in message compose page
+- Fix duplicate entries supression in autocomplete result (#1490290)
+- Fix "Non-static method PEAR::isError() should not be called statically" errors (#1490281)
+- Fix parsing invalid HTML messages with BOM after <!DOCTYPE> (#1490291)
+- Fix duplicate entry on timezones list in rcube_config::timezone_name_from_abbr() (#1490293)
+- Fix so localized folder name is displayed in multi-folder search result (#1490243)
+- Fix javascript error after creating a folder which is a subfolder of another one (#1490297)
+- Fix bug where subject of sent/saved message was removed if mbstring wasn't installed (#1490295)
+- Fix missing vcard_attachment icon on messages list (#1490303)
+- Fix storing signatures with big images in MySQL database (#1490306)
+- Fix Opera browser detection in javascript (#1490307)
+- Fix so search filter, scope and fields are reset on folder change
+- Fix rows count when messages search fails (#1490266)
+- Fix bug where spellchecking in HTML editor do not work after switching editor type more than once (#1490311)
+- Fix bug where TinyMCE area height was too small on slow network connection (#1490310)
+- Fix backtick character handling in sql queries (#1490312)
+- Fix redirect URL for attachments loaded in an iframe when behind a proxy (#1490191)
+- Fix menu container references to point to the actual <ul> element (#1490313)
+- Fix javascripts errors in IE8 - lack of Event.which, focusing a hidden element (#1490318)
RELEASE 1.1.0
-------------
diff --git a/SQL/mssql.initial.sql b/SQL/mssql.initial.sql
index b45db10..8002170 100644
--- a/SQL/mssql.initial.sql
+++ b/SQL/mssql.initial.sql
@@ -393,6 +393,6 @@ CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
GO
-INSERT INTO [dbo].[system] ([name], [value]) VALUES ('roundcube-version', '2014042900')
+INSERT INTO [dbo].[system] ([name], [value]) VALUES ('roundcube-version', '2015030800')
GO
\ No newline at end of file
diff --git a/SQL/mssql/2015030800.sql b/SQL/mssql/2015030800.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/SQL/mssql/2015030800.sql
@@ -0,0 +1 @@
+-- empty \ No newline at end of file
diff --git a/SQL/mysql.initial.sql b/SQL/mysql.initial.sql
index f174dc5..721c839 100644
--- a/SQL/mysql.initial.sql
+++ b/SQL/mysql.initial.sql
@@ -162,7 +162,7 @@ CREATE TABLE `identities` (
`email` varchar(128) NOT NULL,
`reply-to` varchar(128) NOT NULL DEFAULT '',
`bcc` varchar(128) NOT NULL DEFAULT '',
- `signature` text,
+ `signature` longtext,
`html_signature` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY(`identity_id`),
CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
@@ -209,4 +209,4 @@ CREATE TABLE `system` (
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
-INSERT INTO system (name, value) VALUES ('roundcube-version', '2014042900');
+INSERT INTO system (name, value) VALUES ('roundcube-version', '2015030800');
diff --git a/SQL/mysql/2015030800.sql b/SQL/mysql/2015030800.sql
new file mode 100644
index 0000000..5ff6f14
--- /dev/null
+++ b/SQL/mysql/2015030800.sql
@@ -0,0 +1 @@
+ALTER TABLE `identities` CHANGE `signature` `signature` longtext;
diff --git a/SQL/oracle.initial.sql b/SQL/oracle.initial.sql
index d32cc92..0110abf 100644
--- a/SQL/oracle.initial.sql
+++ b/SQL/oracle.initial.sql
@@ -218,4 +218,4 @@ CREATE TABLE "system" (
"value" long
);
-INSERT INTO "system" ("name", "value") VALUES ('roundcube-version', '2014042900');
+INSERT INTO "system" ("name", "value") VALUES ('roundcube-version', '2015030800');
diff --git a/SQL/oracle/2015030800.sql b/SQL/oracle/2015030800.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/SQL/oracle/2015030800.sql
@@ -0,0 +1 @@
+-- empty \ No newline at end of file
diff --git a/SQL/postgres.initial.sql b/SQL/postgres.initial.sql
index 238c3a6..ba53112 100644
--- a/SQL/postgres.initial.sql
+++ b/SQL/postgres.initial.sql
@@ -290,4 +290,4 @@ CREATE TABLE "system" (
value text
);
-INSERT INTO system (name, value) VALUES ('roundcube-version', '2014042900');
+INSERT INTO system (name, value) VALUES ('roundcube-version', '2015030800');
diff --git a/SQL/postgres/2015030800.sql b/SQL/postgres/2015030800.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/SQL/postgres/2015030800.sql
@@ -0,0 +1 @@
+-- empty \ No newline at end of file
diff --git a/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql
index 897e3af..a7426c1 100644
--- a/SQL/sqlite.initial.sql
+++ b/SQL/sqlite.initial.sql
@@ -201,4 +201,4 @@ CREATE TABLE system (
value text NOT NULL
);
-INSERT INTO system (name, value) VALUES ('roundcube-version', '2014042900');
+INSERT INTO system (name, value) VALUES ('roundcube-version', '2015030800');
diff --git a/SQL/sqlite/2015030800.sql b/SQL/sqlite/2015030800.sql
new file mode 100644
index 0000000..fe6741a
--- /dev/null
+++ b/SQL/sqlite/2015030800.sql
@@ -0,0 +1 @@
+-- empty \ No newline at end of file
diff --git a/UPGRADING b/UPGRADING
index 358e266..fe0ad4d 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -41,15 +41,22 @@ it on a unix system, you need to do the following operations by hand:
./skins/
./plugins/
./vendor/
-4. Run `./bin/update.sh` from the commandline OR
+4a. If you previously installed plugins through composer, update dependencies
+ by running `php composer.phar update --no-dev`
+4b. Install/update dependencies using composer:
+ - get composer from https://getcomposer.org/download/
+ - rename the composer.json-dist file into composer.json
+ - if you want to use LDAP address books, enable the LDAP libraries in your
+ composer.json file by moving the items from "suggest" to the "require"
+ section (remove the explanation texts after the version!).
+ - run `php composer.phar install --no-dev`
+5. Run `./bin/update.sh` from the commandline OR
open http://url-to-roundcube/installer/ in a browser and choose "3 Test config".
To enable the latter one, you have to temporary set 'enable_installer'
to true in your local config/config.inc.php file.
WARNING: See SQLite database upgrade below.
-5. Let the update script/installer check your configuration and
+6. Let the update script/installer check your configuration and
update your config files and database schema as suggested by the updater.
-5. If you previously installed plugins through composer, update dependencies
- by running `php composer.phar update --no-dev`
7. Make sure 'enable_installer' is set to false again.
8. See Post-Upgrade Activities section.
diff --git a/bin/cleandb.sh b/bin/cleandb.sh
index d811c8d..0bf71ea 100755
--- a/bin/cleandb.sh
+++ b/bin/cleandb.sh
@@ -5,7 +5,7 @@
| bin/cleandb.sh |
| |
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2010, The Roundcube Dev Team |
+ | Copyright (C) 2010-2015, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -23,56 +23,11 @@ define('INSTALL_PATH', realpath(__DIR__ . '/..') . '/' );
require INSTALL_PATH.'program/include/clisetup.php';
-// mapping for table name => primary key
-$primary_keys = array(
- 'contacts' => "contact_id",
- 'contactgroups' => "contactgroup_id",
-);
-
-// connect to DB
-$RCMAIL = rcube::get_instance();
-$db = $RCMAIL->get_dbh();
-$db->db_connect('w');
-
-if (!$db->is_connected() || $db->is_error()) {
- rcube::raise_error("No DB connection", false, true);
-}
-
if (!empty($_SERVER['argv'][1]))
$days = intval($_SERVER['argv'][1]);
else
$days = 7;
-// remove all deleted records older than two days
-$threshold = date('Y-m-d 00:00:00', time() - $days * 86400);
-
-foreach (array('contacts','contactgroups','identities') as $table) {
-
- $sqltable = $db->table_name($table, true);
-
- // also delete linked records
- // could be skipped for databases which respect foreign key constraints
- if ($db->db_provider == 'sqlite'
- && ($table == 'contacts' || $table == 'contactgroups')
- ) {
- $pk = $primary_keys[$table];
- $memberstable = $db->table_name('contactgroupmembers');
-
- $db->query(
- "DELETE FROM " . $db->quote_identifier($memberstable).
- " WHERE `$pk` IN (".
- "SELECT `$pk` FROM $sqltable".
- " WHERE `del` = 1 AND `changed` < ?".
- ")",
- $threshold);
-
- echo $db->affected_rows() . " records deleted from '$memberstable'\n";
- }
-
- // delete outdated records
- $db->query("DELETE FROM $sqltable WHERE `del` = 1 AND `changed` < ?", $threshold);
-
- echo $db->affected_rows() . " records deleted from '$table'\n";
-}
+rcmail_utils::db_clean($days);
?>
diff --git a/bin/indexcontacts.sh b/bin/indexcontacts.sh
index 2844742..760e537 100755
--- a/bin/indexcontacts.sh
+++ b/bin/indexcontacts.sh
@@ -24,31 +24,6 @@ define('INSTALL_PATH', realpath(__DIR__ . '/..') . '/' );
require_once INSTALL_PATH.'program/include/clisetup.php';
ini_set('memory_limit', -1);
-// connect to DB
-$RCMAIL = rcube::get_instance();
-
-$db = $RCMAIL->get_dbh();
-$db->db_connect('w');
-
-if (!$db->is_connected() || $db->is_error()) {
- rcube::raise_error("No DB connection", false, true);
-}
-
-// iterate over all users
-$sql_result = $db->query("SELECT `user_id` FROM " . $db->table_name('users', true) . " ORDER BY `user_id`");
-while ($sql_result && ($sql_arr = $db->fetch_assoc($sql_result))) {
- echo "Indexing contacts for user " . $sql_arr['user_id'] . "...";
-
- $contacts = new rcube_contacts($db, $sql_arr['user_id']);
- $contacts->set_pagesize(9999);
-
- $result = $contacts->list_records();
- while ($result->count && ($row = $result->next())) {
- unset($row['words']);
- $contacts->update($row['ID'], $row);
- }
-
- echo "done.\n";
-}
+rcmail_utils::indexcontacts();
?>
diff --git a/bin/initdb.sh b/bin/initdb.sh
new file mode 100755
index 0000000..fd22007
--- /dev/null
+++ b/bin/initdb.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env php
+<?php
+/*
+ +-----------------------------------------------------------------------+
+ | bin/initdb.sh |
+ | |
+ | This file is part of the Roundcube Webmail client |
+ | Copyright (C) 2010-2015, The Roundcube Dev Team |
+ | Copyright (C) 2010-2015, 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. |
+ | |
+ | PURPOSE: |
+ | Create database schema |
+ +-----------------------------------------------------------------------+
+ | Author: Aleksander Machniak <alec@alec.pl> |
+ +-----------------------------------------------------------------------+
+*/
+
+define('INSTALL_PATH', realpath(__DIR__ . '/..') . '/' );
+
+require_once INSTALL_PATH . 'program/include/clisetup.php';
+
+// get arguments
+$opts = rcube_utils::get_opt(array(
+ 'd' => 'dir',
+));
+
+if (empty($opts['dir'])) {
+ rcube::raise_error("Database schema directory not specified (--dir).", false, true);
+}
+
+// Check if directory exists
+if (!file_exists($opts['dir'])) {
+ rcube::raise_error("Specified database schema directory doesn't exist.", false, true);
+}
+
+rcmail_utils::db_init($opts['dir']);
+
+?>
diff --git a/bin/moduserprefs.sh b/bin/moduserprefs.sh
index 3d46baa..09f7398 100755
--- a/bin/moduserprefs.sh
+++ b/bin/moduserprefs.sh
@@ -5,7 +5,7 @@
| bin/moduserprefs.sh |
| |
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2012, The Roundcube Dev Team |
+ | Copyright (C) 2012-2015, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -46,37 +46,6 @@ else if (empty($args[0]) || (!isset($args[1]) && !$args['delete'])) {
$pref_name = trim($args[0]);
$pref_value = $args['delete'] ? null : trim($args[1]);
-// connect to DB
-$rcmail = rcube::get_instance();
-
-$db = $rcmail->get_dbh();
-$db->db_connect('w');
-
-if (!$db->is_connected() || $db->is_error())
- die("No DB connection\n" . $db->is_error());
-
-$query = '1=1';
-
-if ($args['user'])
- $query = '`user_id` = ' . intval($args['user']);
-
-// iterate over all users
-$sql_result = $db->query("SELECT * FROM " . $db->table_name('users', true) . " WHERE $query");
-while ($sql_result && ($sql_arr = $db->fetch_assoc($sql_result))) {
- echo "Updating prefs for user " . $sql_arr['user_id'] . "...";
-
- $user = new rcube_user($sql_arr['user_id'], $sql_arr);
- $prefs = $old_prefs = $user->get_prefs();
-
- $prefs[$pref_name] = $pref_value;
-
- if ($prefs != $old_prefs) {
- $user->save_prefs($prefs);
- echo "saved.\n";
- }
- else {
- echo "nothing changed.\n";
- }
-}
+rcmail_utils::mod_pref($pref_name, $pref_value, $args['user']);
?>
diff --git a/bin/update.sh b/bin/update.sh
index 1dfaa96..bfb2148 100755
--- a/bin/update.sh
+++ b/bin/update.sh
@@ -156,10 +156,8 @@ if ($RCI->configured) {
// check database schema
if ($RCI->config['db_dsnw']) {
echo "Executing database schema update.\n";
- system("php " . INSTALL_PATH . "bin/updatedb.sh --package=roundcube --version=" . $opts['version']
- . " --dir=" . INSTALL_PATH . "SQL", $res);
-
- $success = !$res;
+ $success = rcmail_utils::db_update(INSTALL_PATH . 'SQL', 'roundcube', $opts['version'],
+ array('errors' => true));
}
// update composer dependencies
@@ -239,7 +237,7 @@ if ($RCI->configured) {
// index contacts for fulltext searching
if ($opts['version'] && version_compare(version_parse($opts['version']), '0.6.0', '<')) {
- system("php " . INSTALL_PATH . 'bin/indexcontacts.sh');
+ rcmail_utils::indexcontacts();
}
if ($success) {
diff --git a/bin/updatedb.sh b/bin/updatedb.sh
index ffeac0b..7e4f0f5 100755
--- a/bin/updatedb.sh
+++ b/bin/updatedb.sh
@@ -37,142 +37,6 @@ if (empty($opts['package'])) {
rcube::raise_error("Database schema package name not specified (--package).", false, true);
}
-// Check if directory exists
-if (!file_exists($opts['dir'])) {
- rcube::raise_error("Specified database schema directory doesn't exist.", false, true);
-}
-
-$RC = rcube::get_instance();
-$DB = rcube_db::factory($RC->config->get('db_dsnw'));
-
-$DB->set_debug((bool)$RC->config->get('sql_debug'));
-
-// Connect to database
-$DB->db_connect('w');
-if (!$DB->is_connected()) {
- rcube::raise_error("Error connecting to database: " . $DB->is_error(), false, true);
-}
-
-// Read DB schema version from database (if 'system' table exists)
-if (in_array($DB->table_name('system'), (array)$DB->list_tables())) {
- $DB->query("SELECT `value`"
- ." FROM " . $DB->table_name('system', true)
- ." WHERE `name` = ?",
- $opts['package'] . '-version');
-
- $row = $DB->fetch_array();
- $version = preg_replace('/[^0-9]/', '', $row[0]);
-}
-
-// DB version not found, but release version is specified
-if (!$version && $opts['version']) {
- // Map old release version string to DB schema version
- // Note: This is for backward compat. only, do not need to be updated
- $map = array(
- '0.1-stable' => 1,
- '0.1.1' => 2008030300,
- '0.2-alpha' => 2008040500,
- '0.2-beta' => 2008060900,
- '0.2-stable' => 2008092100,
- '0.2.1' => 2008092100,
- '0.2.2' => 2008092100,
- '0.3-stable' => 2008092100,
- '0.3.1' => 2009090400,
- '0.4-beta' => 2009103100,
- '0.4' => 2010042300,
- '0.4.1' => 2010042300,
- '0.4.2' => 2010042300,
- '0.5-beta' => 2010100600,
- '0.5' => 2010100600,
- '0.5.1' => 2010100600,
- '0.5.2' => 2010100600,
- '0.5.3' => 2010100600,
- '0.5.4' => 2010100600,
- '0.6-beta' => 2011011200,
- '0.6' => 2011011200,
- '0.7-beta' => 2011092800,
- '0.7' => 2011111600,
- '0.7.1' => 2011111600,
- '0.7.2' => 2011111600,
- '0.7.3' => 2011111600,
- '0.7.4' => 2011111600,
- '0.8-beta' => 2011121400,
- '0.8-rc' => 2011121400,
- '0.8.0' => 2011121400,
- '0.8.1' => 2011121400,
- '0.8.2' => 2011121400,
- '0.8.3' => 2011121400,
- '0.8.4' => 2011121400,
- '0.8.5' => 2011121400,
- '0.8.6' => 2011121400,
- '0.9-beta' => 2012080700,
- );
-
- $version = $map[$opts['version']];
-}
-
-// Assume last version before the 'system' table was added
-if (empty($version)) {
- $version = 2012080700;
-}
-
-$dir = $opts['dir'] . '/' . $DB->db_provider;
-if (!file_exists($dir)) {
- rcube::raise_error("DDL Upgrade files for " . $DB->db_provider . " driver not found.", false, true);
-}
-
-$dh = opendir($dir);
-$result = array();
-
-while ($file = readdir($dh)) {
- if (preg_match('/^([0-9]+)\.sql$/', $file, $m) && $m[1] > $version) {
- $result[] = $m[1];
- }
-}
-sort($result, SORT_NUMERIC);
-
-foreach ($result as $v) {
- echo "Updating database schema ($v)... ";
- $error = update_db_schema($opts['package'], $v, "$dir/$v.sql");
-
- if ($error) {
- echo "[FAILED]\n";
- rcube::raise_error("Error in DDL upgrade $v: $error", false, true);
- }
- echo "[OK]\n";
-}
-
-
-function update_db_schema($package, $version, $file)
-{
- global $DB;
-
- // read DDL file
- if ($sql = file_get_contents($file)) {
- if (!$DB->exec_script($sql)) {
- return $DB->is_error();
- }
- }
-
- // escape if 'system' table does not exist
- if ($version < 2013011000) {
- return;
- }
-
- $system_table = $DB->table_name('system', true);
-
- $DB->query("UPDATE " . $system_table
- ." SET `value` = ?"
- ." WHERE `name` = ?",
- $version, $package . '-version');
-
- if (!$DB->is_error() && !$DB->affected_rows()) {
- $DB->query("INSERT INTO " . $system_table
- ." (`name`, `value`) VALUES (?, ?)",
- $package . '-version', $version);
- }
-
- return $DB->is_error();
-}
+rcmail_utils::db_update($opts['dir'], $opts['package'], $opts['version'], array('errors' => true));
?>
diff --git a/composer.json-dist b/composer.json-dist
new file mode 100644
index 0000000..14cfa8d
--- /dev/null
+++ b/composer.json-dist
@@ -0,0 +1,51 @@
+{
+ "name": "roundcube/roundcubemail",
+ "description": "The Roundcube Webmail suite",
+ "license": "GPL-3.0+",
+ "repositories": [
+ {
+ "type": "pear",
+ "url": "http://pear.php.net/"
+ },
+ {
+ "type": "composer",
+ "url": "http://plugins.roundcube.net/"
+ },
+ {
+ "type": "vcs",
+ "url": "https://git.kolab.org/diffusion/PNL/php-net_ldap.git"
+ },
+ {
+ "type": "package",
+ "package": {
+ "name": "Net_SMTP",
+ "version": "dev-master",
+ "source": {
+ "url": "http://github.com/pear/Net_SMTP",
+ "type": "git",
+ "reference": "master"
+ }
+ }
+ }
+ ],
+ "require": {
+ "php": ">=5.3.7",
+ "roundcube/plugin-installer": ">=0.1.5",
+ "pear/mail_mime": ">=1.8.9",
+ "pear/mail_mime-decode": "~1.5.5",
+ "pear/net_smtp": "dev-master",
+ "pear-pear.php.net/auth_sasl": ">=1.0.6",
+ "pear-pear.php.net/net_idna2": ">=0.1.1",
+ "pear-pear.php.net/net_sieve": ">=1.3.2",
+ "patchwork/utf8": "1.2.x"
+ },
+ "require-dev": {
+ "pear-pear.php.net/crypt_gpg": "*",
+ "phpunit/phpunit": "*"
+ },
+ "suggest": {
+ "pear-pear.php.net/net_ldap2": ">=2.0.12 required for connecting to LDAP address books",
+ "kolab/Net_LDAP3": "dev-master required for connecting to LDAP address books"
+ },
+ "minimum-stability": "dev"
+}
diff --git a/config/defaults.inc.php b/config/defaults.inc.php
new file mode 100644
index 0000000..df8b612
--- /dev/null
+++ b/config/defaults.inc.php
@@ -0,0 +1,1160 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | Main configuration file with default settings |
+ | |
+ | This file is part 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. |
+ +-----------------------------------------------------------------------+
+*/
+
+$config = array();
+
+// ----------------------------------
+// SQL DATABASE
+// ----------------------------------
+
+// Database connection string (DSN) for read+write operations
+// Format (compatible with PEAR MDB2): db_provider://user:password@host/database
+// Currently supported db_providers: mysql, pgsql, sqlite, mssql or sqlsrv
+// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
+// NOTE: for SQLite use absolute path: 'sqlite:////full/path/to/sqlite.db?mode=0646'
+$config['db_dsnw'] = 'mysql://roundcube:@localhost/roundcubemail';
+
+// Database DSN for read-only operations (if empty write database will be used)
+// useful for database replication
+$config['db_dsnr'] = '';
+
+// Disable the use of already established dsnw connections for subsequent reads
+$config['db_dsnw_noread'] = false;
+
+// use persistent db-connections
+// beware this will not "always" work as expected
+// see: http://www.php.net/manual/en/features.persistent-connections.php
+$config['db_persistent'] = false;
+
+// you can define specific table (and sequence) names prefix
+$config['db_prefix'] = '';
+
+// Mapping of table names and connections to use for ALL operations.
+// This can be used in a setup with replicated databases and a DB master
+// where read/write access to cache tables should not go to master.
+$config['db_table_dsn'] = array(
+// 'cache' => 'r',
+// 'cache_index' => 'r',
+// 'cache_thread' => 'r',
+// 'cache_messages' => 'r',
+);
+
+// It is possible to specify database variable values e.g. some limits here.
+// Use them if your server is not MySQL or for better performance.
+// For example Roundcube uses max_allowed_packet value (in bytes)
+// which limits query size for database cache operations.
+$config['db_max_allowed_packet'] = null;
+
+
+// ----------------------------------
+// LOGGING/DEBUGGING
+// ----------------------------------
+
+// system error reporting, sum of: 1 = log; 4 = show
+$config['debug_level'] = 1;
+
+// log driver: 'syslog' or 'file'.
+$config['log_driver'] = 'file';
+
+// date format for log entries
+// (read http://php.net/manual/en/function.date.php for all format characters)
+$config['log_date_format'] = 'd-M-Y H:i:s O';
+
+// length of the session ID to prepend each log line with
+// set to 0 to avoid session IDs being logged.
+$config['log_session_id'] = 8;
+
+// Syslog ident string to use, if using the 'syslog' log driver.
+$config['syslog_id'] = 'roundcube';
+
+// Syslog facility to use, if using the 'syslog' log driver.
+// For possible values see installer or http://php.net/manual/en/function.openlog.php
+$config['syslog_facility'] = LOG_USER;
+
+// Activate this option if logs should be written to per-user directories.
+// Data will only be logged if a directry <log_dir>/<username>/ exists and is writable.
+$config['per_user_logging'] = false;
+
+// Log sent messages to <log_dir>/sendmail or to syslog
+$config['smtp_log'] = true;
+
+// Log successful/failed logins to <log_dir>/userlogins or to syslog
+$config['log_logins'] = false;
+
+// Log session authentication errors to <log_dir>/session or to syslog
+$config['log_session'] = false;
+
+// Log SQL queries to <log_dir>/sql or to syslog
+$config['sql_debug'] = false;
+
+// Log IMAP conversation to <log_dir>/imap or to syslog
+$config['imap_debug'] = false;
+
+// Log LDAP conversation to <log_dir>/ldap or to syslog
+$config['ldap_debug'] = false;
+
+// Log SMTP conversation to <log_dir>/smtp or to syslog
+$config['smtp_debug'] = false;
+
+// ----------------------------------
+// IMAP
+// ----------------------------------
+
+// The mail host chosen to perform the log-in.
+// Leave blank to show a textbox at login, give a list of hosts
+// to display a pulldown menu or set one host as string.
+// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
+// 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)
+// %s - domain name after the '@' from e-mail address provided at login screen
+// For example %n = mail.domain.tld, %t = domain.tld
+// WARNING: After hostname change update of mail_host column in users table is
+// required to match old user data records with the new host.
+$config['default_host'] = 'localhost';
+
+// TCP port used for IMAP connections
+$config['default_port'] = 143;
+
+// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use
+// best server supported one)
+$config['imap_auth_type'] = null;
+
+// IMAP socket context options
+// See http://php.net/manual/en/context.ssl.php
+// The example below enables server certificate validation
+//$config['imap_conn_options'] = array(
+// 'ssl' => array(
+// 'verify_peer' => true,
+// 'verify_depth' => 3,
+// 'cafile' => '/etc/openssl/certs/ca.crt',
+// ),
+// );
+$config['imap_conn_options'] = null;
+
+// IMAP connection timeout, in seconds. Default: 0 (use default_socket_timeout)
+$config['imap_timeout'] = 0;
+
+// Optional IMAP authentication identifier to be used as authorization proxy
+$config['imap_auth_cid'] = null;
+
+// Optional IMAP authentication password to be used for imap_auth_cid
+$config['imap_auth_pw'] = null;
+
+// If you know your imap's folder delimiter, you can specify it here.
+// Otherwise it will be determined automatically
+$config['imap_delimiter'] = null;
+
+// If IMAP server doesn't support NAMESPACE extension, but you're
+// using shared folders or personal root folder is non-empty, you'll need to
+// set these options. All can be strings or arrays of strings.
+// Folders need to be ended with directory separator, e.g. "INBOX."
+// (special directory "~" is an exception to this rule)
+// These can be used also to overwrite server's namespaces
+$config['imap_ns_personal'] = null;
+$config['imap_ns_other'] = null;
+$config['imap_ns_shared'] = null;
+
+// By default IMAP capabilities are readed after connection to IMAP server
+// In some cases, e.g. when using IMAP proxy, there's a need to refresh the list
+// after login. Set to True if you've got this case.
+$config['imap_force_caps'] = false;
+
+// By default list of subscribed folders is determined using LIST-EXTENDED
+// extension if available. Some servers (dovecot 1.x) returns wrong results
+// for shared namespaces in this case. http://trac.roundcube.net/ticket/1486225
+// Enable this option to force LSUB command usage instead.
+// Deprecated: Use imap_disabled_caps = array('LIST-EXTENDED')
+$config['imap_force_lsub'] = false;
+
+// Some server configurations (e.g. Courier) doesn't list folders in all namespaces
+// Enable this option to force listing of folders in all namespaces
+$config['imap_force_ns'] = false;
+
+// List of disabled imap extensions.
+// Use if your IMAP server has broken implementation of some feature
+// and you can't remove it from CAPABILITY string on server-side.
+// For example UW-IMAP server has broken ESEARCH.
+// Note: Because the list is cached, re-login is required after change.
+$config['imap_disabled_caps'] = array();
+
+// Log IMAP session identifers after each IMAP login.
+// This is used to relate IMAP session with Roundcube user sessions
+$config['imap_log_session'] = false;
+
+// Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache'.
+$config['imap_cache'] = null;
+
+// Enables messages cache. Only 'db' cache is supported.
+// This requires an IMAP server that supports QRESYNC and CONDSTORE
+// extensions (RFC7162). See synchronize() in program/lib/Roundcube/rcube_imap_cache.php
+// for further info, or if you experience syncing problems.
+$config['messages_cache'] = false;
+
+// Lifetime of IMAP indexes cache. Possible units: s, m, h, d, w
+$config['imap_cache_ttl'] = '10d';
+
+// Lifetime of messages cache. Possible units: s, m, h, d, w
+$config['messages_cache_ttl'] = '10d';
+
+// Maximum cached message size in kilobytes.
+// Note: On MySQL this should be less than (max_allowed_packet - 30%)
+$config['messages_cache_threshold'] = 50;
+
+
+// ----------------------------------
+// SMTP
+// ----------------------------------
+
+// SMTP server host (for sending mails).
+// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
+// If left blank, the PHP mail() function is used
+// Supported replacement variables:
+// %h - user's IMAP hostname
+// %n - hostname ($_SERVER['SERVER_NAME'])
+// %t - hostname without the first part
+// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
+// %z - IMAP domain (IMAP hostname without the first part)
+// For example %n = mail.domain.tld, %t = domain.tld
+$config['smtp_server'] = '';
+
+// SMTP port (default is 25; use 587 for STARTTLS or 465 for the
+// deprecated SSL over SMTP (aka SMTPS))
+$config['smtp_port'] = 25;
+
+// SMTP username (if required) if you use %u as the username Roundcube
+// will use the current username for login
+$config['smtp_user'] = '';
+
+// SMTP password (if required) if you use %p as the password Roundcube
+// will use the current user's password for login
+$config['smtp_pass'] = '';
+
+// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use
+// best server supported one)
+$config['smtp_auth_type'] = '';
+
+// Optional SMTP authentication identifier to be used as authorization proxy
+$config['smtp_auth_cid'] = null;
+
+// Optional SMTP authentication password to be used for smtp_auth_cid
+$config['smtp_auth_pw'] = null;
+
+// SMTP HELO host
+// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages
+// Leave this blank and you will get the server variable 'server_name' or
+// localhost if that isn't defined.
+$config['smtp_helo_host'] = '';
+
+// SMTP connection timeout, in seconds. Default: 0 (use default_socket_timeout)
+// Note: There's a known issue where using ssl connection with
+// timeout > 0 causes connection errors (https://bugs.php.net/bug.php?id=54511)
+$config['smtp_timeout'] = 0;
+
+// SMTP socket context options
+// See http://php.net/manual/en/context.ssl.php
+// The example below enables server certificate validation, and
+// requires 'smtp_timeout' to be non zero.
+// $config['smtp_conn_options'] = array(
+// 'ssl' => array(
+// 'verify_peer' => true,
+// 'verify_depth' => 3,
+// 'cafile' => '/etc/openssl/certs/ca.crt',
+// ),
+// );
+$config['smtp_conn_options'] = null;
+
+
+// ----------------------------------
+// LDAP
+// ----------------------------------
+
+// Type of LDAP cache. Supported values: 'db', 'apc' and 'memcache'.
+$config['ldap_cache'] = 'db';
+
+// Lifetime of LDAP cache. Possible units: s, m, h, d, w
+$config['ldap_cache_ttl'] = '10m';
+
+// ----------------------------------
+// SYSTEM
+// ----------------------------------
+
+// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA.
+// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING!
+$config['enable_installer'] = false;
+
+// don't allow these settings to be overriden by the user
+$config['dont_override'] = array();
+
+// List of disabled UI elements/actions
+$config['disabled_actions'] = array();
+
+// define which settings should be listed under the 'advanced' block
+// which is hidden by default
+$config['advanced_prefs'] = array();
+
+// provide an URL where a user can get support for this Roundcube installation
+// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
+$config['support_url'] = '';
+
+// replace Roundcube logo with this image
+// specify an URL relative to the document root of this Roundcube installation
+// an array can be used to specify different logos for specific template files, '*' for default logo
+// for example array("*" => "/images/roundcube_logo.png", "messageprint" => "/images/roundcube_logo_print.png")
+$config['skin_logo'] = null;
+
+// automatically create a new Roundcube user when log-in the first time.
+// a new user will be created once the IMAP login succeeds.
+// set to false if only registered users can use this service
+$config['auto_create_user'] = true;
+
+// Enables possibility to log in using email address from user identities
+$config['user_aliases'] = false;
+
+// use this folder to store log files
+// must be writeable for the user who runs PHP process (Apache user if mod_php is being used)
+// This is used by the 'file' log driver.
+$config['log_dir'] = RCUBE_INSTALL_PATH . 'logs/';
+
+// use this folder to store temp files
+// must be writeable for the user who runs PHP process (Apache user if mod_php is being used)
+$config['temp_dir'] = RCUBE_INSTALL_PATH . 'temp/';
+
+// expire files in temp_dir after 48 hours
+// possible units: s, m, h, d, w
+$config['temp_dir_ttl'] = '48h';
+
+// enforce connections over https
+// with this option enabled, all non-secure connections will be redirected.
+// set the port for the ssl connection as value of this option if it differs from the default 443
+$config['force_https'] = false;
+
+// tell PHP that it should work as under secure connection
+// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set)
+// e.g. when you're running Roundcube behind a https proxy
+// this option is mutually exclusive to 'force_https' and only either one of them should be set to true.
+$config['use_https'] = false;
+
+// Allow browser-autocompletion on login form.
+// 0 - disabled, 1 - username and host only, 2 - username, host, password
+$config['login_autocomplete'] = 0;
+
+// Forces conversion of logins to lower case.
+// 0 - disabled, 1 - only domain part, 2 - domain and local part.
+// If users authentication is case-insensitive this must be enabled.
+// Note: After enabling it all user records need to be updated, e.g. with query:
+// UPDATE users SET username = LOWER(username);
+$config['login_lc'] = 2;
+
+// Includes should be interpreted as PHP files
+$config['skin_include_php'] = false;
+
+// display software version on login screen
+$config['display_version'] = false;
+
+// Session lifetime in minutes
+$config['session_lifetime'] = 10;
+
+// Session domain: .example.org
+$config['session_domain'] = '';
+
+// Session name. Default: 'roundcube_sessid'
+$config['session_name'] = null;
+
+// Session authentication cookie name. Default: 'roundcube_sessauth'
+$config['session_auth_name'] = null;
+
+// Session path. Defaults to PHP session.cookie_path setting.
+$config['session_path'] = null;
+
+// Backend to use for session storage. Can either be 'db' (default), 'redis', 'memcache', or 'php'
+//
+// If set to 'memcache', a list of servers need to be specified in 'memcache_hosts'
+// Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed
+//
+// If set to 'redis', a server needs to be specified in 'redis_hosts'
+// Make sure the Redis extension (http://pecl.php.net/package/redis) version >= 2.0.0 is installed
+//
+// Setting this value to 'php' will use the default session save handler configured in PHP
+$config['session_storage'] = 'db';
+
+// Use these hosts for accessing memcached
+// Define any number of hosts in the form of hostname:port or unix:///path/to/socket.file
+$config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' );
+
+// Controls the use of a persistent connections to memcache servers
+// See http://php.net/manual/en/memcache.addserver.php
+$config['memcache_pconnect'] = true;
+
+// Value in seconds which will be used for connecting to the daemon
+// See http://php.net/manual/en/memcache.addserver.php
+$config['memcache_timeout'] = 1;
+
+// Controls how often a failed server will be retried (value in seconds).
+// Setting this parameter to -1 disables automatic retry.
+// See http://php.net/manual/en/memcache.addserver.php
+$config['memcache_retry_interval'] = 15;
+
+// use this for accessing redis
+// currently only one host is supported. cluster support may come in a future release.
+// you can pass 4 fields, host, port, database and password.
+// unset fields will be set to the default values host=127.0.0.1, port=6379, database=0, password= (empty)
+
+$config['redis_hosts'] = null; // e.g. array( 'localhost:6379' ); array( '192.168.1.1:6379:1:secret' );
+
+// check client IP in session authorization
+$config['ip_check'] = false;
+
+// List of trusted proxies
+// X_FORWARDED_* and X_REAL_IP headers are only accepted from these IPs
+$config['proxy_whitelist'] = array();
+
+// check referer of incoming requests
+$config['referer_check'] = false;
+
+// X-Frame-Options HTTP header value sent to prevent from Clickjacking.
+// Possible values: sameorigin|deny. Set to false in order to disable sending them
+$config['x_frame_options'] = 'sameorigin';
+
+// this key is used to encrypt the users imap password which is stored
+// in the session record (and the client cookie if remember password is enabled).
+// please provide a string of exactly 24 chars.
+$config['des_key'] = 'rcmail-!24ByteDESkey*Str';
+
+// Automatically add this domain to user names for login
+// Only for IMAP servers that require full e-mail addresses for login
+// Specify an array with 'host' => 'domain' values to support multiple hosts
+// Supported replacement variables:
+// %h - user's IMAP hostname
+// %n - hostname ($_SERVER['SERVER_NAME'])
+// %t - hostname without the first part
+// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
+// %z - IMAP domain (IMAP hostname without the first part)
+// For example %n = mail.domain.tld, %t = domain.tld
+$config['username_domain'] = '';
+
+// Force domain configured in username_domain to be used for login.
+// Any domain in username will be replaced by username_domain.
+$config['username_domain_forced'] = false;
+
+// This domain will be used to form e-mail addresses of new users
+// Specify an array with 'host' => 'domain' values to support multiple hosts
+// Supported replacement variables:
+// %h - user's IMAP hostname
+// %n - http hostname ($_SERVER['SERVER_NAME'])
+// %d - domain (http hostname without the first part)
+// %z - IMAP domain (IMAP hostname without the first part)
+// For example %n = mail.domain.tld, %t = domain.tld
+$config['mail_domain'] = '';
+
+// Password charset.
+// Use it if your authentication backend doesn't support UTF-8.
+// Defaults to ISO-8859-1 for backward compatibility
+$config['password_charset'] = 'ISO-8859-1';
+
+// How many seconds must pass between emails sent by a user
+$config['sendmail_delay'] = 0;
+
+// Maximum number of recipients per message. Default: 0 (no limit)
+$config['max_recipients'] = 0;
+
+// Maximum allowednumber of members of an address group. Default: 0 (no limit)
+// If 'max_recipients' is set this value should be less or equal
+$config['max_group_members'] = 0;
+
+// Name your service. This is displayed on the login screen and in the window title
+$config['product_name'] = 'Roundcube Webmail';
+
+// Add this user-agent to message headers when sending
+$config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION;
+
+// try to load host-specific configuration
+// see http://trac.roundcube.net/wiki/Howto_Config for more details
+$config['include_host_config'] = false;
+
+// path to a text file which will be added to each sent message
+// paths are relative to the Roundcube root folder
+$config['generic_message_footer'] = '';
+
+// path to a text file which will be added to each sent HTML message
+// paths are relative to the Roundcube root folder
+$config['generic_message_footer_html'] = '';
+
+// add a received header to outgoing mails containing the creators IP and hostname
+$config['http_received_header'] = false;
+
+// Whether or not to encrypt the IP address and the host name
+// these could, in some circles, be considered as sensitive information;
+// however, for the administrator, these could be invaluable help
+// when tracking down issues.
+$config['http_received_header_encrypt'] = false;
+
+// This string is used as a delimiter for message headers when sending
+// a message via mail() function. Leave empty for auto-detection
+$config['mail_header_delimiter'] = NULL;
+
+// number of chars allowed for line when wrapping text.
+// text wrapping is done when composing/sending messages
+$config['line_length'] = 72;
+
+// send plaintext messages as format=flowed
+$config['send_format_flowed'] = true;
+
+// According to RFC2298, return receipt envelope sender address must be empty.
+// If this option is true, Roundcube will use user's identity as envelope sender for MDN responses.
+$config['mdn_use_from'] = false;
+
+// Set identities access level:
+// 0 - many identities with possibility to edit all params
+// 1 - many identities with possibility to edit all params but not email address
+// 2 - one identity with possibility to edit all params
+// 3 - one identity with possibility to edit all params but not email address
+// 4 - one identity with possibility to edit only signature
+$config['identities_level'] = 0;
+
+// Maximum size of uploaded image in kilobytes
+// Images (in html signatures) are stored in database as data URIs
+$config['identity_image_size'] = 64;
+
+// Mimetypes supported by the browser.
+// attachments of these types will open in a preview window
+// either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf'
+$config['client_mimetypes'] = null; # null == default
+
+// Path to a local mime magic database file for PHPs finfo extension.
+// Set to null if the default path should be used.
+$config['mime_magic'] = null;
+
+// Absolute path to a local mime.types mapping table file.
+// This is used to derive mime-types from the filename extension or vice versa.
+// Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system,
+// download it from http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
+$config['mime_types'] = null;
+
+// path to imagemagick identify binary (if not set we'll use Imagick or GD extensions)
+$config['im_identify_path'] = null;
+
+// path to imagemagick convert binary (if not set we'll use Imagick or GD extensions)
+$config['im_convert_path'] = null;
+
+// Size of thumbnails from image attachments displayed below the message content.
+// Note: whether images are displayed at all depends on the 'inline_images' option.
+// Set to 0 to display images in full size.
+$config['image_thumbnail_size'] = 240;
+
+// maximum size of uploaded contact photos in pixel
+$config['contact_photo_size'] = 160;
+
+// Enable DNS checking for e-mail address validation
+$config['email_dns_check'] = false;
+
+// Disables saving sent messages in Sent folder (like gmail) (Default: false)
+// Note: useful when SMTP server stores sent mail in user mailbox
+$config['no_save_sent_messages'] = false;
+
+// Improve system security by using special URL with security token.
+// This can be set to a number defining token length. Default: 16.
+// Warning: This requires http server configuration. Sample:
+// RewriteRule ^/roundcubemail/[a-f0-9]{16}/(.*) /roundcubemail/$1 [PT]
+// Alias /roundcubemail /var/www/roundcubemail/
+// Note: Use assets_path to not prevent the browser from caching assets
+$config['use_secure_urls'] = false;
+
+// Allows to define separate server/path for image/js/css files
+// Warning: If the domain is different cross-domain access to some
+// resources need to be allowed
+// Sample:
+// <FilesMatch ".(eot|ttf|woff)">
+// Header set Access-Control-Allow-Origin "*"
+// </FilesMatch>
+$config['assets_path'] = '';
+
+// While assets_path is for the browser, assets_dir informs
+// PHP code about the location of asset files in filesystem
+$config['assets_dir'] = '';
+
+
+// ----------------------------------
+// PLUGINS
+// ----------------------------------
+
+// List of active plugins (in plugins/ directory)
+$config['plugins'] = array();
+
+// ----------------------------------
+// USER INTERFACE
+// ----------------------------------
+
+// default messages sort column. Use empty value for default server's sorting,
+// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc'
+$config['message_sort_col'] = '';
+
+// default messages sort order
+$config['message_sort_order'] = 'DESC';
+
+// These cols are shown in the message list. Available cols are:
+// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, 'priority'
+$config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment');
+
+// the default locale setting (leave empty for auto-detection)
+// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR
+$config['language'] = null;
+
+// use this format for date display (date or strftime format)
+$config['date_format'] = 'Y-m-d';
+
+// give this choice of date formats to the user to select from
+// Note: do not use ambiguous formats like m/d/Y
+$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)
+$config['time_format'] = 'H:i';
+
+// give this choice of time formats to the user to select from
+$config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A');
+
+// use this format for short date display (derived from date_format and time_format)
+$config['date_short'] = 'D H:i';
+
+// use this format for detailed date/time formatting (derived from date_format and time_format)
+$config['date_long'] = 'Y-m-d H:i';
+
+// store draft message is this mailbox
+// leave blank if draft messages should not be stored
+// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
+$config['drafts_mbox'] = 'Drafts';
+
+// store spam messages in this mailbox
+// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
+$config['junk_mbox'] = 'Junk';
+
+// store sent message is this mailbox
+// leave blank if sent messages should not be stored
+// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
+$config['sent_mbox'] = 'Sent';
+
+// move messages to this folder when deleting them
+// leave blank if they should be deleted directly
+// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
+$config['trash_mbox'] = 'Trash';
+
+// automatically create the above listed default folders on first login
+$config['create_default_folders'] = false;
+
+// protect the default folders from renames, deletes, and subscription changes
+$config['protect_default_folders'] = true;
+
+// Disable localization of the default folder names listed above
+$config['show_real_foldernames'] = false;
+
+// if in your system 0 quota means no limit set this option to true
+$config['quota_zero_as_unlimited'] = false;
+
+// Make use of the built-in spell checker. It is based on GoogieSpell.
+// Since Google only accepts connections over https your PHP installatation
+// requires to be compiled with Open SSL support
+$config['enable_spellcheck'] = true;
+
+// Enables spellchecker exceptions dictionary.
+// Setting it to 'shared' will make the dictionary shared by all users.
+$config['spellcheck_dictionary'] = false;
+
+// Set the spell checking engine. Possible values:
+// - 'googie' - the default (also used for connecting to Nox Spell Server, see 'spellcheck_uri' setting)
+// - 'pspell' - requires the PHP Pspell module and aspell installed
+// - 'enchant' - requires the PHP Enchant module
+// - 'atd' - install your own After the Deadline server or check with the people at http://www.afterthedeadline.com before using their API
+// Since Google shut down their public spell checking service, the default settings
+// connect to http://spell.roundcube.net which is a hosted service provided by Roundcube.
+// You can connect to any other googie-compliant service by setting 'spellcheck_uri' accordingly.
+$config['spellcheck_engine'] = 'googie';
+
+// For locally installed Nox Spell Server or After the Deadline services,
+// please specify the URI to call it.
+// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72 or
+// the After the Deadline package from http://www.afterthedeadline.com.
+// Leave empty to use the public API of service.afterthedeadline.com
+$config['spellcheck_uri'] = '';
+
+// These languages can be selected for spell checking.
+// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch');
+// Leave empty for default set of available language.
+$config['spellcheck_languages'] = NULL;
+
+// Makes that words with all letters capitalized will be ignored (e.g. GOOGLE)
+$config['spellcheck_ignore_caps'] = false;
+
+// Makes that words with numbers will be ignored (e.g. g00gle)
+$config['spellcheck_ignore_nums'] = false;
+
+// Makes that words with symbols will be ignored (e.g. g@@gle)
+$config['spellcheck_ignore_syms'] = false;
+
+// Use this char/string to separate recipients when composing a new message
+$config['recipients_separator'] = ',';
+
+// Number of lines at the end of a message considered to contain the signature.
+// Increase this value if signatures are not properly detected and colored
+$config['sig_max_lines'] = 15;
+
+// don't let users set pagesize to more than this value if set
+$config['max_pagesize'] = 200;
+
+// Minimal value of user's 'refresh_interval' setting (in seconds)
+$config['min_refresh_interval'] = 60;
+
+// Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option.
+// By default refresh time is set to 1 second. You can set this value to true
+// or any integer value indicating number of seconds.
+$config['upload_progress'] = false;
+
+// Specifies for how many seconds the Undo button will be available
+// after object delete action. Currently used with supporting address book sources.
+// Setting it to 0, disables the feature.
+$config['undo_timeout'] = 0;
+
+// A static list of canned responses which are immutable for the user
+$config['compose_responses_static'] = array(
+// array('name' => 'Canned Response 1', 'text' => 'Static Response One'),
+// array('name' => 'Canned Response 2', 'text' => 'Static Response Two'),
+);
+
+// ----------------------------------
+// ADDRESSBOOK SETTINGS
+// ----------------------------------
+
+// This indicates which type of address book to use. Possible choises:
+// 'sql' (default), 'ldap' and ''.
+// If set to 'ldap' then it will look at using the first writable LDAP
+// address book as the primary address book and it will not display the
+// SQL address book in the 'Address Book' view.
+// If set to '' then no address book will be displayed or only the
+// addressbook which is created by a plugin (like CardDAV).
+$config['address_book_type'] = 'sql';
+
+// In order to enable public ldap search, configure an array like the Verisign
+// example further below. if you would like to test, simply uncomment the example.
+// Array key must contain only safe characters, ie. a-zA-Z0-9_
+$config['ldap_public'] = array();
+
+// If you are going to use LDAP for individual address books, you will need to
+// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it.
+//
+// The recommended directory structure for LDAP is to store all the address book entries
+// under the users main entry, e.g.:
+//
+// o=root
+// ou=people
+// uid=user@domain
+// mail=contact@contactdomain
+//
+// So the base_dn would be uid=%fu,ou=people,o=root
+// The bind_dn would be the same as based_dn or some super user login.
+/*
+ * example config for Verisign directory
+ *
+$config['ldap_public']['Verisign'] = array(
+ 'name' => 'Verisign.com',
+ // Replacement variables supported in host names:
+ // %h - user's IMAP hostname
+ // %n - hostname ($_SERVER['SERVER_NAME'])
+ // %t - hostname without the first part
+ // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
+ // %z - IMAP domain (IMAP hostname without the first part)
+ // For example %n = mail.domain.tld, %t = domain.tld
+ 'hosts' => array('directory.verisign.com'),
+ 'port' => 389,
+ 'use_tls' => false,
+ 'ldap_version' => 3, // using LDAPv3
+ 'network_timeout' => 10, // The timeout (in seconds) for connect + bind arrempts. This is only supported in PHP >= 5.3.0 with OpenLDAP 2.x
+ 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
+ // When 'user_specific' is enabled following variables can be used in base_dn/bind_dn config:
+ // %fu - The full username provided, assumes the username is an email
+ // address, uses the username_domain value if not an email address.
+ // %u - The username prior to the '@'.
+ // %d - The domain name after the '@'.
+ // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
+ // %dn - DN found by ldap search when search_filter/search_base_dn are used
+ 'base_dn' => '',
+ 'bind_dn' => '',
+ 'bind_pass' => '',
+ // It's possible to bind for an individual address book
+ // The login name is used to search for the DN to bind with
+ 'search_base_dn' => '',
+ 'search_filter' => '', // e.g. '(&(objectClass=posixAccount)(uid=%u))'
+ // DN and password to bind as before searching for bind DN, if anonymous search is not allowed
+ 'search_bind_dn' => '',
+ 'search_bind_pw' => '',
+ // Optional map of replacement strings => attributes used when binding for an individual address book
+ 'search_bind_attrib' => array(), // e.g. array('%udc' => 'ou')
+ // Default for %dn variable if search doesn't return DN value
+ 'search_dn_default' => '',
+ // Optional authentication identifier to be used as SASL authorization proxy
+ // bind_dn need to be empty
+ 'auth_cid' => '',
+ // SASL authentication method (for proxy auth), e.g. DIGEST-MD5
+ 'auth_method' => '',
+ // Indicates if the addressbook shall be hidden from the list.
+ // With this option enabled you can still search/view contacts.
+ 'hidden' => false,
+ // Indicates if the addressbook shall not list contacts but only allows searching.
+ 'searchonly' => false,
+ // Indicates if we can write to the LDAP directory or not.
+ // If writable is true then these fields need to be populated:
+ // LDAP_Object_Classes, required_fields, LDAP_rdn
+ 'writable' => false,
+ // To create a new contact these are the object classes to specify
+ // (or any other classes you wish to use).
+ 'LDAP_Object_Classes' => array('top', 'inetOrgPerson'),
+ // The RDN field that is used for new entries, this field needs
+ // to be one of the search_fields, the base of base_dn is appended
+ // to the RDN to insert into the LDAP directory.
+ 'LDAP_rdn' => 'cn',
+ // The required fields needed to build a new contact as required by
+ // the object classes (can include additional fields not required by the object classes).
+ 'required_fields' => array('cn', 'sn', 'mail'),
+ 'search_fields' => array('mail', 'cn'), // fields to search in
+ // mapping of contact fields to directory attributes
+ // for every attribute one can specify the number of values (limit) allowed.
+ // default is 1, a wildcard * means unlimited
+ 'fieldmap' => array(
+ // Roundcube => LDAP:limit
+ 'name' => 'cn',
+ 'surname' => 'sn',
+ 'firstname' => 'givenName',
+ 'jobtitle' => 'title',
+ 'email' => 'mail:*',
+ 'phone:home' => 'homePhone',
+ 'phone:work' => 'telephoneNumber',
+ 'phone:mobile' => 'mobile',
+ 'phone:pager' => 'pager',
+ 'phone:workfax' => 'facsimileTelephoneNumber',
+ 'street' => 'street',
+ 'zipcode' => 'postalCode',
+ 'region' => 'st',
+ 'locality' => 'l',
+ // if you country is a complex object, you need to configure 'sub_fields' below
+ 'country' => 'c',
+ 'organization' => 'o',
+ 'department' => 'ou',
+ 'jobtitle' => 'title',
+ 'notes' => 'description',
+ 'photo' => 'jpegPhoto',
+ // these currently don't work:
+ // 'manager' => 'manager',
+ // 'assistant' => 'secretary',
+ ),
+ // Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country'
+ 'sub_fields' => array(),
+ // Generate values for the following LDAP attributes automatically when creating a new record
+ 'autovalues' => array(
+ // 'uid' => 'md5(microtime())', // You may specify PHP code snippets which are then eval'ed
+ // 'mail' => '{givenname}.{sn}@mydomain.com', // or composite strings with placeholders for existing attributes
+ ),
+ 'sort' => 'cn', // The field to sort the listing by.
+ 'scope' => 'sub', // search mode: sub|base|list
+ 'filter' => '(objectClass=inetOrgPerson)', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act
+ 'fuzzy_search' => true, // server allows wildcard search
+ 'vlv' => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it)
+ 'vlv_search' => false, // Use Virtual List View functions for autocompletion searches (if server supports it)
+ 'numsub_filter' => '(objectClass=organizationalUnit)', // with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting
+ 'config_root_dn' => 'cn=config', // Root DN to search config entries (e.g. vlv indexes)
+ 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit.
+ 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.
+ 'referrals' => false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups
+ 'dereference' => 0, // Sets the LDAP_OPT_DEREF option. One of: LDAP_DEREF_NEVER, LDAP_DEREF_SEARCHING, LDAP_DEREF_FINDING, LDAP_DEREF_ALWAYS
+ // Used where addressbook contains aliases to objects elsewhere in the LDAP tree.
+
+ // definition for contact groups (uncomment if no groups are supported)
+ // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above)
+ // if the groups base_dn is empty, the contact base_dn is used for the groups as well
+ // -> in this case, assure that groups and contacts are separated due to the concernig filters!
+ 'groups' => array(
+ 'base_dn' => '',
+ 'scope' => 'sub', // Search mode: sub|base|list
+ 'filter' => '(objectClass=groupOfNames)',
+ 'object_classes' => array('top', 'groupOfNames'), // Object classes to be assigned to new groups
+ 'member_attr' => 'member', // Name of the default member attribute, e.g. uniqueMember
+ 'name_attr' => 'cn', // Attribute to be used as group name
+ 'email_attr' => 'mail', // Group email address attribute (e.g. for mailing lists)
+ 'member_filter' => '(objectclass=*)', // Optional filter to use when querying for group members
+ 'vlv' => false, // Use VLV controls to list groups
+ 'class_member_attr' => array( // Mapping of group object class to member attribute used in these objects
+ 'groupofnames' => 'member',
+ 'groupofuniquenames' => 'uniquemember'
+ ),
+ ),
+ // this configuration replaces the regular groups listing in the directory tree with
+ // a hard-coded list of groups, each listing entries with the configured base DN and filter.
+ // if the 'groups' option from above is set, it'll be shown as the first entry with the name 'Groups'
+ 'group_filters' => array(
+ 'departments' => array(
+ 'name' => 'Company Departments',
+ 'scope' => 'list',
+ 'base_dn' => 'ou=Groups,dc=mydomain,dc=com',
+ 'filter' => '(|(objectclass=groupofuniquenames)(objectclass=groupofurls))',
+ 'name_attr' => 'cn',
+ ),
+ 'customers' => array(
+ 'name' => 'Customers',
+ 'scope' => 'sub',
+ 'base_dn' => 'ou=Customers,dc=mydomain,dc=com',
+ 'filter' => '(objectClass=inetOrgPerson)',
+ 'name_attr' => 'sn',
+ ),
+ ),
+);
+*/
+
+// An ordered array of the ids of the addressbooks that should be searched
+// when populating address autocomplete fields server-side. ex: array('sql','Verisign');
+$config['autocomplete_addressbooks'] = array('sql');
+
+// The minimum number of characters required to be typed in an autocomplete field
+// before address books will be searched. Most useful for LDAP directories that
+// may need to do lengthy results building given overly-broad searches
+$config['autocomplete_min_length'] = 1;
+
+// Number of parallel autocomplete requests.
+// If there's more than one address book, n parallel (async) requests will be created,
+// where each request will search in one address book. By default (0), all address
+// books are searched in one request.
+$config['autocomplete_threads'] = 0;
+
+// Max. numer of entries in autocomplete popup. Default: 15.
+$config['autocomplete_max'] = 15;
+
+// show address fields in this order
+// available placeholders: {street}, {locality}, {zipcode}, {country}, {region}
+$config['address_template'] = '{street}<br/>{locality} {zipcode}<br/>{country} {region}';
+
+// Matching mode for addressbook search (including autocompletion)
+// 0 - partial (*abc*), default
+// 1 - strict (abc)
+// 2 - prefix (abc*)
+// Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode
+$config['addressbook_search_mode'] = 0;
+
+// Template of contact entry on the autocompletion list.
+// You can use contact fields as: name, email, organization, department, etc.
+// See program/steps/addressbook/func.inc for a list
+$config['contact_search_name'] = '{name} <{email}>';
+
+// ----------------------------------
+// USER PREFERENCES
+// ----------------------------------
+
+// Use this charset as fallback for message decoding
+$config['default_charset'] = 'ISO-8859-1';
+
+// skin name: folder from skins/
+$config['skin'] = 'larry';
+
+// Enables using standard browser windows (that can be handled as tabs)
+// instead of popup windows
+$config['standard_windows'] = false;
+
+// show up to X items in messages list view
+$config['mail_pagesize'] = 50;
+
+// show up to X items in contacts list view
+$config['addressbook_pagesize'] = 50;
+
+// sort contacts by this col (preferably either one of name, firstname, surname)
+$config['addressbook_sort_col'] = 'surname';
+
+// the way how contact names are displayed in the list
+// 0: display name
+// 1: (prefix) firstname middlename surname (suffix)
+// 2: (prefix) surname firstname middlename (suffix)
+// 3: (prefix) surname, firstname middlename (suffix)
+$config['addressbook_name_listing'] = 0;
+
+// use this timezone to display date/time
+// valid timezone identifers are listed here: php.net/manual/en/timezones.php
+// 'auto' will use the browser's timezone settings
+$config['timezone'] = 'auto';
+
+// prefer displaying HTML messages
+$config['prefer_html'] = true;
+
+// display remote inline images
+// 0 - Never, always ask
+// 1 - Ask if sender is not in address book
+// 2 - Always show inline images
+$config['show_images'] = 0;
+
+// open messages in new window
+$config['message_extwin'] = false;
+
+// open message compose form in new window
+$config['compose_extwin'] = false;
+
+// compose html formatted messages by default
+// 0 - never, 1 - always, 2 - on reply to HTML message, 3 - on forward or reply to HTML message
+$config['htmleditor'] = 0;
+
+// save copies of compose messages in the browser's local storage
+// for recovery in case of browser crashes and session timeout.
+$config['compose_save_localstorage'] = true;
+
+// show pretty dates as standard
+$config['prettydate'] = true;
+
+// save compose message every 300 seconds (5min)
+$config['draft_autosave'] = 300;
+
+// default setting if preview pane is enabled
+$config['preview_pane'] = false;
+
+// Mark as read when viewed in preview pane (delay in seconds)
+// Set to -1 if messages in preview pane should not be marked as read
+$config['preview_pane_mark_read'] = 0;
+
+// Clear Trash on logout
+$config['logout_purge'] = false;
+
+// Compact INBOX on logout
+$config['logout_expunge'] = false;
+
+// Display attached images below the message body
+$config['inline_images'] = true;
+
+// Encoding of long/non-ascii attachment names:
+// 0 - Full RFC 2231 compatible
+// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default)
+// 2 - Full 2047 compatible
+$config['mime_param_folding'] = 1;
+
+// Set true if deleted messages should not be displayed
+// This will make the application run slower
+$config['skip_deleted'] = false;
+
+// Set true to Mark deleted messages as read as well as deleted
+// False means that a message's read status is not affected by marking it as deleted
+$config['read_when_deleted'] = true;
+
+// Set to true to never delete messages immediately
+// Use 'Purge' to remove messages marked as deleted
+$config['flag_for_deletion'] = false;
+
+// Default interval for auto-refresh requests (in seconds)
+// These are requests for system state updates e.g. checking for new messages, etc.
+// Setting it to 0 disables the feature.
+$config['refresh_interval'] = 60;
+
+// If true all folders will be checked for recent messages
+$config['check_all_folders'] = false;
+
+// If true, after message delete/move, the next message will be displayed
+$config['display_next'] = true;
+
+// Default messages listing mode. One of 'threads' or 'list'.
+$config['default_list_mode'] = 'list';
+
+// 0 - Do not expand threads
+// 1 - Expand all threads automatically
+// 2 - Expand only threads with unread messages
+$config['autoexpand_threads'] = 0;
+
+// When replying:
+// -1 - don't cite the original message
+// 0 - place cursor below the original message
+// 1 - place cursor above original message (top posting)
+$config['reply_mode'] = 0;
+
+// When replying strip original signature from message
+$config['strip_existing_sig'] = true;
+
+// Show signature:
+// 0 - Never
+// 1 - Always
+// 2 - New messages only
+// 3 - Forwards and Replies only
+$config['show_sig'] = 1;
+
+// By default the signature is placed depending on cursor position (reply_mode).
+// Sometimes it might be convenient to start the reply on top but keep
+// the signature below the quoted text (sig_below = true).
+$config['sig_below'] = false;
+
+// Use MIME encoding (quoted-printable) for 8bit characters in message body
+$config['force_7bit'] = false;
+
+// Defaults of the search field configuration.
+// The array can contain a per-folder list of header fields which should be considered when searching
+// The entry with key '*' stands for all folders which do not have a specific list set.
+// Please note that folder names should to be in sync with $config['*_mbox'] options
+$config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1));
+
+// Defaults of the addressbook search field configuration.
+$config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1);
+
+// 'Delete always'
+// This setting reflects if mail should be always deleted
+// when moving to Trash fails. This is necessary in some setups
+// when user is over quota and Trash is included in the quota.
+$config['delete_always'] = false;
+
+// Directly delete messages in Junk instead of moving to Trash
+$config['delete_junk'] = false;
+
+// Behavior if a received message requests a message delivery notification (read receipt)
+// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask)
+// 3 = send automatically if sender is in addressbook, otherwise ask the user
+// 4 = send automatically if sender is in addressbook, otherwise ignore
+$config['mdn_requests'] = 0;
+
+// Return receipt checkbox default state
+$config['mdn_default'] = 0;
+
+// Delivery Status Notification checkbox default state
+// Note: This can be used only if smtp_server is non-empty
+$config['dsn_default'] = 0;
+
+// Place replies in the folder of the message being replied to
+$config['reply_same_folder'] = false;
+
+// Sets default mode of Forward feature to "forward as attachment"
+$config['forward_attachment'] = false;
+
+// Defines address book (internal index) to which new contacts will be added
+// By default it is the first writeable addressbook.
+// Note: Use '0' for built-in address book.
+$config['default_addressbook'] = null;
+
+// Enables spell checking before sending a message.
+$config['spellcheck_before_send'] = false;
+
+// Skip alternative email addresses in autocompletion (show one address per contact)
+$config['autocomplete_single'] = false;
+
+// Default font for composed HTML message.
+// Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New,
+// Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana
+$config['default_font'] = 'Verdana';
+
+// Default font size for composed HTML message.
+// Supported sizes: 8pt, 10pt, 12pt, 14pt, 18pt, 24pt, 36pt
+$config['default_font_size'] = '10pt';
+
+// Enables display of email address with name instead of a name (and address in title)
+$config['message_show_email'] = false;
+
+// Default behavior of Reply-All button:
+// 0 - Reply-All always
+// 1 - Reply-List if mailing list is detected
+$config['reply_all_mode'] = 0;
diff --git a/installer/check.php b/installer/check.php
index afdf86e..86396bc 100644
--- a/installer/check.php
+++ b/installer/check.php
@@ -84,7 +84,7 @@ $source_urls = array(
'Mail_mime' => 'http://pear.php.net/package/Mail_mime',
'Mail_mimeDecode' => 'http://pear.php.net/package/Mail_mimeDecode',
'Net_IDNA2' => 'http://pear.php.net/package/Net_IDNA2',
- 'Net_LDAP3' => 'http://git.kolab.org/pear/Net_LDAP3',
+ 'Net_LDAP3' => 'https://git.kolab.org/diffusion/PNL',
);
echo '<input type="hidden" name="_step" value="' . ($RCI->configured ? 3 : 2) . '" />';
diff --git a/plugins b/plugins
deleted file mode 160000
-Subproject 679cb7875a8f5aecfd583cab09d1b9ae4e0167d
diff --git a/plugins/acl/acl.js b/plugins/acl/acl.js
new file mode 100644
index 0000000..f1e9922
--- /dev/null
+++ b/plugins/acl/acl.js
@@ -0,0 +1,392 @@
+/**
+ * ACL plugin script
+ *
+ * @version @package_version@
+ * @author Aleksander Machniak <alec@alec.pl>
+ */
+
+if (window.rcmail) {
+ rcmail.addEventListener('init', function() {
+ if (rcmail.gui_objects.acltable) {
+ rcmail.acl_list_init();
+ // enable autocomplete on user input
+ if (rcmail.env.acl_users_source) {
+ var inst = rcmail.is_framed() ? parent.rcmail : rcmail;
+ inst.init_address_input_events($('#acluser'), {action:'settings/plugin.acl-autocomplete'});
+
+ // pass config settings and localized texts to autocomplete context
+ inst.set_env({ autocomplete_max:rcmail.env.autocomplete_max, autocomplete_min_length:rcmail.env.autocomplete_min_length });
+ inst.add_label('autocompletechars', rcmail.labels.autocompletechars);
+ inst.add_label('autocompletemore', rcmail.labels.autocompletemore);
+
+ // fix inserted value
+ inst.addEventListener('autocomplete_insert', function(e) {
+ if (e.field.id != 'acluser')
+ return;
+
+ e.field.value = e.insert.replace(/[ ,;]+$/, '');
+ });
+ }
+ }
+
+ rcmail.enable_command('acl-create', 'acl-save', 'acl-cancel', 'acl-mode-switch', true);
+ rcmail.enable_command('acl-delete', 'acl-edit', false);
+
+ if (rcmail.env.acl_advanced)
+ $('#acl-switch').addClass('selected');
+ });
+}
+
+// Display new-entry form
+rcube_webmail.prototype.acl_create = function()
+{
+ this.acl_init_form();
+}
+
+// Display ACL edit form
+rcube_webmail.prototype.acl_edit = function()
+{
+ // @TODO: multi-row edition
+ var id = this.acl_list.get_single_selection();
+ if (id)
+ this.acl_init_form(id);
+}
+
+// ACL entry delete
+rcube_webmail.prototype.acl_delete = function()
+{
+ var users = this.acl_get_usernames();
+
+ if (users && users.length && confirm(this.get_label('acl.deleteconfirm'))) {
+ this.http_post('settings/plugin.acl', {
+ _act: 'delete',
+ _user: users.join(','),
+ _mbox: this.env.mailbox
+ },
+ this.set_busy(true, 'acl.deleting'));
+ }
+}
+
+// Save ACL data
+rcube_webmail.prototype.acl_save = function()
+{
+ var data, type, rights = '', user = $('#acluser', this.acl_form).val();
+
+ $((this.env.acl_advanced ? '#advancedrights :checkbox' : '#simplerights :checkbox'), this.acl_form).map(function() {
+ if (this.checked)
+ rights += this.value;
+ });
+
+ if (type = $('input:checked[name=usertype]', this.acl_form).val()) {
+ if (type != 'user')
+ user = type;
+ }
+
+ if (!user) {
+ alert(this.get_label('acl.nouser'));
+ return;
+ }
+ if (!rights) {
+ alert(this.get_label('acl.norights'));
+ return;
+ }
+
+ data = {
+ _act: 'save',
+ _user: user,
+ _acl: rights,
+ _mbox: this.env.mailbox
+ }
+
+ if (this.acl_id) {
+ data._old = this.acl_id;
+ }
+
+ this.http_post('settings/plugin.acl', data, this.set_busy(true, 'acl.saving'));
+}
+
+// Cancel/Hide form
+rcube_webmail.prototype.acl_cancel = function()
+{
+ this.ksearch_blur();
+ this.acl_popup.dialog('close');
+}
+
+// Update data after save (and hide form)
+rcube_webmail.prototype.acl_update = function(o)
+{
+ // delete old row
+ if (o.old)
+ this.acl_remove_row(o.old);
+ // make sure the same ID doesn't exist
+ else if (this.env.acl[o.id])
+ this.acl_remove_row(o.id);
+
+ // add new row
+ this.acl_add_row(o, true);
+ // hide autocomplete popup
+ this.ksearch_blur();
+ // hide form
+ this.acl_popup.dialog('close');
+}
+
+// Switch table display mode
+rcube_webmail.prototype.acl_mode_switch = function(elem)
+{
+ this.env.acl_advanced = !this.env.acl_advanced;
+ this.enable_command('acl-delete', 'acl-edit', false);
+ this.http_request('settings/plugin.acl', '_act=list'
+ + '&_mode='+(this.env.acl_advanced ? 'advanced' : 'simple')
+ + '&_mbox='+urlencode(this.env.mailbox),
+ this.set_busy(true, 'loading'));
+}
+
+// ACL table initialization
+rcube_webmail.prototype.acl_list_init = function()
+{
+ var method = this.env.acl_advanced ? 'addClass' : 'removeClass';
+
+ $('#acl-switch')[method]('selected');
+ $(this.gui_objects.acltable)[method]('advanced');
+
+ this.acl_list = new rcube_list_widget(this.gui_objects.acltable,
+ {multiselect: true, draggable: false, keyboard: true});
+ this.acl_list.addEventListener('select', function(o) { rcmail.acl_list_select(o); })
+ .addEventListener('dblclick', function(o) { rcmail.acl_list_dblclick(o); })
+ .addEventListener('keypress', function(o) { rcmail.acl_list_keypress(o); })
+ .init();
+}
+
+// ACL table row selection handler
+rcube_webmail.prototype.acl_list_select = function(list)
+{
+ rcmail.enable_command('acl-delete', list.selection.length > 0);
+ rcmail.enable_command('acl-edit', list.selection.length == 1);
+ list.focus();
+}
+
+// ACL table double-click handler
+rcube_webmail.prototype.acl_list_dblclick = function(list)
+{
+ this.acl_edit();
+}
+
+// ACL table keypress handler
+rcube_webmail.prototype.acl_list_keypress = function(list)
+{
+ if (list.key_pressed == list.ENTER_KEY)
+ this.command('acl-edit');
+ else if (list.key_pressed == list.DELETE_KEY || list.key_pressed == list.BACKSPACE_KEY)
+ if (!this.acl_form || !this.acl_form.is(':visible'))
+ this.command('acl-delete');
+}
+
+// Reloads ACL table
+rcube_webmail.prototype.acl_list_update = function(html)
+{
+ $(this.gui_objects.acltable).html(html);
+ this.acl_list_init();
+}
+
+// Returns names of users in selected rows
+rcube_webmail.prototype.acl_get_usernames = function()
+{
+ var users = [], n, len, cell, row,
+ list = this.acl_list,
+ selection = list.get_selection();
+
+ for (n=0, len=selection.length; n<len; n++) {
+ if (this.env.acl_specials.length && $.inArray(selection[n], this.env.acl_specials) >= 0) {
+ users.push(selection[n]);
+ }
+ else if (row = list.rows[selection[n]]) {
+ cell = $('td.user', row.obj);
+ if (cell.length == 1)
+ users.push(cell.text());
+ }
+ }
+
+ return users;
+}
+
+// Removes ACL table row
+rcube_webmail.prototype.acl_remove_row = function(id)
+{
+ var list = this.acl_list;
+
+ list.remove_row(id);
+ list.clear_selection();
+
+ // we don't need it anymore (remove id conflict)
+ $('#rcmrow'+id).remove();
+ this.env.acl[id] = null;
+
+ this.enable_command('acl-delete', list.selection.length > 0);
+ this.enable_command('acl-edit', list.selection.length == 1);
+}
+
+// Adds ACL table row
+rcube_webmail.prototype.acl_add_row = function(o, sel)
+{
+ var n, len, ids = [], spec = [], id = o.id, list = this.acl_list,
+ items = this.env.acl_advanced ? [] : this.env.acl_items,
+ table = this.gui_objects.acltable,
+ row = $('thead > tr', table).clone();
+
+ // Update new row
+ $('th', row).map(function() {
+ var td = $('<td>'),
+ title = $(this).attr('title'),
+ cl = this.className.replace(/^acl/, '');
+
+ if (title)
+ td.attr('title', title);
+
+ if (items && items[cl])
+ cl = items[cl];
+
+ if (cl == 'user')
+ td.addClass(cl).append($('<a>').text(o.username));
+ else
+ td.addClass(this.className + ' ' + rcmail.acl_class(o.acl, cl)).text('');
+
+ $(this).replaceWith(td);
+ });
+
+ row.attr('id', 'rcmrow'+id);
+ row = row.get(0);
+
+ this.env.acl[id] = o.acl;
+
+ // sorting... (create an array of user identifiers, then sort it)
+ for (n in this.env.acl) {
+ if (this.env.acl[n]) {
+ if (this.env.acl_specials.length && $.inArray(n, this.env.acl_specials) >= 0)
+ spec.push(n);
+ else
+ ids.push(n);
+ }
+ }
+ ids.sort();
+ // specials on the top
+ ids = spec.concat(ids);
+
+ // find current id
+ for (n=0, len=ids.length; n<len; n++)
+ if (ids[n] == id)
+ break;
+
+ // add row
+ if (n && n < len) {
+ $('#rcmrow'+ids[n-1]).after(row);
+ list.init_row(row);
+ list.rowcount++;
+ }
+ else
+ list.insert_row(row);
+
+ if (sel)
+ list.select_row(o.id);
+}
+
+// Initializes and shows ACL create/edit form
+rcube_webmail.prototype.acl_init_form = function(id)
+{
+ var ul, row, td, val = '', type = 'user', li_elements, body = $('body'),
+ adv_ul = $('#advancedrights'), sim_ul = $('#simplerights'),
+ name_input = $('#acluser'), type_list = $('#usertype');
+
+ if (!this.acl_form) {
+ var fn = function () { $('input[value="user"]').prop('checked', true); };
+ name_input.click(fn).keypress(fn);
+ }
+
+ this.acl_form = $('#aclform');
+
+ // Hide unused items
+ if (this.env.acl_advanced) {
+ adv_ul.show();
+ sim_ul.hide();
+ ul = adv_ul;
+ }
+ else {
+ sim_ul.show();
+ adv_ul.hide();
+ ul = sim_ul;
+ }
+
+ // initialize form fields
+ li_elements = $(':checkbox', ul);
+ li_elements.attr('checked', false);
+
+ if (id && (row = this.acl_list.rows[id])) {
+ row = row.obj;
+ li_elements.map(function() {
+ td = $('td.'+this.id, row);
+ if (td.length && td.hasClass('enabled'))
+ this.checked = true;
+ });
+
+ if (!this.env.acl_specials.length || $.inArray(id, this.env.acl_specials) < 0)
+ val = $('td.user', row).text();
+ else
+ type = id;
+ }
+ // mark read (lrs) rights by default
+ else {
+ li_elements.filter(function() { return this.id.match(/^acl([lrs]|read)$/); }).prop('checked', true);
+ }
+
+ name_input.val(val);
+ $('input[value='+type+']').prop('checked', true);
+
+ this.acl_id = id;
+
+ var buttons = {}, me = this, body = document.body;
+
+ buttons[this.gettext('save')] = function(e) { me.command('acl-save'); };
+ buttons[this.gettext('cancel')] = function(e) { me.command('acl-cancel'); };
+
+ // display it as popup
+ this.acl_popup = this.show_popup_dialog(
+ this.acl_form.show(),
+ id ? this.gettext('acl.editperms') : this.gettext('acl.newuser'),
+ buttons,
+ {
+ button_classes: ['mainaction'],
+ modal: true,
+ closeOnEscape: true,
+ close: function(e, ui) {
+ (me.is_framed() ? parent.rcmail : me).ksearch_hide();
+ me.acl_form.appendTo(body).hide();
+ $(this).remove();
+ window.focus(); // focus iframe
+ }
+ }
+ );
+
+ if (type == 'user')
+ name_input.focus();
+ else
+ $('input:checked', type_list).focus();
+}
+
+// Returns class name according to ACL comparision result
+rcube_webmail.prototype.acl_class = function(acl1, acl2)
+{
+ var i, len, found = 0;
+
+ acl1 = String(acl1);
+ acl2 = String(acl2);
+
+ for (i=0, len=acl2.length; i<len; i++)
+ if (acl1.indexOf(acl2[i]) > -1)
+ found++;
+
+ if (found == len)
+ return 'enabled';
+ else if (found)
+ return 'partial';
+
+ return 'disabled';
+}
diff --git a/plugins/acl/acl.php b/plugins/acl/acl.php
new file mode 100644
index 0000000..0393a3d
--- /dev/null
+++ b/plugins/acl/acl.php
@@ -0,0 +1,779 @@
+<?php
+
+/**
+ * Folders Access Control Lists Management (RFC4314, RFC2086)
+ *
+ * @version @package_version@
+ * @author Aleksander Machniak <alec@alec.pl>
+ *
+ *
+ * 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 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/.
+ */
+
+class acl extends rcube_plugin
+{
+ public $task = 'settings|addressbook|calendar';
+
+ private $rc;
+ private $supported = null;
+ private $mbox;
+ private $ldap;
+ private $specials = array('anyone', 'anonymous');
+
+ /**
+ * Plugin initialization
+ */
+ function init()
+ {
+ $this->rc = rcmail::get_instance();
+
+ // Register hooks
+ $this->add_hook('folder_form', array($this, 'folder_form'));
+ // kolab_addressbook plugin
+ $this->add_hook('addressbook_form', array($this, 'folder_form'));
+ $this->add_hook('calendar_form_kolab', array($this, 'folder_form'));
+ // Plugin actions
+ $this->register_action('plugin.acl', array($this, 'acl_actions'));
+ $this->register_action('plugin.acl-autocomplete', array($this, 'acl_autocomplete'));
+ }
+
+ /**
+ * Handler for plugin actions (AJAX)
+ */
+ function acl_actions()
+ {
+ $action = trim(rcube_utils::get_input_value('_act', rcube_utils::INPUT_GPC));
+
+ // Connect to IMAP
+ $this->rc->storage_init();
+
+ // Load localization and configuration
+ $this->add_texts('localization/');
+ $this->load_config();
+
+ if ($action == 'save') {
+ $this->action_save();
+ }
+ else if ($action == 'delete') {
+ $this->action_delete();
+ }
+ else if ($action == 'list') {
+ $this->action_list();
+ }
+
+ // Only AJAX actions
+ $this->rc->output->send();
+ }
+
+ /**
+ * Handler for user login autocomplete request
+ */
+ function acl_autocomplete()
+ {
+ $this->load_config();
+
+ $search = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC, true);
+ $reqid = rcube_utils::get_input_value('_reqid', rcube_utils::INPUT_GPC);
+ $users = array();
+ $keys = array();
+
+ if ($this->init_ldap()) {
+ $max = (int) $this->rc->config->get('autocomplete_max', 15);
+ $mode = (int) $this->rc->config->get('addressbook_search_mode');
+
+ $this->ldap->set_pagesize($max);
+ $result = $this->ldap->search('*', $search, $mode);
+
+ foreach ($result->records as $record) {
+ $user = $record['uid'];
+
+ if (is_array($user)) {
+ $user = array_filter($user);
+ $user = $user[0];
+ }
+
+ if ($user) {
+ $display = rcube_addressbook::compose_search_name($record);
+ $user = array('name' => $user, 'display' => $display);
+ $users[] = $user;
+ $keys[] = $display ?: $user['name'];
+ }
+ }
+
+ if ($this->rc->config->get('acl_groups')) {
+ $prefix = $this->rc->config->get('acl_group_prefix');
+ $group_field = $this->rc->config->get('acl_group_field', 'name');
+ $result = $this->ldap->list_groups($search, $mode);
+
+ foreach ($result as $record) {
+ $group = $record['name'];
+ $group_id = is_array($record[$group_field]) ? $record[$group_field][0] : $record[$group_field];
+
+ if ($group) {
+ $users[] = array('name' => ($prefix ? $prefix : '') . $group_id, 'display' => $group, 'type' => 'group');
+ $keys[] = $group;
+ }
+ }
+ }
+ }
+
+ if (count($users)) {
+ // sort users index
+ asort($keys, SORT_LOCALE_STRING);
+ // re-sort users according to index
+ foreach ($keys as $idx => $val) {
+ $keys[$idx] = $users[$idx];
+ }
+ $users = array_values($keys);
+ }
+
+ $this->rc->output->command('ksearch_query_results', $users, $search, $reqid);
+ $this->rc->output->send();
+ }
+
+ /**
+ * Handler for 'folder_form' hook
+ *
+ * @param array $args Hook arguments array (form data)
+ *
+ * @return array Hook arguments array
+ */
+ function folder_form($args)
+ {
+ $mbox_imap = $args['options']['name'];
+ $myrights = $args['options']['rights'];
+
+ // Edited folder name (empty in create-folder mode)
+ if (!strlen($mbox_imap)) {
+ return $args;
+ }
+/*
+ // Do nothing on protected folders (?)
+ if ($args['options']['protected']) {
+ return $args;
+ }
+*/
+ // Get MYRIGHTS
+ if (empty($myrights)) {
+ return $args;
+ }
+
+ // 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', 'newuser', 'editperms'));
+ $this->rc->output->add_label('save', 'cancel');
+ $this->include_script('acl.js');
+ $this->rc->output->include_script('list.js');
+ $this->include_stylesheet($this->local_skin_path().'/acl.css');
+
+ // 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'),
+ 'content' => array());
+
+ // Display folder rights to 'Info' fieldset
+ $args['form']['props']['fieldsets']['info']['content']['myrights'] = array(
+ 'label' => rcube::Q($this->gettext('myrights')),
+ 'value' => $this->acl2text($myrights)
+ );
+
+ // Return if not folder admin
+ if (!in_array('a', $myrights)) {
+ return $args;
+ }
+
+ // The 'Sharing' tab
+ $this->mbox = $mbox_imap;
+ $this->rc->output->set_env('acl_users_source', (bool) $this->rc->config->get('acl_users_source'));
+ $this->rc->output->set_env('mailbox', $mbox_imap);
+ $this->rc->output->add_handlers(array(
+ 'acltable' => array($this, 'templ_table'),
+ 'acluser' => array($this, 'templ_user'),
+ 'aclrights' => array($this, 'templ_rights'),
+ ));
+
+ $this->rc->output->set_env('autocomplete_max', (int)$this->rc->config->get('autocomplete_max', 15));
+ $this->rc->output->set_env('autocomplete_min_length', $this->rc->config->get('autocomplete_min_length'));
+ $this->rc->output->add_label('autocompletechars', 'autocompletemore');
+
+ $args['form']['sharing'] = array(
+ 'name' => rcube::Q($this->gettext('sharing')),
+ 'content' => $this->rc->output->parse('acl.table', false, false),
+ );
+
+ return $args;
+ }
+
+ /**
+ * Creates ACL rights table
+ *
+ * @param array $attrib Template object attributes
+ *
+ * @return string HTML Content
+ */
+ function templ_table($attrib)
+ {
+ if (empty($attrib['id']))
+ $attrib['id'] = 'acl-table';
+
+ $out = $this->list_rights($attrib);
+
+ $this->rc->output->add_gui_object('acltable', $attrib['id']);
+
+ return $out;
+ }
+
+ /**
+ * Creates ACL rights form (rights list part)
+ *
+ * @param array $attrib Template object attributes
+ *
+ * @return string HTML Content
+ */
+ function templ_rights($attrib)
+ {
+ // Get supported rights
+ $supported = $this->rights_supported();
+
+ // give plugins the opportunity to adjust this list
+ $data = $this->rc->plugins->exec_hook('acl_rights_supported',
+ array('rights' => $supported, 'folder' => $this->mbox, 'labels' => array()));
+ $supported = $data['rights'];
+
+ // depending on server capability either use 'te' or 'd' for deleting msgs
+ $deleteright = implode(array_intersect(str_split('ted'), $supported));
+
+ $out = '';
+ $ul = '';
+ $input = new html_checkbox();
+
+ // Advanced rights
+ $attrib['id'] = 'advancedrights';
+ foreach ($supported as $key => $val) {
+ $id = "acl$val";
+ $ul .= html::tag('li', null,
+ $input->show('', array(
+ 'name' => "acl[$val]", 'value' => $val, 'id' => $id))
+ . html::label(array('for' => $id, 'title' => $this->gettext('longacl'.$val)),
+ $this->gettext('acl'.$val)));
+ }
+
+ $out = html::tag('ul', $attrib, $ul, html::$common_attrib);
+
+ // Simple rights
+ $ul = '';
+ $attrib['id'] = 'simplerights';
+ $items = array(
+ 'read' => 'lrs',
+ 'write' => 'wi',
+ 'delete' => $deleteright,
+ 'other' => preg_replace('/[lrswi'.$deleteright.']/', '', implode($supported)),
+ );
+
+ // give plugins the opportunity to adjust this list
+ $data = $this->rc->plugins->exec_hook('acl_rights_simple',
+ array('rights' => $items, 'folder' => $this->mbox, 'labels' => array(), 'titles' => array()));
+
+ foreach ($data['rights'] as $key => $val) {
+ $id = "acl$key";
+ $ul .= html::tag('li', null,
+ $input->show('', array(
+ 'name' => "acl[$val]", 'value' => $val, 'id' => $id))
+ . html::label(array('for' => $id, 'title' => $data['titles'][$key] ?: $this->gettext('longacl'.$key)),
+ $data['labels'][$key] ?: $this->gettext('acl'.$key)));
+ }
+
+ $out .= "\n" . html::tag('ul', $attrib, $ul, html::$common_attrib);
+
+ $this->rc->output->set_env('acl_items', $data['rights']);
+
+ return $out;
+ }
+
+ /**
+ * Creates ACL rights form (user part)
+ *
+ * @param array $attrib Template object attributes
+ *
+ * @return string HTML Content
+ */
+ function templ_user($attrib)
+ {
+ // Create username input
+ $attrib['name'] = 'acluser';
+
+ $textfield = new html_inputfield($attrib);
+
+ $fields['user'] = html::label(array('for' => $attrib['id']), $this->gettext('username'))
+ . ' ' . $textfield->show();
+
+ // Add special entries
+ if (!empty($this->specials)) {
+ foreach ($this->specials as $key) {
+ $fields[$key] = html::label(array('for' => 'id'.$key), $this->gettext($key));
+ }
+ }
+
+ $this->rc->output->set_env('acl_specials', $this->specials);
+
+ // Create list with radio buttons
+ if (count($fields) > 1) {
+ $ul = '';
+ $radio = new html_radiobutton(array('name' => 'usertype'));
+ foreach ($fields as $key => $val) {
+ $ul .= html::tag('li', null, $radio->show($key == 'user' ? 'user' : '',
+ array('value' => $key, 'id' => 'id'.$key))
+ . $val);
+ }
+
+ $out = html::tag('ul', array('id' => 'usertype', 'class' => $attrib['class']), $ul, html::$common_attrib);
+ }
+ // Display text input alone
+ else {
+ $out = $fields['user'];
+ }
+
+ return $out;
+ }
+
+ /**
+ * Creates ACL rights table
+ *
+ * @param array $attrib Template object attributes
+ *
+ * @return string HTML Content
+ */
+ private function list_rights($attrib=array())
+ {
+ // Get ACL for the folder
+ $acl = $this->rc->storage->get_acl($this->mbox);
+
+ if (!is_array($acl)) {
+ $acl = array();
+ }
+
+ // Keep special entries (anyone/anonymous) on top of the list
+ if (!empty($this->specials) && !empty($acl)) {
+ foreach ($this->specials as $key) {
+ if (isset($acl[$key])) {
+ $acl_special[$key] = $acl[$key];
+ unset($acl[$key]);
+ }
+ }
+ }
+
+ // Sort the list by username
+ uksort($acl, 'strnatcasecmp');
+
+ if (!empty($acl_special)) {
+ $acl = array_merge($acl_special, $acl);
+ }
+
+ // Get supported rights and build column names
+ $supported = $this->rights_supported();
+
+ // give plugins the opportunity to adjust this list
+ $data = $this->rc->plugins->exec_hook('acl_rights_supported',
+ array('rights' => $supported, 'folder' => $this->mbox, 'labels' => array()));
+ $supported = $data['rights'];
+
+ // depending on server capability either use 'te' or 'd' for deleting msgs
+ $deleteright = implode(array_intersect(str_split('ted'), $supported));
+
+ // Use advanced or simple (grouped) rights
+ $advanced = $this->rc->config->get('acl_advanced_mode');
+
+ if ($advanced) {
+ $items = array();
+ foreach ($supported as $sup) {
+ $items[$sup] = $sup;
+ }
+ }
+ else {
+ $items = array(
+ 'read' => 'lrs',
+ 'write' => 'wi',
+ 'delete' => $deleteright,
+ 'other' => preg_replace('/[lrswi'.$deleteright.']/', '', implode($supported)),
+ );
+
+ // give plugins the opportunity to adjust this list
+ $data = $this->rc->plugins->exec_hook('acl_rights_simple',
+ array('rights' => $items, 'folder' => $this->mbox, 'labels' => array()));
+ $items = $data['rights'];
+ }
+
+ // Create the table
+ $attrib['noheader'] = true;
+ $table = new html_table($attrib);
+
+ // Create table header
+ $table->add_header('user', $this->gettext('identifier'));
+ foreach (array_keys($items) as $key) {
+ $label = $data['labels'][$key] ?: $this->gettext('shortacl'.$key);
+ $table->add_header(array('class' => 'acl'.$key, 'title' => $label), $label);
+ }
+
+ $js_table = array();
+ foreach ($acl as $user => $rights) {
+ if ($this->rc->storage->conn->user == $user) {
+ continue;
+ }
+
+ // filter out virtual rights (c or d) the server may return
+ $userrights = array_intersect($rights, $supported);
+ $userid = rcube_utils::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', html::a(array('id' => 'rcmlinkrow'.$userid), rcube::Q($user)));
+
+ foreach ($items as $key => $right) {
+ $in = $this->acl_compare($userrights, $right);
+ switch ($in) {
+ case 2: $class = 'enabled'; break;
+ case 1: $class = 'partial'; break;
+ default: $class = 'disabled'; break;
+ }
+ $table->add('acl' . $key . ' ' . $class, '');
+ }
+
+ $js_table[$userid] = implode($userrights);
+ }
+
+ $this->rc->output->set_env('acl', $js_table);
+ $this->rc->output->set_env('acl_advanced', $advanced);
+
+ $out = $table->show();
+
+ return $out;
+ }
+
+ /**
+ * Handler for ACL update/create action
+ */
+ private function action_save()
+ {
+ $mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true)); // UTF7-IMAP
+ $user = trim(rcube_utils::get_input_value('_user', rcube_utils::INPUT_POST));
+ $acl = trim(rcube_utils::get_input_value('_acl', rcube_utils::INPUT_POST));
+ $oldid = trim(rcube_utils::get_input_value('_old', rcube_utils::INPUT_POST));
+
+ $acl = array_intersect(str_split($acl), $this->rights_supported());
+ $users = $oldid ? array($user) : explode(',', $user);
+ $result = 0;
+
+ foreach ($users as $user) {
+ $user = trim($user);
+ $prefix = $this->rc->config->get('acl_groups') ? $this->rc->config->get('acl_group_prefix') : '';
+
+ if ($prefix && strpos($user, $prefix) === 0) {
+ $username = $user;
+ }
+ else if (!empty($this->specials) && in_array($user, $this->specials)) {
+ $username = $this->gettext($user);
+ }
+ else if (!empty($user)) {
+ if (!strpos($user, '@') && ($realm = $this->get_realm())) {
+ $user .= '@' . rcube_utils::idn_to_ascii(preg_replace('/^@/', '', $realm));
+ }
+ $username = $user;
+ }
+
+ if (!$acl || !$user || !strlen($mbox)) {
+ continue;
+ }
+
+ $user = $this->mod_login($user);
+ $username = $this->mod_login($username);
+
+ if ($user != $_SESSION['username'] && $username != $_SESSION['username']) {
+ if ($this->rc->storage->set_acl($mbox, $user, $acl)) {
+ $ret = array('id' => rcube_utils::html_identifier($user),
+ 'username' => $username, 'acl' => implode($acl), 'old' => $oldid);
+ $this->rc->output->command('acl_update', $ret);
+ $result++;
+ }
+ }
+ }
+
+ if ($result) {
+ $this->rc->output->show_message($oldid ? 'acl.updatesuccess' : 'acl.createsuccess', 'confirmation');
+ }
+ else {
+ $this->rc->output->show_message($oldid ? 'acl.updateerror' : 'acl.createerror', 'error');
+ }
+ }
+
+ /**
+ * Handler for ACL delete action
+ */
+ private function action_delete()
+ {
+ $mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true)); //UTF7-IMAP
+ $user = trim(rcube_utils::get_input_value('_user', rcube_utils::INPUT_POST));
+
+ $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));
+ }
+ else {
+ $error = true;
+ }
+ }
+
+ if (!$error) {
+ $this->rc->output->show_message('acl.deletesuccess', 'confirmation');
+ }
+ else {
+ $this->rc->output->show_message('acl.deleteerror', 'error');
+ }
+ }
+
+ /**
+ * Handler for ACL list update action (with display mode change)
+ */
+ private function action_list()
+ {
+ if (in_array('acl_advanced_mode', (array)$this->rc->config->get('dont_override'))) {
+ 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));
+ $advanced = $advanced == 'advanced' ? true : false;
+
+ // Save state in user preferences
+ $this->rc->user->save_prefs(array('acl_advanced_mode' => $advanced));
+
+ $out = $this->list_rights();
+
+ $out = preg_replace(array('/^<table[^>]+>/', '/<\/table>$/'), '', $out);
+
+ $this->rc->output->command('acl_list_update', $out);
+ }
+
+ /**
+ * Creates <UL> list with descriptive access rights
+ *
+ * @param array $rights MYRIGHTS result
+ *
+ * @return string HTML content
+ */
+ function acl2text($rights)
+ {
+ if (empty($rights)) {
+ return '';
+ }
+
+ $supported = $this->rights_supported();
+ $list = array();
+ $attrib = array(
+ 'name' => 'rcmyrights',
+ 'style' => 'margin:0; padding:0 15px;',
+ );
+
+ foreach ($supported as $right) {
+ if (in_array($right, $rights)) {
+ $list[] = html::tag('li', null, rcube::Q($this->gettext('acl' . $right)));
+ }
+ }
+
+ if (count($list) == count($supported))
+ return rcube::Q($this->gettext('aclfull'));
+
+ return html::tag('ul', $attrib, implode("\n", $list));
+ }
+
+ /**
+ * Compares two ACLs (according to supported rights)
+ *
+ * @param array $acl1 ACL rights array (or string)
+ * @param array $acl2 ACL rights array (or string)
+ *
+ * @param int Comparision result, 2 - full match, 1 - partial match, 0 - no match
+ */
+ function acl_compare($acl1, $acl2)
+ {
+ if (!is_array($acl1)) $acl1 = str_split($acl1);
+ if (!is_array($acl2)) $acl2 = str_split($acl2);
+
+ $rights = $this->rights_supported();
+
+ $acl1 = array_intersect($acl1, $rights);
+ $acl2 = array_intersect($acl2, $rights);
+ $res = array_intersect($acl1, $acl2);
+
+ $cnt1 = count($res);
+ $cnt2 = count($acl2);
+
+ if ($cnt1 == $cnt2)
+ return 2;
+ else if ($cnt1)
+ return 1;
+ else
+ return 0;
+ }
+
+ /**
+ * Get list of supported access rights (according to RIGHTS capability)
+ *
+ * @return array List of supported access rights abbreviations
+ */
+ function rights_supported()
+ {
+ if ($this->supported !== null) {
+ return $this->supported;
+ }
+
+ $capa = $this->rc->storage->get_capability('RIGHTS');
+
+ if (is_array($capa)) {
+ $rights = strtolower($capa[0]);
+ }
+ else {
+ $rights = 'cd';
+ }
+
+ return $this->supported = str_split('lrswi' . $rights . 'pa');
+ }
+
+ /**
+ * Username realm detection.
+ *
+ * @return string Username realm (domain)
+ */
+ private function get_realm()
+ {
+ // When user enters a username without domain part, realm
+ // allows to add it to the username (and display correct username in the table)
+
+ if (isset($_SESSION['acl_username_realm'])) {
+ return $_SESSION['acl_username_realm'];
+ }
+
+ // find realm in username of logged user (?)
+ list($name, $domain) = explode('@', $_SESSION['username']);
+
+ // Use (always existent) ACL entry on the INBOX for the user to determine
+ // whether or not the user ID in ACL entries need to be qualified and how
+ // they would need to be qualified.
+ if (empty($domain)) {
+ $acl = $this->rc->storage->get_acl('INBOX');
+ if (is_array($acl)) {
+ $regexp = '/^' . preg_quote($_SESSION['username'], '/') . '@(.*)$/';
+ foreach (array_keys($acl) as $name) {
+ if (preg_match($regexp, $name, $matches)) {
+ $domain = $matches[1];
+ break;
+ }
+ }
+ }
+ }
+
+ return $_SESSION['acl_username_realm'] = $domain;
+ }
+
+ /**
+ * Initializes autocomplete LDAP backend
+ */
+ private function init_ldap()
+ {
+ if ($this->ldap) {
+ return $this->ldap->ready;
+ }
+
+ // get LDAP config
+ $config = $this->rc->config->get('acl_users_source');
+
+ if (empty($config)) {
+ return false;
+ }
+
+ // not an array, use configured ldap_public source
+ if (!is_array($config)) {
+ $ldap_config = (array) $this->rc->config->get('ldap_public');
+ $config = $ldap_config[$config];
+ }
+
+ $uid_field = $this->rc->config->get('acl_users_field', 'mail');
+ $filter = $this->rc->config->get('acl_users_filter');
+
+ if (empty($uid_field) || empty($config)) {
+ return false;
+ }
+
+ // get name attribute
+ if (!empty($config['fieldmap'])) {
+ $name_field = $config['fieldmap']['name'];
+ }
+ // ... no fieldmap, use the old method
+ if (empty($name_field)) {
+ $name_field = $config['name_field'];
+ }
+
+ // add UID field to fieldmap, so it will be returned in a record with name
+ $config['fieldmap']['name'] = $name_field;
+ $config['fieldmap']['uid'] = $uid_field;
+
+ // search in UID and name fields
+ $config['search_fields'] = array_values($config['fieldmap']);
+ $config['required_fields'] = array($uid_field);
+
+ // set search filter
+ if ($filter) {
+ $config['filter'] = $filter;
+ }
+
+ // disable vlv
+ $config['vlv'] = false;
+
+ // Initialize LDAP connection
+ $this->ldap = new rcube_ldap($config,
+ $this->rc->config->get('ldap_debug'),
+ $this->rc->config->mail_domain($_SESSION['imap_host']));
+
+ return $this->ldap->ready;
+ }
+
+ /**
+ * Modify user login according to 'login_lc' setting
+ */
+ protected function mod_login($user)
+ {
+ $login_lc = $this->rc->config->get('login_lc');
+
+ if ($login_lc === true || $login_lc == 2) {
+ $user = mb_strtolower($user);
+ }
+ // lowercase domain name
+ else if ($login_lc && strpos($user, '@')) {
+ list($local, $domain) = explode('@', $user);
+ $user = $local . '@' . mb_strtolower($domain);
+ }
+
+ return $user;
+ }
+}
diff --git a/plugins/acl/composer.json b/plugins/acl/composer.json
new file mode 100644
index 0000000..a08d211
--- /dev/null
+++ b/plugins/acl/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "roundcube/acl",
+ "type": "roundcube-plugin",
+ "description": "IMAP Folders Access Control Lists Management (RFC4314, RFC2086).",
+ "license": "GPLv3+",
+ "version": "1.5",
+ "authors": [
+ {
+ "name": "Aleksander Machniak",
+ "email": "alec@alec.pl",
+ "role": "Lead"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "http://plugins.roundcube.net"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.0",
+ "roundcube/plugin-installer": ">=0.1.3"
+ }
+}
diff --git a/plugins/acl/config.inc.php.dist b/plugins/acl/config.inc.php.dist
new file mode 100644
index 0000000..ed70002
--- /dev/null
+++ b/plugins/acl/config.inc.php.dist
@@ -0,0 +1,33 @@
+<?php
+
+// 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;
+
+// LDAP addressbook that would be searched for user names autocomplete.
+// That should be an array refering to the $config['ldap_public'] array key
+// or complete addressbook configuration array.
+$config['acl_users_source'] = '';
+
+// The LDAP attribute which will be used as ACL user identifier
+$config['acl_users_field'] = 'mail';
+
+// The LDAP search filter will be &'d with search queries
+$config['acl_users_filter'] = '';
+
+// Enable LDAP groups in user autocompletion.
+// Note: LDAP addressbook defined in acl_users_source must include groups config
+$config['acl_groups'] = false;
+
+// Prefix added to the group name to build IMAP ACL identifier
+$config['acl_group_prefix'] = 'group:';
+
+// The LDAP attribute (or field name) which will be used as ACL group identifier
+$config['acl_group_field'] = 'name';
+
+// 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');
diff --git a/plugins/acl/localization/ar_SA.inc b/plugins/acl/localization/ar_SA.inc
new file mode 100644
index 0000000..ef6cddb
--- /dev/null
+++ b/plugins/acl/localization/ar_SA.inc
@@ -0,0 +1,91 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'مشاركة';
+$labels['myrights'] = 'حقوق الوصول';
+$labels['username'] = 'مستخدم:';
+$labels['advanced'] = 'وضع متقدم';
+$labels['newuser'] = 'اضافة مدخل';
+$labels['editperms'] = 'تعديل الصلاحيات';
+$labels['actions'] = 'اجراءات حقوق الوصول...';
+$labels['anyone'] = 'كل المستخدمين(اي شخص)';
+$labels['anonymous'] = 'ضيف (مجهول)';
+$labels['identifier'] = 'معرف';
+$labels['acll'] = 'بحث';
+$labels['aclr'] = 'قراءة الرسائل';
+$labels['acls'] = 'ابقاء حالة الزيارة';
+$labels['aclw'] = 'اكتب رمز';
+$labels['acli'] = 'ادخل (نسخ الى)';
+$labels['aclp'] = 'نشر';
+$labels['aclc'] = 'إنشاء مجلدات فرعية';
+$labels['aclk'] = 'إنشاء مجلدات فرعية';
+$labels['acld'] = 'حذف الرسائل';
+$labels['aclt'] = 'حذف الرسائل';
+$labels['acle'] = 'حُذف';
+$labels['aclx'] = 'حذف المجلد';
+$labels['acla'] = 'ادارة';
+$labels['aclfull'] = 'تحكم كامل';
+$labels['aclother'] = 'اخرى';
+$labels['aclread'] = 'قراءة ';
+$labels['aclwrite'] = 'كتابة';
+$labels['acldelete'] = 'حذف';
+$labels['shortacll'] = 'بحث';
+$labels['shortaclr'] = 'قراءة ';
+$labels['shortacls'] = 'ابقاء';
+$labels['shortaclw'] = 'قراءة';
+$labels['shortacli'] = 'ادراج';
+$labels['shortaclp'] = 'نشر';
+$labels['shortaclc'] = 'أنشئ';
+$labels['shortaclk'] = 'أنشئ';
+$labels['shortacld'] = 'حذف';
+$labels['shortaclt'] = 'حذف';
+$labels['shortacle'] = 'حُذف';
+$labels['shortaclx'] = 'حذف المجلد';
+$labels['shortacla'] = 'ادارة';
+$labels['shortaclother'] = 'اخرى';
+$labels['shortaclread'] = 'قراءة ';
+$labels['shortaclwrite'] = 'كتابة';
+$labels['shortacldelete'] = 'حذف';
+$labels['longacll'] = 'المجلد مرئي في القائمة وبالامكان ايضا الاشتراك';
+$labels['longaclr'] = 'من الممكن فتح المجلد للقراءة';
+$labels['longacls'] = 'وسم الزيارة في الرسائل بالامكان تغييره';
+$labels['longaclw'] = 'وسم والكلمات الرئيسية في الرسائل يمكن تغييره, ماعدا الزيارة والحذف ';
+$labels['longacli'] = 'بالامكان كتابة الرسائل ونسخها الى هذا المجلد';
+$labels['longaclp'] = 'بالامكان نشر الرسائل الى هذ المجلد';
+$labels['longaclc'] = 'بالامكان انشاء المجلدات ( او اعادة التسمية ) مباشرة تحت هذا المجلد';
+$labels['longaclk'] = 'بالامكان انشاء المجلدات ( او اعادة التسمية ) مباشرة تحت هذا المجلد';
+$labels['longacld'] = 'حذف وسم الرسائل من الممكن تغييرة';
+$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/ast.inc b/plugins/acl/localization/ast.inc
new file mode 100644
index 0000000..2932d3b
--- /dev/null
+++ b/plugins/acl/localization/ast.inc
@@ -0,0 +1,80 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Compartición';
+$labels['myrights'] = 'Drechos d\'accesu';
+$labels['username'] = 'Usuariu:';
+$labels['advanced'] = 'Mou avanzáu';
+$labels['newuser'] = 'Amestar entrada';
+$labels['editperms'] = 'Editar permisos';
+$labels['actions'] = 'Aición de drechos d\'accesu...';
+$labels['anyone'] = 'Tolos usuarios (toos)';
+$labels['anonymous'] = 'Convidaos (anónimos)';
+$labels['identifier'] = 'Identificador';
+$labels['acll'] = 'Guetar';
+$labels['aclr'] = 'Lleer mensaxes';
+$labels['acls'] = 'Estáu Caltener Vistu';
+$labels['aclw'] = 'Escribir banderes';
+$labels['acli'] = 'Inxertar (copiar a)';
+$labels['aclc'] = 'Crear subcarpetes';
+$labels['aclk'] = 'Crear subcarpetes';
+$labels['acld'] = 'Desaniciar mensaxes';
+$labels['aclt'] = 'Desaniciar mensaxes';
+$labels['acle'] = 'Desanciar';
+$labels['aclx'] = 'Desaniciar carpeta';
+$labels['acla'] = 'Alministrar';
+$labels['aclfull'] = 'Control total';
+$labels['aclother'] = 'Otru';
+$labels['aclread'] = 'Lleer';
+$labels['aclwrite'] = 'Escribir';
+$labels['acldelete'] = 'Desaniciar';
+$labels['shortacll'] = 'Guetar';
+$labels['shortaclr'] = 'Lleer';
+$labels['shortacls'] = 'Caltener';
+$labels['shortaclw'] = 'Escribir';
+$labels['shortacli'] = 'Inxertar';
+$labels['shortaclc'] = 'Crear';
+$labels['shortaclk'] = 'Crear';
+$labels['shortacld'] = 'Desaniciar';
+$labels['shortaclt'] = 'Desaniciar';
+$labels['shortacle'] = 'Desaniciar';
+$labels['shortaclx'] = 'Desaniciu de carpeta';
+$labels['shortacla'] = 'Alministrar';
+$labels['shortaclother'] = 'Otru';
+$labels['shortaclread'] = 'Lleer';
+$labels['shortaclwrite'] = 'Escribir';
+$labels['shortacldelete'] = 'Desaniciar';
+$labels['longacll'] = 'La carpeta ye visible nes llistes y pue soscribise a';
+$labels['longaclr'] = 'La carpeta nun pue abrise pa leer';
+$labels['longaclx'] = 'La carpeta pue desaniciase o renomase';
+$labels['longacla'] = 'Puen camudase los drechos d\'accesu de la carpeta';
+$labels['longaclfull'] = 'Control completu incluyendo l\'alminitración de carpeta';
+$labels['longaclread'] = 'La carpeta pue abrise pa llectura';
+$labels['longaclwrite'] = 'Los mensaxes puen conseñase, escribise o copiase a la carpeta';
+$labels['longacldelete'] = 'Los mensaxes puen desaniciase';
+$labels['longaclother'] = 'Otros drechos d\'accesu';
+$labels['ariasummaryacltable'] = 'Llista de drechos d\'accesu';
+$messages['deleting'] = 'Desaniciando los drechos d\'accesu...';
+$messages['saving'] = 'Guardando los drechos d\'accesu...';
+$messages['updatesuccess'] = 'Camudaos con ésitu los drechos d\'accesu';
+$messages['deletesuccess'] = 'Desaniciaos con ésitu los drechos d\'accesu';
+$messages['createsuccess'] = 'Amestaos con ésitu los drechos d\'accesu';
+$messages['updateerror'] = 'Nun puen anovase los drechos d\'accesu';
+$messages['deleteerror'] = 'Nun puen desaniciase los drechos d\'accesu';
+$messages['createerror'] = 'Nun puen amestase los drechos d\'accesu';
+$messages['deleteconfirm'] = '¿De xuru quies desaniciar los drechos d\'accesu al(a los) usuariu(os) esbilláu(os)?';
+?>
diff --git a/plugins/acl/localization/az_AZ.inc b/plugins/acl/localization/az_AZ.inc
new file mode 100644
index 0000000..9bf23d4
--- /dev/null
+++ b/plugins/acl/localization/az_AZ.inc
@@ -0,0 +1,91 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Paylaşma';
+$labels['myrights'] = 'Giriş hüququ';
+$labels['username'] = 'İstifadəçi:';
+$labels['advanced'] = 'Ekspert rejimi';
+$labels['newuser'] = 'Sahə əlavə et';
+$labels['editperms'] = 'Cavabları redaktə et';
+$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';
+$labels['aclw'] = 'Yazı bayrağı';
+$labels['acli'] = 'Əlavə et (kopyala)';
+$labels['aclp'] = 'Yazı';
+$labels['aclc'] = 'Qovluqaltı yarat';
+$labels['aclk'] = 'Qovluqaltı yarat';
+$labels['acld'] = 'Məktubu sil';
+$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';
+$labels['shortaclw'] = 'Yaz';
+$labels['shortacli'] = 'Yerləşdir';
+$labels['shortaclp'] = 'Yazı';
+$labels['shortaclc'] = 'Yarat';
+$labels['shortaclk'] = 'Yarat';
+$labels['shortacld'] = 'Sil';
+$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';
+$labels['longaclw'] = 'Oxunulan və silinənlərdən başqa flaqlar və açar sözləri dəyişdirilə bilər';
+$labels['longacli'] = 'Məktub qovluğa yazıla və ya saxlanıla bilər';
+$labels['longaclp'] = 'Məktub bu qovluğa göndərilə bilər';
+$labels['longaclc'] = 'Qovluqaltları bu qovluqda yaradıla və ya adı dəyişdirilə bilər';
+$labels['longaclk'] = 'Qovluqaltları bu qovluqda yaradıla və ya adı dəyişdirilə bilər';
+$labels['longacld'] = 'Silinən flaqı dəyişdirilə bilər';
+$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['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/be_BE.inc b/plugins/acl/localization/be_BE.inc
new file mode 100644
index 0000000..4aac05b
--- /dev/null
+++ b/plugins/acl/localization/be_BE.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Сумесны доступ';
+$labels['myrights'] = 'Правы доступу';
+$labels['username'] = 'Карыстальнік:';
+$labels['advanced'] = 'Пашыраны рэжым';
+$labels['newuser'] = 'Дадаць запіс';
+$labels['editperms'] = 'Рэдагаваць правы доступу';
+$labels['actions'] = 'Дзеянні з правамі доступу...';
+$labels['anyone'] = 'Усе карыстальнікі (любыя)';
+$labels['anonymous'] = 'Госці (ананімныя)';
+$labels['identifier'] = 'Ідэнтыфікатар';
+$labels['acll'] = 'Пошук';
+$labels['aclr'] = 'Прачытаць паведамленні';
+$labels['acls'] = 'Пакінуць стан Бачанае';
+$labels['aclw'] = 'Флагі запісвання';
+$labels['acli'] = 'Уставіць (капіраваць у)';
+$labels['aclp'] = 'Адправіць';
+$labels['aclc'] = 'Стварыць укладзеныя папкі';
+$labels['aclk'] = 'Стварыць укладзеныя папкі';
+$labels['acld'] = 'Выдаліць паведамленні';
+$labels['aclt'] = 'Выдаліць паведамленні';
+$labels['acle'] = 'Знішчыць паведамленні';
+$labels['aclx'] = 'Выдаліць папку';
+$labels['acla'] = 'Адміністраваць';
+$labels['acln'] = 'Анатаваць паведамленні';
+$labels['aclfull'] = 'Поўны доступ';
+$labels['aclother'] = 'Іншае';
+$labels['aclread'] = 'Чытанне';
+$labels['aclwrite'] = 'Запіс';
+$labels['acldelete'] = 'Выдаленне';
+$labels['shortacll'] = 'Пошук';
+$labels['shortaclr'] = 'Чытанне';
+$labels['shortacls'] = 'Пакінуць';
+$labels['shortaclw'] = 'Запісванне';
+$labels['shortacli'] = 'Даданне';
+$labels['shortaclp'] = 'Адпраўленне';
+$labels['shortaclc'] = 'Стварэнне';
+$labels['shortaclk'] = 'Стварэнне';
+$labels['shortacld'] = 'Выдаленне';
+$labels['shortaclt'] = 'Выдаленне';
+$labels['shortacle'] = 'Знішчэнне';
+$labels['shortaclx'] = 'Выдаленне папкі';
+$labels['shortacla'] = 'Адміністраванне';
+$labels['shortacln'] = 'Анатаваць';
+$labels['shortaclother'] = 'Іншае';
+$labels['shortaclread'] = 'Чытанне';
+$labels['shortaclwrite'] = 'Запіс';
+$labels['shortacldelete'] = 'Выдаленне';
+$labels['longacll'] = 'Папку можна пабачыць у спісах і падпісацца на яе';
+$labels['longaclr'] = 'Папку можна адкрыць для чытання';
+$labels['longacls'] = 'На паведамленнях можна пераключаць флаг Бачанае';
+$labels['longaclw'] = 'На паведамленнях можна мяняць ключавыя словы і пераключаць флагі, апроч Бачанае і Выдаленае';
+$labels['longacli'] = 'Паведамленні могуць быць запісаныя альбо скапіяваныя ў папку';
+$labels['longaclp'] = 'Паведамленні могуць быць адпраўленыя ў гэтую папку';
+$labels['longaclc'] = 'Папкі могуць быць створаны (альбо перайменаваны) наўпрост пад гэтай папкай';
+$labels['longaclk'] = 'Папкі могуць быць створаны (альбо перайменаваны) наўпрост пад гэтай папкай';
+$labels['longacld'] = 'На паведамленнях можна пераключаць флаг Выдаленае';
+$labels['longaclt'] = 'На паведамленнях можна пераключаць флаг Выдаленае';
+$labels['longacle'] = 'Паведамленні могуць быць знішчаны';
+$labels['longaclx'] = 'Папку можна выдаліць альбо перайменаваць';
+$labels['longacla'] = 'Правы доступу на папку можна змяняць';
+$labels['longacln'] = 'Анатацыі паведамленняў (супольныя метаданыя) можна змяняць';
+$labels['longaclfull'] = 'Поўны доступ, уключна з адмінстраваннем папкі';
+$labels['longaclread'] = 'Папку можна адкрыць для чытання';
+$labels['longaclwrite'] = 'Паведамленні могуць быць пазначаныя, запісаныя альбо скапіяваныя ў папку';
+$labels['longacldelete'] = 'Паведамленні можна выдаліць';
+$labels['longaclother'] = 'Іншыя правы доступу';
+$labels['ariasummaryacltable'] = 'Спіс правоў доступу';
+$labels['arialabelaclactions'] = 'Спіс дзеянняў';
+$labels['arialabelaclform'] = 'Форма правоў доступу';
+$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/bg_BG.inc b/plugins/acl/localization/bg_BG.inc
new file mode 100644
index 0000000..f38cc9e
--- /dev/null
+++ b/plugins/acl/localization/bg_BG.inc
@@ -0,0 +1,94 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Споделяне';
+$labels['myrights'] = 'Права за достъп';
+$labels['username'] = 'Потребител:';
+$labels['advanced'] = 'Разширен режим';
+$labels['newuser'] = 'Добавяне на запис';
+$labels['editperms'] = 'Редакция на права';
+$labels['actions'] = 'Действия на права за достъп...';
+$labels['anyone'] = 'Всички потребители (който и да е)';
+$labels['anonymous'] = 'Гости (анонимни)';
+$labels['identifier'] = 'Индентификатор';
+$labels['acll'] = 'Претърсване';
+$labels['aclr'] = 'Четене на писма';
+$labels['acls'] = 'Запазване на Видяно';
+$labels['aclw'] = 'Записване на флагове';
+$labels['acli'] = 'Вмъкване (Копиране в)';
+$labels['aclp'] = 'Изпращане';
+$labels['aclc'] = 'Създаване на подпапки';
+$labels['aclk'] = 'Създаване на подпапки';
+$labels['acld'] = 'Изтриване на писма';
+$labels['aclt'] = 'Изтриване на писмо';
+$labels['acle'] = 'Заличаване';
+$labels['aclx'] = 'Изтриване на папка';
+$labels['acla'] = 'Администриране';
+$labels['acln'] = 'Анотиране на писма';
+$labels['aclfull'] = 'Пълен контрол';
+$labels['aclother'] = 'Други';
+$labels['aclread'] = 'Четене';
+$labels['aclwrite'] = 'Писане';
+$labels['acldelete'] = 'Изтриване';
+$labels['shortacll'] = 'Търсене';
+$labels['shortaclr'] = 'Четене';
+$labels['shortacls'] = 'Запазване';
+$labels['shortaclw'] = 'Писане';
+$labels['shortacli'] = 'Вмъкване';
+$labels['shortaclp'] = 'Изпращане';
+$labels['shortaclc'] = 'Създаване';
+$labels['shortaclk'] = 'Създаване';
+$labels['shortacld'] = 'Изтриване';
+$labels['shortaclt'] = 'Изтриване';
+$labels['shortacle'] = 'Заличаване';
+$labels['shortaclx'] = 'Изтриване на папка';
+$labels['shortacla'] = 'Администриране';
+$labels['shortacln'] = 'Анотирай';
+$labels['shortaclother'] = 'Други';
+$labels['shortaclread'] = 'Четене';
+$labels['shortaclwrite'] = 'Писане';
+$labels['shortacldelete'] = 'Изтриване';
+$labels['longacll'] = 'Папката е видима в списъците и може да се абонирате';
+$labels['longaclr'] = 'Папката може да бъде отворена за четене';
+$labels['longacls'] = 'Флаг Видяно може да бъде променен.';
+$labels['longaclw'] = 'Флаговете и кл. думи за писмата могат да бъдат променяни, без Видяно и Изтрито.';
+$labels['longacli'] = 'Писмата могат да бъдат писани или копирани към папката.';
+$labels['longaclp'] = 'Писмата могат да бъдат писани в папката';
+$labels['longaclc'] = 'Папките могат да бъдат създавани (или преименувани) директно в тази папка';
+$labels['longaclk'] = 'Папките могат да бъдат създавани (или преименувани) в тази основна папка';
+$labels['longacld'] = 'Флагът Изтрито може да бъде променян';
+$labels['longaclt'] = 'Флагът Изтрито може да бъде променян';
+$labels['longacle'] = 'Писмата могат да бъдат заличавани';
+$labels['longaclx'] = 'Папката може да бъде изтривана или преименувана';
+$labels['longacla'] = 'Правата за достъп до папката могат да бъдат променяни';
+$labels['longacln'] = 'Могат да се променят споделените метаданни (антоции) на писмата';
+$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/br.inc b/plugins/acl/localization/br.inc
new file mode 100644
index 0000000..b3ae1c7
--- /dev/null
+++ b/plugins/acl/localization/br.inc
@@ -0,0 +1,48 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Rannañ';
+$labels['myrights'] = 'Aotreoù mont e-barzh';
+$labels['username'] = 'Implijer:';
+$labels['newuser'] = 'Ouzhpenan un enporzh';
+$labels['actions'] = 'Aotreoù mont e-barzh';
+$labels['anyone'] = 'An holl implijerien (neb hini)';
+$labels['anonymous'] = 'pedet (dizanv)';
+$labels['aclr'] = 'Kemennadoù lennet';
+$labels['aclc'] = 'Krouiñ isrenkelloù';
+$labels['aclk'] = 'Krouiñ isrenkelloù';
+$labels['acld'] = 'Dilemel kemennadoù';
+$labels['aclt'] = 'Dilemel kemennadoù';
+$labels['aclx'] = 'Dilemel ar renkell';
+$labels['aclread'] = 'Lennet';
+$labels['aclwrite'] = 'Skrivañ';
+$labels['acldelete'] = 'Dilemel';
+$labels['shortaclr'] = 'Lenn';
+$labels['shortacls'] = 'Gwarezin';
+$labels['shortaclw'] = 'Skrivañ';
+$labels['shortacli'] = 'Enlakaat';
+$labels['shortaclc'] = 'Krouiñ';
+$labels['shortaclk'] = 'Krouiñ';
+$labels['shortacld'] = 'Dilemel';
+$labels['shortaclt'] = 'Dilemel';
+$labels['shortacle'] = 'Dilemel pep tra';
+$labels['shortaclx'] = 'Dilemel ar renkell';
+$labels['shortaclother'] = 'traoù all';
+$labels['shortaclread'] = 'Lenn';
+$labels['shortaclwrite'] = 'Skrivañ';
+$labels['shortacldelete'] = 'Dilemel';
+?>
diff --git a/plugins/acl/localization/bs_BA.inc b/plugins/acl/localization/bs_BA.inc
new file mode 100644
index 0000000..371dd17
--- /dev/null
+++ b/plugins/acl/localization/bs_BA.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Razmjena';
+$labels['myrights'] = 'Prava pristupa';
+$labels['username'] = 'Korisnik:';
+$labels['advanced'] = 'Napredni mod';
+$labels['newuser'] = 'Dodaj unos';
+$labels['editperms'] = 'Uredi dozvole';
+$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';
+$labels['aclw'] = 'Oznake za pisanje';
+$labels['acli'] = 'Umetni (Kopiraj u)';
+$labels['aclp'] = 'Objavi';
+$labels['aclc'] = 'Napravi podfoldere';
+$labels['aclk'] = 'Napravi podfoldere';
+$labels['acld'] = 'Obriši poruke';
+$labels['aclt'] = 'Obriši poruke';
+$labels['acle'] = 'Izbriši';
+$labels['aclx'] = 'Obriši folder';
+$labels['acla'] = 'Administracija';
+$labels['acln'] = 'Obilježi poruke';
+$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';
+$labels['shortaclw'] = 'Piši';
+$labels['shortacli'] = 'Umetni';
+$labels['shortaclp'] = 'Objavi';
+$labels['shortaclc'] = 'Kreiraj';
+$labels['shortaclk'] = 'Kreiraj';
+$labels['shortacld'] = 'Obriši';
+$labels['shortaclt'] = 'Obriši';
+$labels['shortacle'] = 'Izbriši';
+$labels['shortaclx'] = 'Brisanje foldera';
+$labels['shortacla'] = 'Administracija';
+$labels['shortacln'] = 'Obilježli';
+$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';
+$labels['longaclw'] = 'Oznake za poruke i ključne riječi je moguće promijeniti, osim za pregledano i obrisano';
+$labels['longacli'] = 'Moguće je kopirati i zapisivati poruke u folder';
+$labels['longaclp'] = 'Moguće je objavljivati poruke u ovaj folder';
+$labels['longaclc'] = 'Moguće je kreirati (ili preimenovati) foldere diretno ispod ovog foldera';
+$labels['longaclk'] = 'Moguće je kreirati (ili preimenovati) foldere diretno ispod ovog foldera';
+$labels['longacld'] = 'Oznaka za obrisane poruke se može mijenjati';
+$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['longacln'] = 'Dijeljeni podaci (obilježavanja) poruka mogu se mijenjati';
+$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';
+$labels['longaclother'] = 'Ostala prava pristupa';
+$labels['ariasummaryacltable'] = 'Lista prava pristupa';
+$labels['arialabelaclactions'] = 'Lista akcija';
+$labels['arialabelaclform'] = 'Obrazac za prava pristupa';
+$messages['deleting'] = 'Brišem prava pristupa...';
+$messages['saving'] = 'Snimam prava pristupa...';
+$messages['updatesuccess'] = 'Prava pristupa su uspješno promijenjena';
+$messages['deletesuccess'] = 'Prava pristupa su uspješno obrisana';
+$messages['createsuccess'] = 'Prava pristupa su uspješno dodana';
+$messages['updateerror'] = 'Nije moguće ažurirati prava pristupa';
+$messages['deleteerror'] = 'Nije moguće obrisati prava pristupa';
+$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
new file mode 100644
index 0000000..b9df120
--- /dev/null
+++ b/plugins/acl/localization/ca_ES.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Comparteix';
+$labels['myrights'] = 'Permisos d\'accés';
+$labels['username'] = 'Usuari:';
+$labels['advanced'] = 'Mode Avançat';
+$labels['newuser'] = 'Afegeix una entrada';
+$labels['editperms'] = 'Editar Permisos';
+$labels['actions'] = 'Accions dels permisos d\'accés...';
+$labels['anyone'] = 'Tots els usuaris (qualsevol)';
+$labels['anonymous'] = 'Convidats (anònim)';
+$labels['identifier'] = 'Identificador';
+$labels['acll'] = 'Cerca';
+$labels['aclr'] = 'Llegeix missatges';
+$labels['acls'] = 'Conserva\'l com a llegit';
+$labels['aclw'] = 'Marques d\'escriptura';
+$labels['acli'] = 'Insereix (Copia dins)';
+$labels['aclp'] = 'Envia l\'entrada';
+$labels['aclc'] = 'Crea subcarpetes';
+$labels['aclk'] = 'Crea subcarpetes';
+$labels['acld'] = 'Suprimeix missatges';
+$labels['aclt'] = 'Suprimeix missatges';
+$labels['acle'] = 'Buida';
+$labels['aclx'] = 'Suprimeix carpeta';
+$labels['acla'] = 'Administra';
+$labels['acln'] = 'Anota missatges';
+$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';
+$labels['shortaclw'] = 'Escriptura';
+$labels['shortacli'] = 'Insereix';
+$labels['shortaclp'] = 'Envia l\'entrada';
+$labels['shortaclc'] = 'Crea';
+$labels['shortaclk'] = 'Crea';
+$labels['shortacld'] = 'Suprimeix';
+$labels['shortaclt'] = 'Suprimeix';
+$labels['shortacle'] = 'Buida';
+$labels['shortaclx'] = 'Suprimeix carpeta';
+$labels['shortacla'] = 'Administra';
+$labels['shortacln'] = 'Anota';
+$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';
+$labels['longaclw'] = 'Les marques i les paraules clau dels missatges poden ser canviats, excepte els Llegit i Suprimit';
+$labels['longacli'] = 'Els missatges poden ser escrits i copiats a la carpeta';
+$labels['longaclp'] = 'Els missatges poden ser enviats a aquesta carpeta';
+$labels['longaclc'] = 'Es poden crear (or reanomenar) carpetes directament sota aquesta carpeta';
+$labels['longaclk'] = 'Es poden crear (or reanomenar) carpetes directament sota aquesta carpeta';
+$labels['longacld'] = 'Els missatges amb l\'indicador Suprimit poden ser canviats';
+$labels['longaclt'] = 'Els missatges amb l\'indicador Suprimit poden ser canviats';
+$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['longacln'] = 'Les metadades compartides dels missatges (anotacions) poden ser canviades';
+$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';
+$labels['longaclother'] = 'Altres drets d\'accés';
+$labels['ariasummaryacltable'] = 'Llista els drets d\'accés';
+$labels['arialabelaclactions'] = 'Llista les accions';
+$labels['arialabelaclform'] = 'Formulari de drets d\'accés';
+$messages['deleting'] = 'S\'estan suprimint els permisos d\'accés...';
+$messages['saving'] = 'S\'estan desant els permisos d\'accés...';
+$messages['updatesuccess'] = 'Els permisos d\'accés han estat canviats correctament';
+$messages['deletesuccess'] = 'Els permisos d\'accés han estat suprimits correctament';
+$messages['createsuccess'] = 'Els permisos d\'accés han estat afegits correctament';
+$messages['updateerror'] = 'No s\'han pogut actualitzar els permisos d\'accés';
+$messages['deleteerror'] = 'No s\'han pogut suprimir els permisos d\'accés';
+$messages['createerror'] = 'No s\'han 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
new file mode 100644
index 0000000..d91795f
--- /dev/null
+++ b/plugins/acl/localization/cs_CZ.inc
@@ -0,0 +1,92 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Sdílení';
+$labels['myrights'] = 'Přístupová práva';
+$labels['username'] = 'Uživatel:';
+$labels['advanced'] = 'Pokročilý režim';
+$labels['newuser'] = 'Přidat záznam';
+$labels['editperms'] = 'Upravit oprávnění';
+$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';
+$labels['aclw'] = 'Zapsat označení';
+$labels['acli'] = 'Vložit (Kopírovat do)';
+$labels['aclp'] = 'Odeslat';
+$labels['aclc'] = 'Vytvořit podsložky';
+$labels['aclk'] = 'Vytvořit podsložky';
+$labels['acld'] = 'Smazat zprávy';
+$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';
+$labels['shortaclw'] = 'Zapsat';
+$labels['shortacli'] = 'Vložit';
+$labels['shortaclp'] = 'Odeslat';
+$labels['shortaclc'] = 'Vytvořit';
+$labels['shortaclk'] = 'Vytvořit';
+$labels['shortacld'] = 'Smazat';
+$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['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['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';
+$labels['ariasummaryacltable'] = 'Seznam oprávnění';
+$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['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!';
+?>
diff --git a/plugins/acl/localization/cy_GB.inc b/plugins/acl/localization/cy_GB.inc
new file mode 100644
index 0000000..816d633
--- /dev/null
+++ b/plugins/acl/localization/cy_GB.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Rhannu';
+$labels['myrights'] = 'Hawliau Mynediad';
+$labels['username'] = 'Defnyddiwr:';
+$labels['advanced'] = 'Modd uwch';
+$labels['newuser'] = 'Ychwanegu cofnod';
+$labels['editperms'] = 'Golygu hawliau';
+$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';
+$labels['aclw'] = 'Fflagiau ysgrifennu';
+$labels['acli'] = 'Mewnosod (Copïo fewn i)';
+$labels['aclp'] = 'Postio';
+$labels['aclc'] = 'Creu is-ffolderi';
+$labels['aclk'] = 'Creu is-ffolderi';
+$labels['acld'] = 'Dileu negeseuon';
+$labels['aclt'] = 'Dileu negeseuon';
+$labels['acle'] = 'Dileu';
+$labels['aclx'] = 'Dileu ffolder';
+$labels['acla'] = 'Gweinyddu';
+$labels['acln'] = 'Anodi negeseuon';
+$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';
+$labels['shortaclw'] = 'Ysgrifennu';
+$labels['shortacli'] = 'Mewnosod';
+$labels['shortaclp'] = 'Postio';
+$labels['shortaclc'] = 'Creu';
+$labels['shortaclk'] = 'Creu';
+$labels['shortacld'] = 'Dileu';
+$labels['shortaclt'] = 'Dileu';
+$labels['shortacle'] = 'Dileu';
+$labels['shortaclx'] = 'Dileu ffolder';
+$labels['shortacla'] = 'Gweinyddu';
+$labels['shortacln'] = 'Anodi';
+$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';
+$labels['longaclw'] = 'Gellir newid y fflagiau negeseuon a allweddeiriau, heblaw Gwelwyd a Dilëuwyd';
+$labels['longacli'] = 'Gellir ysgrifennu neu copïo negeseuon i\'r ffolder';
+$labels['longaclp'] = 'Gellir postio negeseuon i\'r ffolder hwn';
+$labels['longaclc'] = 'Gellir creu (neu ail-enwi) ffolderi yn uniongyrchol o dan y ffolder hwn';
+$labels['longaclk'] = 'Gellir creu (neu ail-enwi) ffolderi yn uniongyrchol o dan y ffolder hwn';
+$labels['longacld'] = 'Gellir newid fflag neges Dileu';
+$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['longacln'] = 'Gellir newid negeseuon metadata (anodiadau) a rannwyd';
+$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';
+$labels['longaclother'] = 'Hawliau mynediad eraill';
+$labels['ariasummaryacltable'] = 'Rhestr o hawliau mynediad';
+$labels['arialabelaclactions'] = 'Rhestru gweithrediadau';
+$labels['arialabelaclform'] = 'Ffurflen hawliau mynediad';
+$messages['deleting'] = 'Yn dileu hawliau mynediad...';
+$messages['saving'] = 'Yn cadw hawliau mynediad...';
+$messages['updatesuccess'] = 'Wedi newid hawliau mynediad yn llwyddiannus';
+$messages['deletesuccess'] = 'Wedi dileu hawliau mynediad yn llwyddiannus';
+$messages['createsuccess'] = 'Wedi ychwanegu hawliau mynediad yn llwyddiannus';
+$messages['updateerror'] = 'Methwyd diweddaru hawliau mynediad';
+$messages['deleteerror'] = 'Methwyd dileu hawliau mynediad';
+$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
new file mode 100644
index 0000000..cbb0770
--- /dev/null
+++ b/plugins/acl/localization/da_DK.inc
@@ -0,0 +1,93 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Deling';
+$labels['myrights'] = 'Adgangrettigheder';
+$labels['username'] = 'Bruger:';
+$labels['advanced'] = 'Avanceret tilstand';
+$labels['newuser'] = 'Tilføj indgang';
+$labels['editperms'] = 'Rediger tilladelser';
+$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';
+$labels['aclw'] = 'Skriv flag';
+$labels['acli'] = 'Indsæt (kopier ind i)';
+$labels['aclp'] = 'Send';
+$labels['aclc'] = 'Opret undermapper';
+$labels['aclk'] = 'Opret undermapper';
+$labels['acld'] = 'Slet beskeder';
+$labels['aclt'] = 'Slet beskeder';
+$labels['acle'] = 'Udslet';
+$labels['aclx'] = 'Slet mappe';
+$labels['acla'] = 'Administrer';
+$labels['acln'] = 'Annoter beskeder';
+$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';
+$labels['shortaclw'] = 'Skrive';
+$labels['shortacli'] = 'Indsæt';
+$labels['shortaclp'] = 'Send';
+$labels['shortaclc'] = 'Opret';
+$labels['shortaclk'] = 'Opret';
+$labels['shortacld'] = 'Slet';
+$labels['shortaclt'] = 'Slet';
+$labels['shortacle'] = 'Udslet';
+$labels['shortaclx'] = 'Slet mappe';
+$labels['shortacla'] = 'Administrer';
+$labels['shortacln'] = 'Annoter';
+$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';
+$labels['longaclw'] = 'Beskeders flag og nøgleord kan ændres med undtagelse af Læst og Slettet';
+$labels['longacli'] = 'Beskeder kan blive skrevet eller kopieret til mappen';
+$labels['longaclp'] = 'Beskeder kan sendes til denne mappe';
+$labels['longaclc'] = 'Mapper kan blive oprettet (eller omdøbt) direkte under denne mappe';
+$labels['longaclk'] = 'Mapper kan blive oprettet (eller omdøbt) direkte under denne mappe';
+$labels['longacld'] = 'Beskeders Slet-flag kan ændres';
+$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['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
new file mode 100644
index 0000000..9e4f3b2
--- /dev/null
+++ b/plugins/acl/localization/de_CH.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Freigabe';
+$labels['myrights'] = 'Zugriffsrechte';
+$labels['username'] = 'Benutzer:';
+$labels['advanced'] = 'Expertenmodus';
+$labels['newuser'] = 'Eintrag hinzufügen';
+$labels['editperms'] = 'Zugriffsrechte bearbeiten';
+$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';
+$labels['aclw'] = 'Flags schreiben';
+$labels['acli'] = 'Nachrichten hinzufügen';
+$labels['aclp'] = 'Senden an';
+$labels['aclc'] = 'Unterordner erstellen';
+$labels['aclk'] = 'Unterordner erstellen';
+$labels['acld'] = 'Nachrichten als gelöscht markieren';
+$labels['aclt'] = 'Nachrichten als gelöscht markieren';
+$labels['acle'] = 'Endgültig löschen';
+$labels['aclx'] = 'Ordner löschen';
+$labels['acla'] = 'Verwalten';
+$labels['acln'] = 'Nachrichten auszeichnen';
+$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';
+$labels['shortaclw'] = 'Schreiben';
+$labels['shortacli'] = 'Hinzufügen';
+$labels['shortaclp'] = 'Senden an';
+$labels['shortaclc'] = 'Erstellen';
+$labels['shortaclk'] = 'Erstellen';
+$labels['shortacld'] = 'Löschen';
+$labels['shortaclt'] = 'Löschen';
+$labels['shortacle'] = 'Endgültig löschen';
+$labels['shortaclx'] = 'Ordner löschen';
+$labels['shortacla'] = 'Verwalten';
+$labels['shortacln'] = 'Auszeichnen';
+$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';
+$labels['longaclw'] = 'Alle Nachrichten-Flags und Schlüsselwörter ausser "Gelesen" und "Gelöscht" können geändert werden';
+$labels['longacli'] = 'Nachrichten können in diesen Ordner kopiert oder verschoben werden';
+$labels['longaclp'] = 'Nachrichten können an diesen Ordner gesendet werden';
+$labels['longaclc'] = 'Unterordner können in diesem Ordner erstellt oder umbenannt werden';
+$labels['longaclk'] = 'Unterordner können in diesem Ordner erstellt oder umbenannt werden';
+$labels['longacld'] = 'Der "gelöscht" Status von Nachrichten kann geändert werden';
+$labels['longaclt'] = 'Der "gelöscht" Status von Nachrichten kann geändert werden';
+$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['longacln'] = 'Geteilte Nachrichten-Auszeichnungen (Metadaten) können nicht 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';
+$labels['longaclother'] = 'Andere Zugriffsrechte ';
+$labels['ariasummaryacltable'] = 'Liste der Zugriffsrechte';
+$labels['arialabelaclactions'] = 'Listen-Aktionen';
+$labels['arialabelaclform'] = 'Zugriffsrechte (Formular)';
+$messages['deleting'] = 'Zugriffsrechte werden entzogen...';
+$messages['saving'] = 'Zugriffsrechte werden gespeichert...';
+$messages['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert';
+$messages['deletesuccess'] = 'Zugriffsrechte erfolgreich entzogen';
+$messages['createsuccess'] = 'Zugriffsrechte erfolgreich hinzugefügt';
+$messages['updateerror'] = 'Zugriffsrechte konnten nicht geändert werden';
+$messages['deleteerror'] = 'Zugriffsrechte konnten nicht entzogen werden';
+$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
new file mode 100644
index 0000000..01c3300
--- /dev/null
+++ b/plugins/acl/localization/de_DE.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Freigabe';
+$labels['myrights'] = 'Zugriffsrechte';
+$labels['username'] = 'Benutzer:';
+$labels['advanced'] = 'Erweiterter Modus';
+$labels['newuser'] = 'Eintrag hinzufügen';
+$labels['editperms'] = 'Zugriffsrechte bearbeiten';
+$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';
+$labels['aclw'] = 'Flags schreiben';
+$labels['acli'] = 'Nachrichten hinzufügen';
+$labels['aclp'] = 'Senden an';
+$labels['aclc'] = 'Unterordner erstellen';
+$labels['aclk'] = 'Unterordner erstellen';
+$labels['acld'] = 'Nachrichten als gelöscht markieren';
+$labels['aclt'] = 'Nachrichten als gelöscht markieren';
+$labels['acle'] = 'Endgültig löschen';
+$labels['aclx'] = 'Ordner löschen';
+$labels['acla'] = 'Verwalten';
+$labels['acln'] = 'Nachrichten kommentieren';
+$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';
+$labels['shortaclw'] = 'Schreiben';
+$labels['shortacli'] = 'Hinzufügen';
+$labels['shortaclp'] = 'Senden an';
+$labels['shortaclc'] = 'Erstellen';
+$labels['shortaclk'] = 'Erstellen';
+$labels['shortacld'] = 'Löschen';
+$labels['shortaclt'] = 'Löschen';
+$labels['shortacle'] = 'Endgültig löschen';
+$labels['shortaclx'] = 'Ordner löschen';
+$labels['shortacla'] = 'Verwalten';
+$labels['shortacln'] = 'Kommentieren';
+$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';
+$labels['longaclw'] = 'Alle Nachrichten-Flags und Schlüsselwörter außer "Gelesen" und "Gelöscht" können geändert werden';
+$labels['longacli'] = 'Nachrichten können in diesen Ordner kopiert oder verschoben werden';
+$labels['longaclp'] = 'Nachrichten können an diesen Ordner gesendet werden';
+$labels['longaclc'] = 'Unterordner können in diesem Ordner erstellt oder umbenannt werden';
+$labels['longaclk'] = 'Unterordner können in diesem Ordner erstellt oder umbenannt werden';
+$labels['longacld'] = 'Der "gelöscht" Status von Nachrichten kann geändert werden';
+$labels['longaclt'] = 'Der "gelöscht" Status von Nachrichten kann geändert werden';
+$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['longacln'] = 'Nachrichten Metadaten (Vermerke) 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';
+$labels['longaclother'] = 'Andere Zugriffsrechte';
+$labels['ariasummaryacltable'] = 'Liste von Zugriffsrechten';
+$labels['arialabelaclactions'] = 'Aktionen anzeigen';
+$labels['arialabelaclform'] = 'Zugriffsrechteformular';
+$messages['deleting'] = 'Zugriffsrechte werden entzogen...';
+$messages['saving'] = 'Zugriffsrechte werden gewährt...';
+$messages['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert';
+$messages['deletesuccess'] = 'Zugriffsrechte erfolgreich entzogen';
+$messages['createsuccess'] = 'Zugriffsrechte erfolgreich gewährt';
+$messages['updateerror'] = 'Zugriffsrechte konnten nicht geändert werden';
+$messages['deleteerror'] = 'Zugriffsrechte konnten nicht entzogen werden';
+$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/el_GR.inc b/plugins/acl/localization/el_GR.inc
new file mode 100644
index 0000000..0ba6346
--- /dev/null
+++ b/plugins/acl/localization/el_GR.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Κοινή χρήση';
+$labels['myrights'] = 'Δικαιώματα Πρόσβασης ';
+$labels['username'] = 'Χρήστης:';
+$labels['advanced'] = 'Προηγμένη λειτουργία';
+$labels['newuser'] = 'Προσθήκη καταχώρησης ';
+$labels['editperms'] = 'Μεταβολή δικαιωμάτων';
+$labels['actions'] = 'Ενέργειες δικαιωμάτων πρόσβασης...';
+$labels['anyone'] = 'Όλοι οι χρήστες (οποιοσδήποτε)';
+$labels['anonymous'] = 'Επισκέπτες (ανώνυμοι)';
+$labels['identifier'] = 'Αναγνωριστικό';
+$labels['acll'] = 'Αναζήτηση';
+$labels['aclr'] = 'Διαβάστε τα μηνύματα ';
+$labels['acls'] = 'Διατήρηση κατάστασης ανάγνωσης';
+$labels['aclw'] = 'Ρυθμίσεις εγγραφής';
+$labels['acli'] = 'Εισάγωγη (Αντιγραφή σε) ';
+$labels['aclp'] = 'Καταχώρηση';
+$labels['aclc'] = 'Δημιουργία υποφακέλων';
+$labels['aclk'] = 'Δημιουργία υποφακέλων';
+$labels['acld'] = 'Διαγραφή μηνυμάτων';
+$labels['aclt'] = 'Διαγραφή μηνυμάτων';
+$labels['acle'] = 'Απαλοιφή';
+$labels['aclx'] = 'Διαγραφή φακέλου';
+$labels['acla'] = 'Διαχείριση';
+$labels['acln'] = 'Προσθήκη υπομνήματος στα μηνύματα';
+$labels['aclfull'] = 'Πλήρης πρόσβαση';
+$labels['aclother'] = 'Άλλο';
+$labels['aclread'] = 'Ανάγνωση';
+$labels['aclwrite'] = 'Εγγραφή';
+$labels['acldelete'] = 'Διαγραφή';
+$labels['shortacll'] = 'Αναζήτηση';
+$labels['shortaclr'] = 'Ανάγνωση';
+$labels['shortacls'] = 'Τήρηση';
+$labels['shortaclw'] = 'Εγγραφή';
+$labels['shortacli'] = 'Εισαγωγή';
+$labels['shortaclp'] = 'Καταχώρηση';
+$labels['shortaclc'] = 'Δημιουργία';
+$labels['shortaclk'] = 'Δημιουργία';
+$labels['shortacld'] = 'Διαγραφή';
+$labels['shortaclt'] = 'Διαγραφή';
+$labels['shortacle'] = 'Απαλοιφή';
+$labels['shortaclx'] = 'Διαγραφή φακέλου';
+$labels['shortacla'] = 'Διαχείριση';
+$labels['shortacln'] = 'Προσθήκη υπομνήματος';
+$labels['shortaclother'] = 'Άλλο';
+$labels['shortaclread'] = 'Ανάγνωση';
+$labels['shortaclwrite'] = 'Εγγραφή';
+$labels['shortacldelete'] = 'Διαγραφή';
+$labels['longacll'] = 'Ο φάκελος είναι ορατός στους καταλόγους και μπορείτε να εγγραφείτε σε αυτόν';
+$labels['longaclr'] = 'Ο φάκελος μπορεί να προσπελαστεί για ανάγνωση ';
+$labels['longacls'] = 'Η κατάσταση ανάγνωσης μηνυμάτων μπορεί να αλλαχθεί';
+$labels['longaclw'] = 'Μπορούν να μεταβληθούν οι καταστάσεις μηνυμάτων και οι λέξεις κλειδιά, εκτός από τις καταστάσεις Ανάγνωσης και Διαγραφής';
+$labels['longacli'] = 'Τα μηνύματα μπορούν να εγγραφούν ή να αντιγραφούν στον φάκελο ';
+$labels['longaclp'] = 'Τα μηνύματα μπορούν να τοποθετηθούν σε αυτόν το φάκελο ';
+$labels['longaclc'] = 'Μπορούν να δημιουργηθούν (ή να μετονομαστούν) φάκελοι ακριβώς κάτω από αυτόν τον φάκελο ';
+$labels['longaclk'] = 'Μπορούν να δημιουργηθούν (ή να μετονομαστούν) φάκελοι ακριβώς κάτω από αυτόν τον φάκελο ';
+$labels['longacld'] = 'Η κατάσταση διαγραφής μηνυμάτων μπορεί να μεταβληθεί';
+$labels['longaclt'] = 'Η κατάσταση διαγραφής μηνυμάτων μπορεί να μεταβληθεί';
+$labels['longacle'] = 'Τα μηνύματα μπορούν να απαλειφθούν';
+$labels['longaclx'] = 'Ο φάκελος μπορεί να μετονομασθεί ή να διαγραφεί';
+$labels['longacla'] = 'Τα δικαιώματα πρόσβασης στον φάκελο μπορούν να μεταβληθούν';
+$labels['longacln'] = 'Το διαμοιραζόμενο υπόμνημα των μηνυμάτων είναι δυνατό να μεταβληθεί';
+$labels['longaclfull'] = 'Πλήρης έλεγχος συμπεριλαμβανόμενης της διαχείρισης φακέλων';
+$labels['longaclread'] = 'Ο φάκελος είναι δυνατό να προσπελαστεί για ανάγνωση';
+$labels['longaclwrite'] = 'Τα μηνύματα μπορούν να σημαδεύονται, να εγγράφονται ή να αντιγράφονται στον φάκελο';
+$labels['longacldelete'] = 'Τα μηνύματα μπορούν να διαγραφούν';
+$labels['longaclother'] = 'Άλλα δικαιώματα πρόσβασης';
+$labels['ariasummaryacltable'] = 'Λίστα δικαιωμάτων πρόσβασης';
+$labels['arialabelaclactions'] = 'Λίστα ενεργειών';
+$labels['arialabelaclform'] = 'Φόρμα δικαιωμάτων πρόσβασης';
+$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/en_CA.inc b/plugins/acl/localization/en_CA.inc
new file mode 100644
index 0000000..ae9cb8b
--- /dev/null
+++ b/plugins/acl/localization/en_CA.inc
@@ -0,0 +1,94 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Sharing';
+$labels['myrights'] = 'Access Rights';
+$labels['username'] = 'User:';
+$labels['advanced'] = 'Advanced mode';
+$labels['newuser'] = 'Add entry';
+$labels['editperms'] = 'Edit permissions';
+$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['acln'] = 'Annotate messages';
+$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['shortacln'] = 'Annotate';
+$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['longacln'] = 'Messages shared metadata (annotations) 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'] = 'Unable 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_GB.inc b/plugins/acl/localization/en_GB.inc
new file mode 100644
index 0000000..cd6393a
--- /dev/null
+++ b/plugins/acl/localization/en_GB.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Sharing';
+$labels['myrights'] = 'Access Rights';
+$labels['username'] = 'User:';
+$labels['advanced'] = 'Advanced mode';
+$labels['newuser'] = 'Add entry';
+$labels['editperms'] = 'Edit permissions';
+$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';
+$labels['aclw'] = 'Write flags';
+$labels['acli'] = 'Insert (copy into)';
+$labels['aclp'] = 'Post';
+$labels['aclc'] = 'Create sub-folders';
+$labels['aclk'] = 'Create sub-folders';
+$labels['acld'] = 'Delete messages';
+$labels['aclt'] = 'Delete messages';
+$labels['acle'] = 'Expunge';
+$labels['aclx'] = 'Delete folder';
+$labels['acla'] = 'Administer';
+$labels['acln'] = 'Annotate messages';
+$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';
+$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['shortacln'] = 'Annotate';
+$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['longacln'] = 'Messages shared metadata (annotations) 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';
+$labels['longaclother'] = 'Other access rights';
+$labels['ariasummaryacltable'] = 'List of access rights';
+$labels['arialabelaclactions'] = 'List actions';
+$labels['arialabelaclform'] = 'Access rights form';
+$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'] = 'Unable 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
new file mode 100644
index 0000000..ff8dde7
--- /dev/null
+++ b/plugins/acl/localization/en_US.inc
@@ -0,0 +1,108 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+
+$labels['sharing'] = 'Sharing';
+$labels['myrights'] = 'Access Rights';
+$labels['username'] = 'User:';
+$labels['advanced'] = 'Advanced mode';
+$labels['newuser'] = 'Add entry';
+$labels['editperms'] = 'Edit permissions';
+$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['acln'] = 'Annotate messages';
+
+$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['shortacln'] = 'Annotate';
+
+$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['longacln'] = 'Messages shared metadata (annotations) 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';
+$labels['longaclother'] = 'Other access rights';
+
+$labels['ariasummaryacltable'] = 'List of access rights';
+$labels['arialabelaclactions'] = 'List actions';
+$labels['arialabelaclform'] = 'Access rights form';
+
+$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'] = 'Unable 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/eo.inc b/plugins/acl/localization/eo.inc
new file mode 100644
index 0000000..e06a38f
--- /dev/null
+++ b/plugins/acl/localization/eo.inc
@@ -0,0 +1,63 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Kunhavigado';
+$labels['myrights'] = 'Atingrajtoj';
+$labels['username'] = 'Uzanto:';
+$labels['newuser'] = 'Aldoni eron';
+$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['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['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';
+$labels['shortaclw'] = 'Skribi';
+$labels['shortacli'] = 'Enmeti';
+$labels['shortaclp'] = 'Afiŝi';
+$labels['shortaclc'] = 'Krei';
+$labels['shortaclk'] = 'Krei';
+$labels['shortacld'] = 'Forigi';
+$labels['shortaclt'] = 'Forigi';
+$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['longacli'] = 'Mesaĝoj skribeblas aŭ kopieblas en la dosierujo';
+$labels['longaclp'] = 'Mesaĝoj afiŝeblas en ĉi tiu dosierujo';
+$labels['longaclread'] = 'La dosierujo malfermeblas por legado';
+?>
diff --git a/plugins/acl/localization/es_419.inc b/plugins/acl/localization/es_419.inc
new file mode 100644
index 0000000..5fc2be1
--- /dev/null
+++ b/plugins/acl/localization/es_419.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Compartiendo';
+$labels['myrights'] = 'Derechos de acceso';
+$labels['username'] = 'Usuario:';
+$labels['advanced'] = 'Modo avanzado';
+$labels['newuser'] = 'Agregar entrada';
+$labels['editperms'] = 'Editar permisos';
+$labels['actions'] = 'Acciones de derecho de acceso...';
+$labels['anyone'] = 'Todos los usuarios (cualquiera)';
+$labels['anonymous'] = 'Invitados (anónimos)';
+$labels['identifier'] = 'Identificador';
+$labels['acll'] = 'Búsqueda';
+$labels['aclr'] = 'Leer mensajes';
+$labels['acls'] = 'Mantener estado de visto';
+$labels['aclw'] = 'Etiquetas de escritura';
+$labels['acli'] = 'Insertar (copiar a)';
+$labels['aclp'] = 'Publicar';
+$labels['aclc'] = 'Crear subcarpetas';
+$labels['aclk'] = 'Crear subcarpetas';
+$labels['acld'] = 'Eliminar mensajes';
+$labels['aclt'] = 'Eliminar mensajes';
+$labels['acle'] = 'Borrar';
+$labels['aclx'] = 'Eliminar carpeta';
+$labels['acla'] = 'Administrar';
+$labels['acln'] = 'Anotar mensajes';
+$labels['aclfull'] = 'Control total';
+$labels['aclother'] = 'Otro';
+$labels['aclread'] = 'Leer';
+$labels['aclwrite'] = 'Escribir';
+$labels['acldelete'] = 'Eliminar';
+$labels['shortacll'] = 'Búsqueda';
+$labels['shortaclr'] = 'Leer';
+$labels['shortacls'] = 'Mantener';
+$labels['shortaclw'] = 'Escribir';
+$labels['shortacli'] = 'Insertar';
+$labels['shortaclp'] = 'Publicar';
+$labels['shortaclc'] = 'Crear';
+$labels['shortaclk'] = 'Crear';
+$labels['shortacld'] = 'Eliminar';
+$labels['shortaclt'] = 'Eliminar';
+$labels['shortacle'] = 'Borrar';
+$labels['shortaclx'] = 'Eliminar carpeta';
+$labels['shortacla'] = 'Administrar';
+$labels['shortacln'] = 'Anotar';
+$labels['shortaclother'] = 'Otro';
+$labels['shortaclread'] = 'Leer';
+$labels['shortaclwrite'] = 'Escribir';
+$labels['shortacldelete'] = 'Eliminar';
+$labels['longacll'] = 'La carpeta es visible en listas y se la puede suscribir';
+$labels['longaclr'] = 'La carpeta puede ser abierta para lectura';
+$labels['longacls'] = 'Etiqueta de mensajes leídos puede ser cambiada';
+$labels['longaclw'] = 'Las etiquetas de mensajes y palabras clave puede ser cambiada, excepto Leídos y Eliminados';
+$labels['longacli'] = 'Se pueden escribir o copiar mensajes a la carpeta';
+$labels['longaclp'] = 'Los mensajes pueden ser publicados en esta carpeta';
+$labels['longaclc'] = 'Las carpetas pueden ser creadas (o renombradas) directamente desde esta carpeta';
+$labels['longaclk'] = 'Las carpetas pueden ser creadas (o renombradas) directamente desde esta carpeta';
+$labels['longacld'] = 'La etiqueta de mensajes eliminados puede ser cambiada';
+$labels['longaclt'] = 'La etiqueta de mensajes eliminados puede ser cambiada';
+$labels['longacle'] = 'Los mensajes pueden ser borrados';
+$labels['longaclx'] = 'La carpeta puede ser eliminada o renombrada';
+$labels['longacla'] = 'Los derechos de acceso de la carpeta pueden ser cambiados';
+$labels['longacln'] = 'Los metadatos compartidos de los mensajes (anotaciones) puede ser cambiado';
+$labels['longaclfull'] = 'Control total incluyendo administración de carpetas';
+$labels['longaclread'] = 'La carpeta puede ser abierta para lectura';
+$labels['longaclwrite'] = 'Los mensajes pueden ser marcados, escritos o copiados a la carpeta';
+$labels['longacldelete'] = 'Los mensajes pueden ser eliminados';
+$labels['longaclother'] = 'Otros derechos de acceso';
+$labels['ariasummaryacltable'] = 'Lista de derechos de acceso';
+$labels['arialabelaclactions'] = 'Listar acciones';
+$labels['arialabelaclform'] = 'Formulario de derechos de acceso';
+$messages['deleting'] = 'Derechos de acceso de eliminación...';
+$messages['saving'] = 'Guardando derechos de acceso...';
+$messages['updatesuccess'] = 'Se han cambiado los derechos de acceso exitosamente';
+$messages['deletesuccess'] = 'Se han eliminado los derechos de acceso exitosamente';
+$messages['createsuccess'] = 'Se han agregado los derechos de acceso exitosamente';
+$messages['updateerror'] = 'No es posible actualizar los derechos de acceso';
+$messages['deleteerror'] = 'No es posible eliminar los derechos de acceso';
+$messages['createerror'] = 'No es posible agregar los derechos de acceso';
+$messages['deleteconfirm'] = '¿Estás seguro de que deseas eliminar los derechos de acceso a usuario(s) seleccionado(s)?';
+$messages['norights'] = '¡No se hace especificado un derecho!';
+$messages['nouser'] = '¡No se ha especificado un nombre de usuario!';
+?>
diff --git a/plugins/acl/localization/es_AR.inc b/plugins/acl/localization/es_AR.inc
new file mode 100644
index 0000000..8ed9f12
--- /dev/null
+++ b/plugins/acl/localization/es_AR.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Compartiendo';
+$labels['myrights'] = 'Permisos de acceso';
+$labels['username'] = 'Usuario:';
+$labels['advanced'] = 'Modo avanzado';
+$labels['newuser'] = 'Agregar entrada';
+$labels['editperms'] = 'Editar permisos';
+$labels['actions'] = 'Acciones para los permisos de acceso...';
+$labels['anyone'] = 'Todos los usuarios (cualquiera)';
+$labels['anonymous'] = 'Invitado (anonimo)';
+$labels['identifier'] = 'Identificacion';
+$labels['acll'] = 'Buscar';
+$labels['aclr'] = 'Leer mensajes';
+$labels['acls'] = 'Mantener como visualizado';
+$labels['aclw'] = 'Escribir marcadores';
+$labels['acli'] = 'Insertar (Copiar en)';
+$labels['aclp'] = 'Publicar';
+$labels['aclc'] = 'Crear subcarpetas';
+$labels['aclk'] = 'Crear subcarpetas';
+$labels['acld'] = 'Eliminar mensajes';
+$labels['aclt'] = 'Eliminar mensajes';
+$labels['acle'] = 'Descartar';
+$labels['aclx'] = 'Eliminar carpeta';
+$labels['acla'] = 'Administrar';
+$labels['acln'] = 'Anotar mensajes';
+$labels['aclfull'] = 'Control total';
+$labels['aclother'] = 'Otro';
+$labels['aclread'] = 'Leer';
+$labels['aclwrite'] = 'Escribir';
+$labels['acldelete'] = 'Eliminar';
+$labels['shortacll'] = 'Buscar';
+$labels['shortaclr'] = 'Leer';
+$labels['shortacls'] = 'Mantener';
+$labels['shortaclw'] = 'Escribir';
+$labels['shortacli'] = 'Insertar';
+$labels['shortaclp'] = 'Publicar';
+$labels['shortaclc'] = 'Crear';
+$labels['shortaclk'] = 'Crear';
+$labels['shortacld'] = 'Eliminar';
+$labels['shortaclt'] = 'Eliminar';
+$labels['shortacle'] = 'Descartar';
+$labels['shortaclx'] = 'Borrado de carpeta';
+$labels['shortacla'] = 'Administrar';
+$labels['shortacln'] = 'Anotar';
+$labels['shortaclother'] = 'Otro';
+$labels['shortaclread'] = 'Leer';
+$labels['shortaclwrite'] = 'Escribir';
+$labels['shortacldelete'] = 'Eliminar';
+$labels['longacll'] = 'La carpeta es visible en listas y es posible suscribirse a ella';
+$labels['longaclr'] = 'La carpeta se puede abirir para lectura';
+$labels['longacls'] = 'El marcador de Mensajes Vistos puede ser modificado';
+$labels['longaclw'] = 'Los marcadores de mensajes y palabras clave se pueden modificar, excepto Visto y Eliminado';
+$labels['longacli'] = 'En esta carpeta se pueden escribir o copiar mensajes';
+$labels['longaclp'] = 'En esta carpeta se pueden publicar mensajes';
+$labels['longaclc'] = 'Debajo de esta carpeta se puede crear (o renombrar) otras carpetas directamente';
+$labels['longaclk'] = 'Debajo de esta carpeta se puede crear (o renombrar) otras carpetas directamente';
+$labels['longacld'] = 'El marcador de Mensaje Eliminado puede ser modificado';
+$labels['longaclt'] = 'El marcador de Mensaje Eliminado puede ser modificado';
+$labels['longacle'] = 'Los mensajes pueden ser descartados';
+$labels['longaclx'] = 'La carpeta puede ser eliminada o renombrada';
+$labels['longacla'] = 'Los permisos de acceso de esta carpeta pueden ser modificados';
+$labels['longacln'] = 'La metainformación de mensajes compartidos (anotaciones) puede ser cambiada';
+$labels['longaclfull'] = 'Control total incluyendo la administracion de carpeta';
+$labels['longaclread'] = 'La carpeta se puede abrir para lectura';
+$labels['longaclwrite'] = 'En esta carpeta los mensajes pueden ser marcados, escritos o copiados';
+$labels['longacldelete'] = 'Los mensajes se pueden eliminar';
+$labels['longaclother'] = 'Otros permisos de acceso';
+$labels['ariasummaryacltable'] = 'Listado de permisos de acceso';
+$labels['arialabelaclactions'] = 'Listar acciones';
+$labels['arialabelaclform'] = 'Formulario de permisos de acceso';
+$messages['deleting'] = 'Eliminando permisos de acceso...';
+$messages['saving'] = 'Salvando permisos de acceso...';
+$messages['updatesuccess'] = 'Permisos de acceso modificados satisfactoriamente';
+$messages['deletesuccess'] = 'Permisos de acceso eliminados correctamente';
+$messages['createsuccess'] = 'Permisos de acceso agregados satisfactoriamente';
+$messages['updateerror'] = 'No se pudieron actualizar los permisos de acceso';
+$messages['deleteerror'] = 'No se pueden eliminar los permisos de acceso';
+$messages['createerror'] = 'No se pueden agregar los permisos de acceso';
+$messages['deleteconfirm'] = 'Estas seguro que queres remover los permisos de acceso a el/los usuario(s) seleccionado/s?';
+$messages['norights'] = 'Ningun permiso ha sido especificado!';
+$messages['nouser'] = 'Ningun nombre de usuario ha sido especificado!';
+?>
diff --git a/plugins/acl/localization/es_ES.inc b/plugins/acl/localization/es_ES.inc
new file mode 100644
index 0000000..c90c3e5
--- /dev/null
+++ b/plugins/acl/localization/es_ES.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Compartir';
+$labels['myrights'] = 'Permisos de acceso';
+$labels['username'] = 'Usuario:';
+$labels['advanced'] = 'Modo avanzado';
+$labels['newuser'] = 'Añadir una entrada';
+$labels['editperms'] = 'Editar permisos';
+$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';
+$labels['aclw'] = 'Escribir etiquetas';
+$labels['acli'] = 'Insertar (Copiar dentro)';
+$labels['aclp'] = 'Enviar';
+$labels['aclc'] = 'Crear subcarpetas';
+$labels['aclk'] = 'Crear subcarpetas';
+$labels['acld'] = 'Borrar mensajes';
+$labels['aclt'] = 'Borrar mensajes';
+$labels['acle'] = 'Expurgar';
+$labels['aclx'] = 'Borrar carpeta';
+$labels['acla'] = 'Administrar';
+$labels['acln'] = 'Anotar mensajes';
+$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';
+$labels['shortaclw'] = 'Escribir';
+$labels['shortacli'] = 'Insertar';
+$labels['shortaclp'] = 'Enviar';
+$labels['shortaclc'] = 'Crear';
+$labels['shortaclk'] = 'Crear';
+$labels['shortacld'] = 'Borrar';
+$labels['shortaclt'] = 'Borrar';
+$labels['shortacle'] = 'Expurgar';
+$labels['shortaclx'] = 'Borrar carpeta';
+$labels['shortacla'] = 'Administrar';
+$labels['shortacln'] = 'Anotar';
+$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';
+$labels['longaclw'] = 'Las etiquetas de mensaje y las palabras clave se pueden cambiar, excepto "Leído" y "Borrado';
+$labels['longacli'] = 'Se pueden escribir mensajes o copiarlos a la carpeta';
+$labels['longaclp'] = 'Se pueden enviar mensajes a esta carpeta';
+$labels['longaclc'] = 'Se pueden crear (o renombrar) carpetas directamente bajo esta carpeta';
+$labels['longaclk'] = 'Se pueden crear (o renombrar) carpetas directamente bajo esta carpeta';
+$labels['longacld'] = 'No se pueden cambiar los mensajes etiquetados como "Borrado';
+$labels['longaclt'] = 'No se pueden cambiar los mensajes etiquetados como "Borrado';
+$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['longacln'] = 'Los metadatos compartidos de los mensajes (anotaciones) pueden cambiarse';
+$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';
+$labels['longaclother'] = 'Otros derechos de acceso';
+$labels['ariasummaryacltable'] = 'Lista de derechos de acceso';
+$labels['arialabelaclactions'] = 'Lista de acciones';
+$labels['arialabelaclform'] = 'Formulario de derechos de acceso';
+$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['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
new file mode 100644
index 0000000..ecd5f7e
--- /dev/null
+++ b/plugins/acl/localization/et_EE.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Jagamine';
+$labels['myrights'] = 'Ligipääsuõigused';
+$labels['username'] = 'Kasutaja:';
+$labels['advanced'] = 'laiendatud režiim';
+$labels['newuser'] = 'Lisa sissekanne';
+$labels['editperms'] = 'Muuda õigusi';
+$labels['actions'] = 'Ligipääsuõiguste toimingud...';
+$labels['anyone'] = 'Kõik kasutajad';
+$labels['anonymous'] = 'Külalised (anonüümsed)';
+$labels['identifier'] = 'Tuvastaja';
+$labels['acll'] = 'Ülevaade';
+$labels['aclr'] = 'Lugeda kirju';
+$labels['acls'] = 'Hoia nähtud olekut';
+$labels['aclw'] = 'Salvesta lipud';
+$labels['acli'] = 'Sisesta (kopeeri)';
+$labels['aclp'] = 'Postita';
+$labels['aclc'] = 'Luua alamkaustu';
+$labels['aclk'] = 'Luua alamkaustu';
+$labels['acld'] = 'Kustutada kirju';
+$labels['aclt'] = 'Kustutada kirju';
+$labels['acle'] = 'Eemalda';
+$labels['aclx'] = 'Kustutada kausta';
+$labels['acla'] = 'Administreerida';
+$labels['acln'] = 'Annoteeri kirja';
+$labels['aclfull'] = 'Täis kontroll';
+$labels['aclother'] = 'Muu';
+$labels['aclread'] = 'Loe';
+$labels['aclwrite'] = 'Kirjuta';
+$labels['acldelete'] = 'Kustuta';
+$labels['shortacll'] = 'Ülevaade';
+$labels['shortaclr'] = 'Loe';
+$labels['shortacls'] = 'Säilita';
+$labels['shortaclw'] = 'Kirjuta';
+$labels['shortacli'] = 'Lisa';
+$labels['shortaclp'] = 'Postita';
+$labels['shortaclc'] = 'Loo';
+$labels['shortaclk'] = 'Loo';
+$labels['shortacld'] = 'Kustuta';
+$labels['shortaclt'] = 'Kustuta';
+$labels['shortacle'] = 'Eemalda';
+$labels['shortaclx'] = 'Kausta kustutamine';
+$labels['shortacla'] = 'Administreerida';
+$labels['shortacln'] = 'Annoteeri';
+$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['longacls'] = 'Kirja loetuse lippu saab muuta';
+$labels['longaclw'] = 'Kirja lippe ja otsingusõnu saab muuta, väljaarvatud loetud ja kustutatud';
+$labels['longacli'] = 'Kirju saab salvestada ja kopeerida antud kausta';
+$labels['longaclp'] = 'Kirju saab postitada antud kausta';
+$labels['longaclc'] = 'Kaustasi saab luua (või ümber nimetada) otse siia kausta alla.';
+$labels['longaclk'] = 'Kaustu saab luua (või ümber nimetada) otse siia kausta alla';
+$labels['longacld'] = 'Kirja kustutamis lippu saab muuta';
+$labels['longaclt'] = 'Kirja kustutamis lippu saab muuta';
+$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['longacln'] = 'Kirja jagatud metainfot (annotatsioonid) saab muuta';
+$labels['longaclfull'] = 'Täielik kontroll koos kaustade haldamisega';
+$labels['longaclread'] = 'Kausta saab lugemiseks avada';
+$labels['longaclwrite'] = 'Kirju saab märgistada, salvestada või kopeerida kausta';
+$labels['longacldelete'] = 'Kirju saab kustutada';
+$labels['longaclother'] = 'Muud ligipääsu õigused';
+$labels['ariasummaryacltable'] = 'Nimekir ligipääsu õigustest';
+$labels['arialabelaclactions'] = 'Näita tegevusi';
+$labels['arialabelaclform'] = 'Ligipääsu õiguste vorm';
+$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['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/eu_ES.inc b/plugins/acl/localization/eu_ES.inc
new file mode 100644
index 0000000..8625f4d
--- /dev/null
+++ b/plugins/acl/localization/eu_ES.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Partekatzen';
+$labels['myrights'] = 'Sarbide-eskubideak';
+$labels['username'] = 'Erabiltzailea:';
+$labels['advanced'] = 'modu aurreratua';
+$labels['newuser'] = 'Gehitu sarrera';
+$labels['editperms'] = 'Editatu baimenak';
+$labels['actions'] = 'Sarbide-eskubideen ekintzak...';
+$labels['anyone'] = 'Erabiltzaile guztiak (edozein)';
+$labels['anonymous'] = 'Gonbidatuak (anonimo)';
+$labels['identifier'] = 'Identifikatzailea';
+$labels['acll'] = 'Bilatu';
+$labels['aclr'] = 'Irakurri mezuak';
+$labels['acls'] = 'Mantendu ikusita egoera';
+$labels['aclw'] = 'Idatzi banderak';
+$labels['acli'] = 'Txertatu (kopiatu barnean)';
+$labels['aclp'] = 'Posta';
+$labels['aclc'] = 'Sortu azpikarpetak';
+$labels['aclk'] = 'Sortu azpikarpetak';
+$labels['acld'] = 'Ezabatu mezuak';
+$labels['aclt'] = 'Ezabatu mezuak';
+$labels['acle'] = 'Kendu';
+$labels['aclx'] = 'Ezabatu karpeta';
+$labels['acla'] = 'Administratu';
+$labels['acln'] = 'Idatzi mezuak';
+$labels['aclfull'] = 'Kontrol osoa';
+$labels['aclother'] = 'Beste';
+$labels['aclread'] = 'Irakurri';
+$labels['aclwrite'] = 'Idatzi';
+$labels['acldelete'] = 'Ezabatu';
+$labels['shortacll'] = 'Bilatu';
+$labels['shortaclr'] = 'Irakurri';
+$labels['shortacls'] = 'Mantendu';
+$labels['shortaclw'] = 'Idatzi';
+$labels['shortacli'] = 'Txertatu';
+$labels['shortaclp'] = 'Bidali';
+$labels['shortaclc'] = 'Sortu';
+$labels['shortaclk'] = 'Sortu';
+$labels['shortacld'] = 'Ezabatu';
+$labels['shortaclt'] = 'Ezabatu';
+$labels['shortacle'] = 'Kendu';
+$labels['shortaclx'] = 'Ezabatu karpeta';
+$labels['shortacla'] = 'Administratu';
+$labels['shortacln'] = 'Idatzi';
+$labels['shortaclother'] = 'Beste';
+$labels['shortaclread'] = 'Irakurri';
+$labels['shortaclwrite'] = 'Idatzi';
+$labels['shortacldelete'] = 'Ezabatu';
+$labels['longacll'] = 'Karpeta hau zerrendan ikusgai dago eta harpidetzen ahal zara';
+$labels['longaclr'] = 'Karpeta ireki daiteke irakurtzeko';
+$labels['longacls'] = 'Mezuen ikusita bandera aldatu daiteke';
+$labels['longaclw'] = 'Mezuen banderak eta gako-hitzak alda daitezke, ikusita eta ezabatuta salbu';
+$labels['longacli'] = 'Mezuak karpetara idatzi edo kopiatu daitezke';
+$labels['longaclp'] = 'Mezuak bidali daitezke karpeta honetara';
+$labels['longaclc'] = 'Karpetak sor daitezke (edo berrizendatu) zuzenean karpeta honetan';
+$labels['longaclk'] = 'Karpetak sor daitezke (edo berrizendatu) karpeta honetan';
+$labels['longacld'] = 'Mezuen ezabatu bandera alda daiteke';
+$labels['longaclt'] = 'Mezuen ezabatu bandera alda daiteke';
+$labels['longacle'] = 'Mezuak betiko ezaba daitezke';
+$labels['longaclx'] = 'Karpeta ezaba edo berrizenda daiteke';
+$labels['longacla'] = 'Karpetaren sarbide eskubideak alda daitezke';
+$labels['longacln'] = 'Partekatutatko mezuen metadatuak (oharrak) alda daitezke';
+$labels['longaclfull'] = 'Kontrol osoa, karpetaren administrazioa barne';
+$labels['longaclread'] = 'Karpeta ireki daiteke irakurtzeko';
+$labels['longaclwrite'] = 'Mezuak marka, idatzi edo kopia daitezke karpetara';
+$labels['longacldelete'] = 'Mezuak ezaba daitezke';
+$labels['longaclother'] = 'Beste sarbide-eskubideak';
+$labels['ariasummaryacltable'] = 'Sarbide-eskubideen zerrenda';
+$labels['arialabelaclactions'] = 'Zerrendatu ekintzak';
+$labels['arialabelaclform'] = 'Sarbide-eskubideen formularioa';
+$messages['deleting'] = 'Sarbide-eskubideak ezabatzen...';
+$messages['saving'] = 'Sarbide-eskubideak gordetzen...';
+$messages['updatesuccess'] = 'Sarbide-eskubideak ongi aldatu dira';
+$messages['deletesuccess'] = 'Sarbide-eskubideak ongi ezabatu dira';
+$messages['createsuccess'] = 'Sarbide-eskubideak ongi gehitu dira';
+$messages['updateerror'] = 'Ezin dira eguneratu sarbide-eskubideak';
+$messages['deleteerror'] = 'Ezin dira ezabatu sarbide-eskubideak';
+$messages['createerror'] = 'Ezin dira gehitu sarbide-eskubideak';
+$messages['deleteconfirm'] = 'Seguru zaude hautatutako erabiltzaile(ar)en sarbide-eskubideak ezabatu nahi duzula?';
+$messages['norights'] = 'Eskubideak ez dira zehaztu!';
+$messages['nouser'] = 'Erabiltzaile-izana ez da zehaztu!';
+?>
diff --git a/plugins/acl/localization/fa_AF.inc b/plugins/acl/localization/fa_AF.inc
new file mode 100644
index 0000000..cb051f6
--- /dev/null
+++ b/plugins/acl/localization/fa_AF.inc
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'اشتراک گذاری';
+$labels['username'] = 'کاربر:';
+$labels['newuser'] = 'افزودن مدخل';
+$labels['aclw'] = 'نوشتن نشانه ها';
+$labels['aclp'] = 'ارسال';
+$labels['acla'] = 'مدیر';
+$labels['aclfull'] = 'کنترل کامل';
+$labels['aclother'] = 'دیگر';
+?>
diff --git a/plugins/acl/localization/fa_IR.inc b/plugins/acl/localization/fa_IR.inc
new file mode 100644
index 0000000..7b22c40
--- /dev/null
+++ b/plugins/acl/localization/fa_IR.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'اشتراک‌گذاری';
+$labels['myrights'] = 'حقوق دسترسی';
+$labels['username'] = 'کاربر:';
+$labels['advanced'] = 'حالت پیشرفته';
+$labels['newuser'] = 'افزودن ورودی';
+$labels['editperms'] = 'ویرایش مجوزها';
+$labels['actions'] = 'فعالیت‌های حق دسترسی...';
+$labels['anyone'] = 'همه‌ی کاربران (هر کسی)';
+$labels['anonymous'] = 'مهمان‌ها (ناشناس)';
+$labels['identifier'] = 'شناساگر';
+$labels['acll'] = 'یافتن';
+$labels['aclr'] = 'پیغام‌های خوانده شده';
+$labels['acls'] = 'نگه داشتن حالت بازدید';
+$labels['aclw'] = 'پرچم‌های نوشتن';
+$labels['acli'] = 'وارد کردن (رونوشت در)';
+$labels['aclp'] = 'نوشته';
+$labels['aclc'] = 'ایجاد زیرپوشه‌ها';
+$labels['aclk'] = 'ایجاد زیرپوشه‌ها';
+$labels['acld'] = 'حذف پیغام‌ها';
+$labels['aclt'] = 'حذف پیغام‌ها';
+$labels['acle'] = 'پاک کردن';
+$labels['aclx'] = 'حذف پوشه';
+$labels['acla'] = 'اداره کردن';
+$labels['acln'] = 'حاشیه نویسی پیغام ها';
+$labels['aclfull'] = 'کنترل کامل';
+$labels['aclother'] = 'دیگر';
+$labels['aclread'] = 'خواندن';
+$labels['aclwrite'] = 'نوشتن';
+$labels['acldelete'] = 'حذف کردن';
+$labels['shortacll'] = 'یافتن';
+$labels['shortaclr'] = 'خواندن';
+$labels['shortacls'] = 'نگه داشتن';
+$labels['shortaclw'] = 'نوشتن';
+$labels['shortacli'] = 'جاگذارى';
+$labels['shortaclp'] = 'پست کردن';
+$labels['shortaclc'] = 'ایجاد';
+$labels['shortaclk'] = 'ایجاد';
+$labels['shortacld'] = 'حذف';
+$labels['shortaclt'] = 'حذف';
+$labels['shortacle'] = 'پاک کردن';
+$labels['shortaclx'] = 'حذف پوشه';
+$labels['shortacla'] = 'اداره کردن';
+$labels['shortacln'] = 'حاشیه نویسی';
+$labels['shortaclother'] = 'دیگر';
+$labels['shortaclread'] = 'خواندن';
+$labels['shortaclwrite'] = 'نوشتن';
+$labels['shortacldelete'] = 'حذف کردن';
+$labels['longacll'] = 'پوشه در فهرست‌ها قابل مشاهده است و می‌تواند مشترک آن شد';
+$labels['longaclr'] = 'پوشه می‌تواند برای خواندن باز شود';
+$labels['longacls'] = 'پرچم بازدید پیغام‌ها می‌تواند تغییر داده شود';
+$labels['longaclw'] = 'پرچم و کلیدواژه پیغام‌ها می‌تواند تغییر داده شود، به غیر از بازدید و حذف';
+$labels['longacli'] = 'پیغام‌ها می‌توانند کپی یا نوشته شوند به پوشه';
+$labels['longaclp'] = 'پیغام‌ها می‌توانند پست شوند به این پوشه';
+$labels['longaclc'] = 'پوشه‌ها می‌توانند ایجاد شوند (تغییر نام داد شوند) به طور مستقیم در این پوشه';
+$labels['longaclk'] = 'پوشه‌ها می‌توانند ایجاد شوند (تغییر نام داد شوند) به طور مستقیم در این پوشه';
+$labels['longacld'] = 'پرچم حذف پیغام‌ها می‌تواند تغییر داده شود';
+$labels['longaclt'] = 'پرچم حذف پیغام‌ها می‌تواند تغییر داده شود';
+$labels['longacle'] = 'پیغام‌ها می‌توانند حذف شوند';
+$labels['longaclx'] = 'پوشه می‌تواند حذف یا تغییر نام داده شود';
+$labels['longacla'] = 'حقوق دسترسی پوشه می‌تواند تغییر داده شود';
+$labels['longacln'] = 'اطلاعات متا اشتراک گذاشته شده پیغام‌ها (حاشیه‌ها) می‌تواند تغییر داده شوند';
+$labels['longaclfull'] = 'کنترل کامل شما مدیریت پوشه';
+$labels['longaclread'] = 'پوشه می‌تواند برای خواندن باز شود';
+$labels['longaclwrite'] = 'پیغام‌ها می‌توانند علامتگذاری، نوشته و یا کپی شوند در پوشه';
+$labels['longacldelete'] = 'پیغام‌ها می‌توانند حذف شوند';
+$labels['longaclother'] = 'قوانین دسترسی دیگر';
+$labels['ariasummaryacltable'] = 'فهرست قوانین دسترسی';
+$labels['arialabelaclactions'] = 'فهرست کنش‌ها';
+$labels['arialabelaclform'] = 'فرم قوانین دسترسی';
+$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/fi_FI.inc b/plugins/acl/localization/fi_FI.inc
new file mode 100644
index 0000000..27510e8
--- /dev/null
+++ b/plugins/acl/localization/fi_FI.inc
@@ -0,0 +1,55 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Jakaminen';
+$labels['myrights'] = 'Käyttöoikeudet';
+$labels['username'] = 'Käyttäjä:';
+$labels['editperms'] = 'Muokkaa oikeuksia';
+$labels['anyone'] = 'Kaikki käyttäjät (kuka tahansa)';
+$labels['anonymous'] = 'Vieraat (anonyymit)';
+$labels['aclc'] = 'Luo alikansioita';
+$labels['aclk'] = 'Luo alikansioita';
+$labels['acld'] = 'Poista viestejä';
+$labels['aclt'] = 'Poista viestejä';
+$labels['aclx'] = 'Poista kansio';
+$labels['aclfull'] = 'Täydet käyttöoikeudet';
+$labels['aclother'] = 'Muu';
+$labels['aclread'] = 'Luku';
+$labels['aclwrite'] = 'Kirjoitus';
+$labels['acldelete'] = 'Poisto';
+$labels['shortaclc'] = 'Luo';
+$labels['shortaclk'] = 'Luo';
+$labels['shortacld'] = 'Poista';
+$labels['shortaclt'] = 'Poista';
+$labels['shortaclother'] = 'Muu';
+$labels['shortaclread'] = 'Luku';
+$labels['shortaclwrite'] = 'Kirjoitus';
+$labels['shortacldelete'] = 'Poisto';
+$labels['longaclr'] = 'Kansion voi avata lukua varten';
+$labels['longaclx'] = 'Kansio voidaan poistaa tai nimetä uudelleen';
+$labels['longacla'] = 'Kansion käyttöoikeuksia voi muuttaa';
+$messages['deleting'] = 'Poistetaan käyttöoikeuksia...';
+$messages['saving'] = 'Tallennetaan käyttöoikeuksia...';
+$messages['updatesuccess'] = 'Käyttöoikeuksia muutettiin onnistuneesti';
+$messages['deletesuccess'] = 'Käyttöoikeuksia poistettiin onnistuneesti';
+$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['norights'] = 'Oikeuksia ei ole määritelty!';
+$messages['nouser'] = 'Käyttäjänimeä ei ole määritelty!';
+?>
diff --git a/plugins/acl/localization/fo_FO.inc b/plugins/acl/localization/fo_FO.inc
new file mode 100644
index 0000000..fd56f46
--- /dev/null
+++ b/plugins/acl/localization/fo_FO.inc
@@ -0,0 +1,91 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Deiling';
+$labels['myrights'] = 'Atgongdar-rættindi';
+$labels['username'] = 'Brúkari:';
+$labels['advanced'] = 'Víðkað útgáva';
+$labels['newuser'] = 'Legg inn';
+$labels['editperms'] = 'Broyt atgonguloyvi';
+$labels['actions'] = 'Stillingar til atgongu-rættindi';
+$labels['anyone'] = 'Allir brúkarir (øll)';
+$labels['anonymous'] = 'Gestir (dulnevnd)';
+$labels['identifier'] = 'dátuheiti';
+$labels['acll'] = 'Slá upp';
+$labels['aclr'] = 'Les boð';
+$labels['acls'] = 'Varveit lisna støðu';
+$labels['aclw'] = 'Hvít Fløgg';
+$labels['acli'] = 'Inn';
+$labels['aclp'] = 'Send';
+$labels['aclc'] = 'Ger undurmappur';
+$labels['aclk'] = 'Ger undurmappur';
+$labels['acld'] = 'Strika boð';
+$labels['aclt'] = 'Strika boð';
+$labels['acle'] = 'Strika út';
+$labels['aclx'] = 'Strika mappu';
+$labels['acla'] = 'Umsit';
+$labels['aclfull'] = 'Full stýring';
+$labels['aclother'] = 'Annað';
+$labels['aclread'] = 'Les';
+$labels['aclwrite'] = 'Skriva';
+$labels['acldelete'] = 'Strika';
+$labels['shortacll'] = 'Slá upp';
+$labels['shortaclr'] = 'Les';
+$labels['shortacls'] = 'Varveit';
+$labels['shortaclw'] = 'Skriva';
+$labels['shortacli'] = 'Legg inn';
+$labels['shortaclp'] = 'Send';
+$labels['shortaclc'] = 'Stovna';
+$labels['shortaclk'] = 'Stovna';
+$labels['shortacld'] = 'Strika';
+$labels['shortaclt'] = 'Strika';
+$labels['shortacle'] = 'Strika út';
+$labels['shortaclx'] = 'Strika mappu';
+$labels['shortacla'] = 'Umsit';
+$labels['shortaclother'] = 'Annað';
+$labels['shortaclread'] = 'Les';
+$labels['shortaclwrite'] = 'Skriva';
+$labels['shortacldelete'] = 'Strika';
+$labels['longacll'] = 'Mappan er sjónlig á listum og til ber at tekna seg fyri hana';
+$labels['longaclr'] = 'Mappan kann verða opna til lesná';
+$labels['longacls'] = 'Viðmerki ið vísur á lisin boð kann broytast';
+$labels['longaclw'] = 'Boð viðmerki og lyklaorð kunnu øll broytast, undantikið Sæð og Strika';
+$labels['longacli'] = 'Boð kunnu verða skriva og flutt til eina aðra mappu';
+$labels['longaclp'] = 'Boð kunnu verða send til hesa mappu';
+$labels['longaclc'] = 'Mappur kunnu verða stovnaðar (ella umdoyptar) beinleiðis undir hesu mappu';
+$labels['longaclk'] = 'Mappur kunnu verða stovnaðar (ella umdoyptar) beinleiðis undir hesu mappu';
+$labels['longacld'] = 'Viðmerki ið vísur á strika boð kann broytast';
+$labels['longaclt'] = 'Viðmerki ið vísur á strika boð kann broytast';
+$labels['longacle'] = 'Boð kunnu verða strika út';
+$labels['longaclx'] = 'Mappan kann verða strika ella umdoypt';
+$labels['longacla'] = 'Atgongdu-rættindini til hesa mappu kunnu broytast';
+$labels['longaclfull'] = 'Full stýring, írokna mappu-umsiting';
+$labels['longaclread'] = 'Mappan kann latast upp til lesná';
+$labels['longaclwrite'] = 'Boð kunnu verða viðmerkt, skriva ella avritast til mappuna';
+$labels['longacldelete'] = 'Boð kunnu verða strikað';
+$messages['deleting'] = 'Strikar atgongu-rættindi...';
+$messages['saving'] = 'Goymur atgongu-rættindi...';
+$messages['updatesuccess'] = 'Atgongu-rættindi broytt væleyndað';
+$messages['deletesuccess'] = 'Atgongu-rættindi strika væleyndað';
+$messages['createsuccess'] = 'Atgongu-rættindi stovna væleyndað';
+$messages['updateerror'] = 'Til ber ikki at dagføra atgongu-rættindi';
+$messages['deleteerror'] = 'Til ber ikki at strika atgongu-rættindi';
+$messages['createerror'] = 'Til ber ikki at leggja aftrat atgongu-rættindi';
+$messages['deleteconfirm'] = 'Ert tú vís/ur í at tú ynskir at strika atgongu-rættindini hjá valdum brúkar(um)?';
+$messages['norights'] = 'Eingi rættindi tilskila!';
+$messages['nouser'] = 'Einki brúkaranavn var tilskila!';
+?>
diff --git a/plugins/acl/localization/fr_FR.inc b/plugins/acl/localization/fr_FR.inc
new file mode 100644
index 0000000..b011fff
--- /dev/null
+++ b/plugins/acl/localization/fr_FR.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Partage';
+$labels['myrights'] = 'Droits d\'accès';
+$labels['username'] = 'Utilisateur :';
+$labels['advanced'] = 'Mode avancé';
+$labels['newuser'] = 'Ajouter l\'entrée';
+$labels['editperms'] = 'Modifier les permissions';
+$labels['actions'] = 'Actions des droits d\'accès...';
+$labels['anyone'] = 'Tous les utilisateurs (n\'importe qui)';
+$labels['anonymous'] = 'Invités (anonyme)';
+$labels['identifier'] = 'Identifiant';
+$labels['acll'] = 'Consultation';
+$labels['aclr'] = 'Lire les courriels';
+$labels['acls'] = 'Garder l\'état « vu »';
+$labels['aclw'] = 'Drapeaux d\'écriture';
+$labels['acli'] = 'Insérer (copier dans)';
+$labels['aclp'] = 'Publier';
+$labels['aclc'] = 'Créer des sous-dossiers';
+$labels['aclk'] = 'Créer des sous-dossiers';
+$labels['acld'] = 'Supprimer des courriels';
+$labels['aclt'] = 'Supprimer des courriels';
+$labels['acle'] = 'Purger';
+$labels['aclx'] = 'Supprimer un dossier';
+$labels['acla'] = 'Administrer';
+$labels['acln'] = 'Annoter les courriels';
+$labels['aclfull'] = 'Contrôle total';
+$labels['aclother'] = 'Autre';
+$labels['aclread'] = 'Lecture';
+$labels['aclwrite'] = 'Écriture';
+$labels['acldelete'] = 'Supprimer';
+$labels['shortacll'] = 'Consultation';
+$labels['shortaclr'] = 'Lecture';
+$labels['shortacls'] = 'Conserver';
+$labels['shortaclw'] = 'Écriture';
+$labels['shortacli'] = 'Insérer';
+$labels['shortaclp'] = 'Publier';
+$labels['shortaclc'] = 'Créer';
+$labels['shortaclk'] = 'Créer';
+$labels['shortacld'] = 'Supprimer';
+$labels['shortaclt'] = 'Supprimer';
+$labels['shortacle'] = 'Purger';
+$labels['shortaclx'] = 'Suppression de dossier';
+$labels['shortacla'] = 'Administrer';
+$labels['shortacln'] = 'Annoter';
+$labels['shortaclother'] = 'Autre';
+$labels['shortaclread'] = 'Lecture';
+$labels['shortaclwrite'] = 'Écriture';
+$labels['shortacldelete'] = 'Supprimer';
+$labels['longacll'] = 'Ce dossier est visible dans les listes et on peut s\'y abonner';
+$labels['longaclr'] = 'Le dossier peut-être ouvert en lecture';
+$labels['longacls'] = 'Le drapeau Vu des courriels peut-être changée';
+$labels['longaclw'] = 'Les drapeaux et mot-clefs des courriels peuvent-être changés, sauf pour Vu et Supprimé';
+$labels['longacli'] = 'Les courriels peuvent-être écrits ou copiés dans le dossier';
+$labels['longaclp'] = 'Les courriels peuvent-être publiés dans ce dossier';
+$labels['longaclc'] = 'Les dossiers peuvent-être créés (ou renommés) directement depuis ce dossier';
+$labels['longaclk'] = 'Les dossiers peuvent-être créés (ou renommés) directement depuis ce dossier';
+$labels['longacld'] = 'Le drapeau de suppression des courriels peut-être modifiée';
+$labels['longaclt'] = 'Le drapeau de suppression des courriels peut-être modifiée';
+$labels['longacle'] = 'Les courriels peuvent-être purgés';
+$labels['longaclx'] = 'Le dossier peut-être supprimé ou renommé';
+$labels['longacla'] = 'Les droits d\'accès du dossier peuvent être modifiés';
+$labels['longacln'] = 'Les métadonnées partagées des courriels (annotations) peuvent être changées';
+$labels['longaclfull'] = 'Contrôle total, incluant l\'administration des dossiers';
+$labels['longaclread'] = 'Le dossier peut-être ouvert en lecture';
+$labels['longaclwrite'] = 'Les courriels peuvent-être marqués, écrits ou copiés dans ce dossier';
+$labels['longacldelete'] = 'Les courriels peuvent être supprimés';
+$labels['longaclother'] = 'Autres droits d\'accès';
+$labels['ariasummaryacltable'] = 'Liste de droits d\'accès';
+$labels['arialabelaclactions'] = 'Lister les actions';
+$labels['arialabelaclform'] = 'Formulaire de droits d\'accès';
+$messages['deleting'] = 'Suppression des droits d\'accès…';
+$messages['saving'] = 'Enregistrement des droits d\'accès…';
+$messages['updatesuccess'] = 'Les droits d\'accès ont été changés avec succès';
+$messages['deletesuccess'] = 'Les droits d\'accès ont été supprimés avec succès';
+$messages['createsuccess'] = 'Les droits d\'accès ont été ajoutés avec succès';
+$messages['updateerror'] = 'Impossible de mettre à jour les droits d\'accès';
+$messages['deleteerror'] = 'Impossible de supprimer les droits d\'accès';
+$messages['createerror'] = 'Impossible d\'ajouter des droits d\'accès';
+$messages['deleteconfirm'] = 'Êtes-vous sûr de vouloir retirer les droits d\'accès des utilisateurs sélectionnés ?';
+$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/fy_NL.inc b/plugins/acl/localization/fy_NL.inc
new file mode 100644
index 0000000..340190a
--- /dev/null
+++ b/plugins/acl/localization/fy_NL.inc
@@ -0,0 +1,19 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['username'] = 'Brûker:';
+?>
diff --git a/plugins/acl/localization/gl_ES.inc b/plugins/acl/localization/gl_ES.inc
new file mode 100644
index 0000000..c1841f5
--- /dev/null
+++ b/plugins/acl/localization/gl_ES.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Compartindo';
+$labels['myrights'] = 'Permisos de acceso';
+$labels['username'] = 'Utente:';
+$labels['advanced'] = 'Modo avanzado';
+$labels['newuser'] = 'Engadir entrada';
+$labels['editperms'] = 'Editar permisos';
+$labels['actions'] = 'Accións sobre os Permisos de acceso...';
+$labels['anyone'] = 'Todas as persoas usuarias (calquera)';
+$labels['anonymous'] = 'Persoas convidadas (anónimo)';
+$labels['identifier'] = 'Identificador';
+$labels['acll'] = 'Bloquear';
+$labels['aclr'] = 'Ler mensaxes';
+$labels['acls'] = 'Manter estado actividade';
+$labels['aclw'] = 'Marcas de lectura';
+$labels['acli'] = 'Engadir (Copiar en)';
+$labels['aclp'] = 'Envío';
+$labels['aclc'] = 'Crear subcartafoles';
+$labels['aclk'] = 'Crear subcartafoles';
+$labels['acld'] = 'Borrar mensaxes';
+$labels['aclt'] = 'Borrar mensaxes';
+$labels['acle'] = 'Expurga';
+$labels['aclx'] = 'Eliminar cartafol';
+$labels['acla'] = 'Administrar';
+$labels['acln'] = 'Crear anotacións para as mensaxes';
+$labels['aclfull'] = 'Control total';
+$labels['aclother'] = 'Outros';
+$labels['aclread'] = 'Lectura';
+$labels['aclwrite'] = 'Escritura';
+$labels['acldelete'] = 'Borrado';
+$labels['shortacll'] = 'Buscar';
+$labels['shortaclr'] = 'Ler';
+$labels['shortacls'] = 'Manter';
+$labels['shortaclw'] = 'Escribir';
+$labels['shortacli'] = 'Inserir';
+$labels['shortaclp'] = 'Publicar';
+$labels['shortaclc'] = 'Crear';
+$labels['shortaclk'] = 'Crear';
+$labels['shortacld'] = 'Eliminar';
+$labels['shortaclt'] = 'Eliminar';
+$labels['shortacle'] = 'Expurga';
+$labels['shortaclx'] = 'Eliminar cartafol';
+$labels['shortacla'] = 'Administrar';
+$labels['shortacln'] = 'Crear anotación';
+$labels['shortaclother'] = 'Outros';
+$labels['shortaclread'] = 'Lectura';
+$labels['shortaclwrite'] = 'Escritura';
+$labels['shortacldelete'] = 'Eliminar';
+$labels['longacll'] = 'O cartafol é visíbel e pode ser subscrito';
+$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 Vistas 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 cartafoles directamente baixo deste cartafol';
+$labels['longaclk'] = 'Pódense crear (ou renomear) os cartafoles directamente baixo deste cartafol';
+$labels['longacld'] = 'Pódense mudar as mensaxes coa marca Eliminar';
+$labels['longaclt'] = 'Pódense mudar as mensaxes coa marca Eliminar';
+$labels['longacle'] = 'As mensaxes poden ser expurgadas';
+$labels['longaclx'] = 'Pódese borrar ou renomear o cartafol';
+$labels['longacla'] = 'Pódense mudar os permisos de acceso ao cartafol';
+$labels['longacln'] = 'Pódense trocar as anotacións das mensaxes';
+$labels['longaclfull'] = 'Control total inclúe administración de cartafoles';
+$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';
+$labels['longaclother'] = 'Outros dereitos de acceso';
+$labels['ariasummaryacltable'] = 'Lista de dereitos de acceso';
+$labels['arialabelaclactions'] = 'Accións de lista';
+$labels['arialabelaclform'] = 'Formulario de dereitos de acceso';
+$messages['deleting'] = 'Borrando permisos de acceso...';
+$messages['saving'] = 'Gardando permisos de acceso...';
+$messages['updatesuccess'] = 'Mudados con éxito os permisos de acceso';
+$messages['deletesuccess'] = 'Borrados con éxito os permisos de acceso';
+$messages['createsuccess'] = 'Engadidos con éxito os permisos de acceso';
+$messages['updateerror'] = 'Non se poden actualizar os permisos de acceso';
+$messages['deleteerror'] = 'Non se poden borrar os permisos de acceso';
+$messages['createerror'] = 'Non se poden engadir permisos de acceso';
+$messages['deleteconfirm'] = 'De certo que queres eliminar os permisos de acceso da(s) persoa(s) usuaria(s) escollida(s)?';
+$messages['norights'] = 'Non se especificaron permisos!';
+$messages['nouser'] = 'Non se especificou o nome da persoa usuaria!';
+?>
diff --git a/plugins/acl/localization/he_IL.inc b/plugins/acl/localization/he_IL.inc
new file mode 100644
index 0000000..e2bc226
--- /dev/null
+++ b/plugins/acl/localization/he_IL.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'שיתוף';
+$labels['myrights'] = 'זכויות גישה';
+$labels['username'] = 'משתמש:';
+$labels['advanced'] = 'מצב מתקדם';
+$labels['newuser'] = 'הוסף ערך';
+$labels['editperms'] = 'עריכת הרשאות';
+$labels['actions'] = 'פעולות על זכויות גישה...';
+$labels['anyone'] = 'כל המשתמשים (כל אחד)';
+$labels['anonymous'] = 'אורחים (אנונימי)';
+$labels['identifier'] = 'מזהה';
+$labels['acll'] = 'חיפוש';
+$labels['aclr'] = 'קריאת הודעות';
+$labels['acls'] = 'שמירה על סטטוס נראה';
+$labels['aclw'] = 'דגלי כתיבה';
+$labels['acli'] = 'הוספה בין ערכים (העתקה לתוך)';
+$labels['aclp'] = 'פרסום';
+$labels['aclc'] = 'יצירת תת־תיקיות';
+$labels['aclk'] = 'יצירת תת־תיקיות';
+$labels['acld'] = 'מחיקת הודעות';
+$labels['aclt'] = 'מחיקת הודעות';
+$labels['acle'] = 'ניקוי רשומות שבוטלו';
+$labels['aclx'] = 'מחיקת תיקיה';
+$labels['acla'] = 'מנהל';
+$labels['acln'] = 'הוספה של הערת תיוג להודעות';
+$labels['aclfull'] = 'שליטה מלאה';
+$labels['aclother'] = 'אחר';
+$labels['aclread'] = 'קריאה';
+$labels['aclwrite'] = 'כתיבה';
+$labels['acldelete'] = 'מחיקה';
+$labels['shortacll'] = 'חיפוש';
+$labels['shortaclr'] = 'קריאה';
+$labels['shortacls'] = 'להשאיר';
+$labels['shortaclw'] = 'כתיבה';
+$labels['shortacli'] = 'הוספה בין ערכים';
+$labels['shortaclp'] = 'פרסום';
+$labels['shortaclc'] = 'יצירה';
+$labels['shortaclk'] = 'יצירה';
+$labels['shortacld'] = 'מחיקה';
+$labels['shortaclt'] = 'מחיקה';
+$labels['shortacle'] = 'ניקוי רשומות שבוטלו';
+$labels['shortaclx'] = 'מחיקת תיקיה';
+$labels['shortacla'] = 'מנהל';
+$labels['shortacln'] = 'הוספה של הערת תיוג';
+$labels['shortaclother'] = 'אחר';
+$labels['shortaclread'] = 'קריאה';
+$labels['shortaclwrite'] = 'כתיבה';
+$labels['shortacldelete'] = 'מחיקה';
+$labels['longacll'] = 'התיקיה תראה ברשימות וניתן יהיה להרשם אליה';
+$labels['longaclr'] = 'ניתן לפתוח את התיקיה ולקרוא בה';
+$labels['longacls'] = 'ניתן לשנות דגל נראה בהודעות';
+$labels['longaclw'] = 'ניתן לשנות דגלים ומילות מפתח בהודעות, למעט נראה ונמחק';
+$labels['longacli'] = 'ניתן לכתוב הודעות לתיקיה או למוחקן';
+$labels['longaclp'] = 'ניתן לפרסם הודעות לתוך תיקיה זו';
+$labels['longaclc'] = 'ניתן ליצור (או לשנות שם) תיקיות, ישירות תחת תיקיה זו';
+$labels['longaclk'] = 'ניתן ליצור (או לשנות שם) תיקיות, ישירות תחת תיקיה זו';
+$labels['longacld'] = 'ניתן לשנות דגל נמחק של הודעות';
+$labels['longaclt'] = 'ניתן לשנות דגל נמחק של הודעות';
+$labels['longacle'] = 'ניתן לנקות הודעות שסומנו כמבוטלות';
+$labels['longaclx'] = 'ניתן למחוק תיקיה זו או לשנות שמה';
+$labels['longacla'] = 'ניתן לשנות זכויות גישה של תיקיה זו';
+$labels['longacln'] = 'ניתן לשנות הערות תיוג המשותפות להודעות';
+$labels['longaclfull'] = 'שליטה מלאה כולל ניהול התיקיה';
+$labels['longaclread'] = 'ניתן לפתוח את התיקיה ולקרוא בה';
+$labels['longaclwrite'] = 'ניתן לסמן, לכתוב או להעתיק הודעות לתיקיה זו';
+$labels['longacldelete'] = 'ניתן למחוק הודעות';
+$labels['longaclother'] = 'זכויות גישה אחרות';
+$labels['ariasummaryacltable'] = 'רשימת זכויות גישה';
+$labels['arialabelaclactions'] = 'רשימת פעולות';
+$labels['arialabelaclform'] = 'טופס זכויות גישה';
+$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/hr_HR.inc b/plugins/acl/localization/hr_HR.inc
new file mode 100644
index 0000000..83ad484
--- /dev/null
+++ b/plugins/acl/localization/hr_HR.inc
@@ -0,0 +1,89 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Dijeljenje';
+$labels['myrights'] = 'Prava pristupa';
+$labels['username'] = 'Korisnik:';
+$labels['newuser'] = 'Dodaj unos/pravilo';
+$labels['actions'] = 'Akcije prava pristupa...';
+$labels['anyone'] = 'Svi korisnici (anyone)';
+$labels['anonymous'] = 'Gosti (anonymous)';
+$labels['identifier'] = 'Identifikator';
+$labels['acll'] = 'Pretraga';
+$labels['aclr'] = 'Pročitaj poruke';
+$labels['acls'] = 'Zadrži u stanju "Viđeno"';
+$labels['aclw'] = 'Zapiši oznake';
+$labels['acli'] = 'Umetni (kopiraj u)';
+$labels['aclp'] = 'Pošalji';
+$labels['aclc'] = 'Napravi podmapu';
+$labels['aclk'] = 'Napravi podmapu';
+$labels['acld'] = 'Obriši poruke';
+$labels['aclt'] = 'Obriši poruke';
+$labels['acle'] = 'Trajno obriši';
+$labels['aclx'] = 'Obriši mapu';
+$labels['acla'] = 'Administriraj';
+$labels['aclfull'] = 'Potpuna kontrola';
+$labels['aclother'] = 'Drugo';
+$labels['aclread'] = 'Čitanje';
+$labels['aclwrite'] = 'Pisanje';
+$labels['acldelete'] = 'Obriši';
+$labels['shortacll'] = 'Pretraži';
+$labels['shortaclr'] = 'Čitaj';
+$labels['shortacls'] = 'Zadrži';
+$labels['shortaclw'] = 'Piši';
+$labels['shortacli'] = 'Umetni';
+$labels['shortaclp'] = 'Pošalji';
+$labels['shortaclc'] = 'Stvori';
+$labels['shortaclk'] = 'Stvori';
+$labels['shortacld'] = 'Obriši';
+$labels['shortaclt'] = 'Obriši';
+$labels['shortacle'] = 'Trajno obriši';
+$labels['shortaclx'] = 'Obriši mapu';
+$labels['shortacla'] = 'Administriraj';
+$labels['shortaclother'] = 'Drugo';
+$labels['shortaclread'] = 'Čitanje';
+$labels['shortaclwrite'] = 'Pisanje';
+$labels['shortacldelete'] = 'Brisanje';
+$labels['longacll'] = 'Mapa je vidljiva u listi i može se na nju pretplatiti';
+$labels['longaclr'] = 'Mapa može biti otvorena za čitanje';
+$labels['longacls'] = 'Oznaku "Viđeno" je moguće mijenjati u porukama';
+$labels['longaclw'] = 'Oznake i ključne riječi, osim oznaka "Viđeno" i "Obrisano", se mogu mijenjati';
+$labels['longacli'] = 'Poruke mogu biti pohranjene ili kopirane u mapu';
+$labels['longaclp'] = 'Poruke mogu biti postavljene u mapu';
+$labels['longaclc'] = 'Mape pod ovom mapom se mogu stvarati (i preimenovati)';
+$labels['longaclk'] = 'Mape pod ovom mapom se mogu stvarati (i preimenovati)';
+$labels['longacld'] = 'Oznaku "Obrisano" je moguće mijenjati u porukama';
+$labels['longaclt'] = 'Oznaku "Obrisano" je moguće mijenjati u porukama';
+$labels['longacle'] = 'Poruke mogu biti izbrisane';
+$labels['longaclx'] = 'Mapa može biti obrisana ili preimenovana';
+$labels['longacla'] = 'Prava pristupa nad mapom se mogu mijenjati';
+$labels['longaclfull'] = 'Potpuna kontrola uključujući administraciju mapa';
+$labels['longaclread'] = 'Mapa može biti otvorena za čitanje';
+$labels['longaclwrite'] = 'Poruke mogu biti označene, pohranjene ili kopirane u mapu';
+$labels['longacldelete'] = 'Poruke mogu biti obrisane';
+$messages['deleting'] = 'Brišem prava pristupa...';
+$messages['saving'] = 'Pohranjujem prava pristupa';
+$messages['updatesuccess'] = 'Prava pristupa uspješno promjenjena';
+$messages['deletesuccess'] = 'Prava pristupa uspješno obrisana';
+$messages['createsuccess'] = 'Prava pristupa uspješno dodana';
+$messages['updateerror'] = 'Ne mogu pohraniti vCard';
+$messages['deleteerror'] = 'Ne mogu obrisati prava pristupa';
+$messages['createerror'] = 'Ne mogu dodati prava pristupa';
+$messages['deleteconfirm'] = 'Jeste li sigurni da želite obrisati prava pristupa za odabranog korisnika(e)?';
+$messages['norights'] = 'Nije navedeno pravo pristupa!';
+$messages['nouser'] = 'Nije navedeno korisničko ime!';
+?>
diff --git a/plugins/acl/localization/hu_HU.inc b/plugins/acl/localization/hu_HU.inc
new file mode 100644
index 0000000..3b813ac
--- /dev/null
+++ b/plugins/acl/localization/hu_HU.inc
@@ -0,0 +1,94 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Megosztás';
+$labels['myrights'] = 'Hozzáférési jogok';
+$labels['username'] = 'Felhasználó:';
+$labels['advanced'] = 'Haladó mód';
+$labels['newuser'] = 'Elem hozzáadása';
+$labels['editperms'] = 'Jogosultságok szerkesztése';
+$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';
+$labels['aclw'] = 'Üzenet jelölése';
+$labels['acli'] = 'Beillesztés (Bemásolás)';
+$labels['aclp'] = 'Bejegyzés';
+$labels['aclc'] = 'Almappa létrehozás';
+$labels['aclk'] = 'Almappa létrehozás';
+$labels['acld'] = 'Üzenetek törlése';
+$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['acln'] = 'Üzenetekhez címkézés';
+$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';
+$labels['shortaclw'] = 'Írás';
+$labels['shortacli'] = 'Beszúrás';
+$labels['shortaclp'] = 'Bejegyzés';
+$labels['shortaclc'] = 'Létrehozás';
+$labels['shortaclk'] = 'Létrehozás';
+$labels['shortacld'] = 'Törlés';
+$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['shortacln'] = 'Cimkézés';
+$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ó';
+$labels['longaclw'] = 'Az üzenetek jelölései és kulcsszavai módosíthatóak, kivéve az olvasottsági állapotot és az üzenet törölt állapotát.';
+$labels['longacli'] = 'Üzenetek irhatóak és máolshatóak a mappába.';
+$labels['longaclp'] = 'Ebbe a mappába tudsz üzeneteket tenni.';
+$labels['longaclc'] = 'Mappák létrehozhazóak (átnevezhetőek) ez alatt a mappa alatt.';
+$labels['longaclk'] = 'Mappák létrehozhazóak (átnevezhetőek) ez alatt a mappa alatt.';
+$labels['longacld'] = 'Üzenet törölve jelző módositható.';
+$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['longacln'] = 'Üzenetek megosztott metaadatai(cimkéi) módosíthatoak';
+$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.';
+$messages['deletesuccess'] = 'A hozzáférési jogok törlése sikeresen megtörtént.';
+$messages['createsuccess'] = 'A hozzáférési jogok hozzáadása sikeresen megtörtént.';
+$messages['updateerror'] = 'Nem sikerült módosítani a hozzáférési jogokat.';
+$messages['deleteerror'] = 'Nem sikerült törölni a hozzáférési jogokat.';
+$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
new file mode 100644
index 0000000..0812612
--- /dev/null
+++ b/plugins/acl/localization/hy_AM.inc
@@ -0,0 +1,89 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Կիսվել';
+$labels['myrights'] = 'Մուտքի իրավունքներ';
+$labels['username'] = 'Օգտատեր`';
+$labels['newuser'] = 'Ավելացնել գրառում';
+$labels['actions'] = 'Մուտքի իրավունքների գործողություններ…';
+$labels['anyone'] = 'Բոլոր օգտվողները (ցանկացած)';
+$labels['anonymous'] = 'Հյուրերը (անանուն)';
+$labels['identifier'] = 'Նկարագրիչ';
+$labels['acll'] = 'Փնտրում';
+$labels['aclr'] = 'Կարդալ հաղորդագրությունները';
+$labels['acls'] = 'Պահպանել դիտման կարգավիճակը';
+$labels['aclw'] = 'Գրառման նշումներ';
+$labels['acli'] = 'Ներդնել (Պատճենել ներս)';
+$labels['aclp'] = 'Հրապարակել';
+$labels['aclc'] = 'Ստեղծել ենթապանակներ';
+$labels['aclk'] = 'Ստեղծել ենթապանակներ';
+$labels['acld'] = 'Ջնջել հաղորդագրությունները';
+$labels['aclt'] = 'Ջնջել հաղորդագրությունները';
+$labels['acle'] = 'Հեռացնել';
+$labels['aclx'] = 'Ջնջել պանակը';
+$labels['acla'] = 'Կառավարել';
+$labels['aclfull'] = 'Լրիվ վերահսկում';
+$labels['aclother'] = 'Այլ';
+$labels['aclread'] = 'Կարդալ';
+$labels['aclwrite'] = 'Գրել';
+$labels['acldelete'] = 'Ջնջել';
+$labels['shortacll'] = 'Փնտրում';
+$labels['shortaclr'] = 'Կարդալ';
+$labels['shortacls'] = 'Պահել';
+$labels['shortaclw'] = 'Գրել';
+$labels['shortacli'] = 'Ներդնել';
+$labels['shortaclp'] = 'Հրապարակել';
+$labels['shortaclc'] = 'Ստեղծել';
+$labels['shortaclk'] = 'Ստեղծել';
+$labels['shortacld'] = 'Ջնջել';
+$labels['shortaclt'] = 'Ջնջել';
+$labels['shortacle'] = 'Հեռացնել';
+$labels['shortaclx'] = 'Պանակի ջնջում';
+$labels['shortacla'] = 'Կառավարել';
+$labels['shortaclother'] = 'Այլ';
+$labels['shortaclread'] = 'Կարդալ';
+$labels['shortaclwrite'] = 'Գրել';
+$labels['shortacldelete'] = 'Ջնջել';
+$labels['longacll'] = 'Պանակը երևում է ցուցակներում և նրան հնարավոր է բաժանորդագրվել';
+$labels['longaclr'] = 'Պանակը կարող է բացվել ընթերցման համար';
+$labels['longacls'] = 'Տեսված հաղորդագրությունների նշումը կարող է փոփոխվել';
+$labels['longaclw'] = 'Հաղորդագրությունների նշումները և հիմնաբառերը կարող են փոփոխվել, բացառությամբ Տեսած և Ջնջված նշումների';
+$labels['longacli'] = 'Հաղորդագրությունները կարող են գրվել և պատճենվել պանակի մեջ';
+$labels['longaclp'] = 'Հաղորդագրությունները կարող են հրապարակվել այս պանակում';
+$labels['longaclc'] = 'Պանակները կարող են ստեղծվել (կամ վերանվանվել) այս պանակում';
+$labels['longaclk'] = 'Պանակները կարող են ստեղծվել (կամ վերանվանվել) այս պանակում';
+$labels['longacld'] = 'Հաղորդագրությունների Ջնջել նշումը կարող է փոփոխվել';
+$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/ia.inc b/plugins/acl/localization/ia.inc
new file mode 100644
index 0000000..c362738
--- /dev/null
+++ b/plugins/acl/localization/ia.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Uso in commun';
+$labels['myrights'] = 'Derectos de accesso';
+$labels['username'] = 'Usator:';
+$labels['advanced'] = 'Modo avantiate';
+$labels['newuser'] = 'Adder entrata';
+$labels['editperms'] = 'Modificar permissiones';
+$labels['actions'] = 'Actiones de derecto de accesso...';
+$labels['anyone'] = 'Tote le usatores (non importa qui)';
+$labels['anonymous'] = 'Hospites (anonyme)';
+$labels['identifier'] = 'Identificator';
+$labels['acll'] = 'Cercar';
+$labels['aclr'] = 'Leger messages';
+$labels['acls'] = 'Retener le stato Vidite';
+$labels['aclw'] = 'Signales de scriptura';
+$labels['acli'] = 'Inserer (copiar in)';
+$labels['aclp'] = 'Inviar';
+$labels['aclc'] = 'Crear subdossieres';
+$labels['aclk'] = 'Crear subdossieres';
+$labels['acld'] = 'Deler messages';
+$labels['aclt'] = 'Deler messages';
+$labels['acle'] = 'Expunger';
+$labels['aclx'] = 'Deler dossier';
+$labels['acla'] = 'Administrar';
+$labels['acln'] = 'Annotar messages';
+$labels['aclfull'] = 'Controlo total';
+$labels['aclother'] = 'Altere';
+$labels['aclread'] = 'Leger';
+$labels['aclwrite'] = 'Scriber';
+$labels['acldelete'] = 'Deler';
+$labels['shortacll'] = 'Cercar';
+$labels['shortaclr'] = 'Leger';
+$labels['shortacls'] = 'Retener';
+$labels['shortaclw'] = 'Scriber';
+$labels['shortacli'] = 'Inserer';
+$labels['shortaclp'] = 'Inviar';
+$labels['shortaclc'] = 'Crear';
+$labels['shortaclk'] = 'Crear';
+$labels['shortacld'] = 'Deler';
+$labels['shortaclt'] = 'Deler';
+$labels['shortacle'] = 'Expunger';
+$labels['shortaclx'] = 'Deletion de dossier';
+$labels['shortacla'] = 'Administrar';
+$labels['shortacln'] = 'Annotar';
+$labels['shortaclother'] = 'Altere';
+$labels['shortaclread'] = 'Leger';
+$labels['shortaclwrite'] = 'Scriber';
+$labels['shortacldelete'] = 'Deler';
+$labels['longacll'] = 'Le dossier es visibile in listas e on pote subscriber se a illo';
+$labels['longaclr'] = 'Le dossier pote esser aperite pro lectura';
+$labels['longacls'] = 'Le signal "Vidite" de messages pote esser cambiate';
+$labels['longaclw'] = 'Le signales e parolas-clave de messages pote esser cambiate, excepte "Vidite" e "Delite"';
+$labels['longacli'] = 'Messages pote esser scribite o copiate al dossier';
+$labels['longaclp'] = 'Messages pote esser inviate a iste dossier';
+$labels['longaclc'] = 'Dossieres pote esser create (o renominate) directemente sub iste dossier';
+$labels['longaclk'] = 'Dossieres pote esser create (o renominate) directemente sub iste dossier';
+$labels['longacld'] = 'Le signal "Deler" de messages pote esser cambiate';
+$labels['longaclt'] = 'Le signal "Deler" de messages pote esser cambiate';
+$labels['longacle'] = 'Messages pote esser expungite';
+$labels['longaclx'] = 'Le dossier pote esser delite o renominate';
+$labels['longacla'] = 'Le derectos de accesso del dossier pote esser cambiate';
+$labels['longacln'] = 'Le metadatos commun (annotationes) de messages pote esser cambiate';
+$labels['longaclfull'] = 'Controlo total incluse le administration de dossieres';
+$labels['longaclread'] = 'Le dossier pote esser aperite pro lectura';
+$labels['longaclwrite'] = 'Messages pote esser marcate, scribite o copiate al dossier';
+$labels['longacldelete'] = 'Messages pote esser delite';
+$labels['longaclother'] = 'Altere derectos de accesso';
+$labels['ariasummaryacltable'] = 'Lista de derectos de accesso';
+$labels['arialabelaclactions'] = 'Listar actiones';
+$labels['arialabelaclform'] = 'Formulario de derectos de accesso';
+$messages['deleting'] = 'A deler derectos de accesso...';
+$messages['saving'] = 'A salveguardar derectos de accesso...';
+$messages['updatesuccess'] = 'Le derectos de accesso ha essite cambiate';
+$messages['deletesuccess'] = 'Le derectos de accesso ha essite delite';
+$messages['createsuccess'] = 'Le derectos de accesso ha essite addite';
+$messages['updateerror'] = 'Impossibile actualisar le derectos de accesso';
+$messages['deleteerror'] = 'Impossibile deler derectos de accesso';
+$messages['createerror'] = 'Impossibile adder derectos de accesso';
+$messages['deleteconfirm'] = 'Es vos secur de voler remover le derectos de accesso del usator(es) seligite?';
+$messages['norights'] = 'Nulle derecto ha essite specificate.';
+$messages['nouser'] = 'Nulle nomine de usator ha essite specificate.';
+?>
diff --git a/plugins/acl/localization/id_ID.inc b/plugins/acl/localization/id_ID.inc
new file mode 100644
index 0000000..348ec04
--- /dev/null
+++ b/plugins/acl/localization/id_ID.inc
@@ -0,0 +1,94 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Berbagi';
+$labels['myrights'] = 'Hak Akses';
+$labels['username'] = 'Pengguna:';
+$labels['advanced'] = 'Mode Lanjut';
+$labels['newuser'] = 'Tambahkan entri';
+$labels['editperms'] = 'Ubah izin';
+$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';
+$labels['aclw'] = 'Membuat tanda';
+$labels['acli'] = 'Sisipkan (Salin kedalam)';
+$labels['aclp'] = 'Tulisan';
+$labels['aclc'] = 'Buat subfolder';
+$labels['aclk'] = 'Buat subfolder';
+$labels['acld'] = 'Hapus pesan';
+$labels['aclt'] = 'Hapus pesan';
+$labels['acle'] = 'Menghapus';
+$labels['aclx'] = 'Hapus folder';
+$labels['acla'] = 'Kelola';
+$labels['acln'] = 'Berikan keterangan pesan';
+$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';
+$labels['shortaclw'] = 'Tulis';
+$labels['shortacli'] = 'Sisipkan';
+$labels['shortaclp'] = 'Tulisan';
+$labels['shortaclc'] = 'Buat';
+$labels['shortaclk'] = 'Buat';
+$labels['shortacld'] = 'Hapus';
+$labels['shortaclt'] = 'Hapus';
+$labels['shortacle'] = 'Buang';
+$labels['shortaclx'] = 'Hapus folder';
+$labels['shortacla'] = 'Kelola';
+$labels['shortacln'] = 'Berikan keterangan';
+$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';
+$labels['longaclw'] = 'Tanda pesan dan kata kunci dapat diubah, kecuali Terbaca dan Terhapus';
+$labels['longacli'] = 'Pesan dapat ditulis atau disalin kedalam folder';
+$labels['longaclp'] = 'Pesan dapat dikirim ke folder ini';
+$labels['longaclc'] = 'Folder dapat dibuat (atau diubah namanya) langsung dari folder ini';
+$labels['longaclk'] = 'Folder dapat dibuat (atau diubah namanya) langsung dari folder ini';
+$labels['longacld'] = 'Tanda hapus pesan dapat diubah';
+$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['longacln'] = 'Metadata pesan bersama (penjelasan) 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';
+$messages['deletesuccess'] = 'Hak akses berhasil dihapus';
+$messages['createsuccess'] = 'Hak akses berhasil ditambahkan';
+$messages['updateerror'] = 'Tidak dapat memperbaharui hak akses';
+$messages['deleteerror'] = 'Tidak dapat menghapus hak akses';
+$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
new file mode 100644
index 0000000..1201c7e
--- /dev/null
+++ b/plugins/acl/localization/it_IT.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'Condivisione';
+$labels['myrights'] = 'Diritti d\'accesso';
+$labels['username'] = 'Utente:';
+$labels['advanced'] = 'Modalità avanzata';
+$labels['newuser'] = 'Aggiungi voce';
+$labels['editperms'] = 'Modifica permessi';
+$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';
+$labels['aclw'] = 'Flag di scrittura';
+$labels['acli'] = 'Inserisci (Copia in)';
+$labels['aclp'] = 'Invio';
+$labels['aclc'] = 'Crea sottocartelle';
+$labels['aclk'] = 'Crea sottocartelle';
+$labels['acld'] = 'Elimina messaggi';
+$labels['aclt'] = 'Elimina messaggi';
+$labels['acle'] = 'Elimina';
+$labels['aclx'] = 'Elimina cartella';
+$labels['acla'] = 'Amministra';
+$labels['acln'] = 'Annota messaggi';
+$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';
+$labels['shortaclw'] = 'Scrittura';
+$labels['shortacli'] = 'Inserisci';
+$labels['shortaclp'] = 'Invio';
+$labels['shortaclc'] = 'Crea';
+$labels['shortaclk'] = 'Crea';
+$labels['shortacld'] = 'Elimina';
+$labels['shortaclt'] = 'Elimina';
+$labels['shortacle'] = 'Elimina';
+$labels['shortaclx'] = 'Elimina cartella';
+$labels['shortacla'] = 'Amministra';
+$labels['shortacln'] = 'Annota';
+$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';
+$labels['longaclw'] = 'I flag dei messaggi e le keywords possono essere cambiati, ad esclusione di Visto ed Eliminato';
+$labels['longacli'] = 'I messaggi possono essere scritti o copiati nella cartella';
+$labels['longaclp'] = 'I messaggi possono essere inviati a questa cartella';
+$labels['longaclc'] = 'Possono essere create (o rinominata) cartelle direttamente in questa cartella.';
+$labels['longaclk'] = 'Possono essere create (o rinominata) cartelle direttamente in questa cartella.';
+$labels['longacld'] = 'Il flag Messaggio Eliminato può essere cambiato';
+$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['longacln'] = 'I metadati (annotazioni) dei messaggi condivisi possono essere modificati';
+$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';
+$labels['longaclother'] = 'Altri diritti di accesso';
+$labels['ariasummaryacltable'] = 'Elenco dei diritti di accesso';
+$labels['arialabelaclactions'] = 'Lista azioni';
+$labels['arialabelaclform'] = 'Modulo di accesso';
+$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';
+$messages['deletesuccess'] = 'I diritti d\'accesso sono stati eliminati';
+$messages['createsuccess'] = 'I diritti d\'accesso sono stati aggiunti';
+$messages['updateerror'] = 'Impossibile aggiornare i diritti d\'accesso';
+$messages['deleteerror'] = 'Impossibile eliminare i diritti d\'accesso';
+$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
new file mode 100644
index 0000000..52c5940
--- /dev/null
+++ b/plugins/acl/localization/ja_JP.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = '共有';
+$labels['myrights'] = 'アクセス権';
+$labels['username'] = 'ユーザー:';
+$labels['advanced'] = '詳細なモード';
+$labels['newuser'] = '項目を追加';
+$labels['editperms'] = '編集の権限';
+$labels['actions'] = 'アクセス権の動作...';
+$labels['anyone'] = '(誰でも)すべてのユーザー';
+$labels['anonymous'] = 'ゲスト(匿名)';
+$labels['identifier'] = '識別子';
+$labels['acll'] = '検索';
+$labels['aclr'] = 'メッセージを読む';
+$labels['acls'] = '既読の状態を保持';
+$labels['aclw'] = '書き込みフラッグ';
+$labels['acli'] = '挿入(中に複製)';
+$labels['aclp'] = '投稿';
+$labels['aclc'] = 'サブフォルダを作成';
+$labels['aclk'] = 'サブフォルダを作成';
+$labels['acld'] = 'メッセージを削除';
+$labels['aclt'] = 'メッセージを削除';
+$labels['acle'] = '抹消';
+$labels['aclx'] = 'フォルダーを削除';
+$labels['acla'] = '管理';
+$labels['acln'] = 'メッセージに注釈';
+$labels['aclfull'] = '完全な制御';
+$labels['aclother'] = 'その他';
+$labels['aclread'] = '読み込み';
+$labels['aclwrite'] = '書き込み';
+$labels['acldelete'] = '削除';
+$labels['shortacll'] = '検索';
+$labels['shortaclr'] = '読み込み';
+$labels['shortacls'] = '保持';
+$labels['shortaclw'] = '書き込み';
+$labels['shortacli'] = '挿入';
+$labels['shortaclp'] = '投稿';
+$labels['shortaclc'] = '作成';
+$labels['shortaclk'] = '作成';
+$labels['shortacld'] = '削除';
+$labels['shortaclt'] = '削除';
+$labels['shortacle'] = '抹消';
+$labels['shortaclx'] = 'フォルダーの削除';
+$labels['shortacla'] = '管理';
+$labels['shortacln'] = '注釈';
+$labels['shortaclother'] = 'その他';
+$labels['shortaclread'] = '読み込み';
+$labels['shortaclwrite'] = '書き込み';
+$labels['shortacldelete'] = '削除';
+$labels['longacll'] = 'フォルダーをリストに見えるようにして登録可能:';
+$labels['longaclr'] = 'フォルダーを読むことを可能';
+$labels['longacls'] = 'メッセージの既読のフラッグの変更を可能';
+$labels['longaclw'] = '既読と削除のフラッグを除く、メッセージのフラッグとキーワードの変更を可能';
+$labels['longacli'] = 'メッセージに書き込みとフォルダーへの複製を可能';
+$labels['longaclp'] = 'メッセージをこのフォルダーに投稿を可能';
+$labels['longaclc'] = 'このフォルダーの直下にフォルダーの作成と名前の変更を可能';
+$labels['longaclk'] = 'このフォルダーの直下にフォルダーの作成と名前の変更を可能';
+$labels['longacld'] = 'メッセージの削除フラッグの変更を可能';
+$labels['longaclt'] = 'メッセージの削除フラッグの変更を可能';
+$labels['longacle'] = 'メッセージの抹消を可能';
+$labels['longaclx'] = 'このフォルダーの削除や名前の変更を可能';
+$labels['longacla'] = 'フォルダーのアクセス権の変更を可能';
+$labels['longacln'] = 'メッセージの共有されるメタデータ(注釈)の変更を可能';
+$labels['longaclfull'] = 'フォルダーの管理を含めた完全な制御を可能';
+$labels['longaclread'] = 'フォルダーを読むことを可能';
+$labels['longaclwrite'] = 'メッセージにマークの設定、書き込み、フォルダーに複製を可能';
+$labels['longacldelete'] = 'メッセージの削除を可能';
+$labels['longaclother'] = '他のアクセス権';
+$labels['ariasummaryacltable'] = 'アクセス権の一覧';
+$labels['arialabelaclactions'] = '動作を一覧';
+$labels['arialabelaclform'] = 'アクセス権の欄';
+$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/km_KH.inc b/plugins/acl/localization/km_KH.inc
new file mode 100644
index 0000000..8310d4e
--- /dev/null
+++ b/plugins/acl/localization/km_KH.inc
@@ -0,0 +1,74 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = 'ការ​ចែក​រំលែក';
+$labels['myrights'] = 'សិទ្ធិ​ចូល';
+$labels['username'] = 'អ្នក​ប្រើ៖';
+$labels['advanced'] = 'បែប​កម្រិត​ខ្ពស់';
+$labels['newuser'] = 'បន្ថែម​ធាតុ';
+$labels['actions'] = 'សកម្មភាព​សិទ្ធិ​ចូល...';
+$labels['anyone'] = 'អ្នក​ប្រើ​ទាំង​អស់ (នរណា​ម្នាក់)';
+$labels['anonymous'] = 'ភ្ញៀវ (អនាមិក)';
+$labels['acll'] = 'ស្វែងរក';
+$labels['aclr'] = 'អាន​សារ';
+$labels['acli'] = 'បញ្ចូល (ចម្លង​មក​ដាក់)';
+$labels['aclp'] = 'ប្រកាស';
+$labels['aclc'] = 'បង្កើត​ថត​រង';
+$labels['aclk'] = 'បង្កើត​ថត​រង';
+$labels['acld'] = 'លុប​សារ';
+$labels['aclt'] = 'លុប​សារ';
+$labels['acle'] = 'ដកចេញ';
+$labels['aclx'] = 'លុប​ថត';
+$labels['acla'] = 'អភិបាល';
+$labels['aclfull'] = 'បញ្ជា​ទាំង​អស់';
+$labels['aclother'] = 'ផ្សេងៗ';
+$labels['aclread'] = 'អាន';
+$labels['aclwrite'] = 'សរសេរ';
+$labels['acldelete'] = 'លុប';
+$labels['shortacll'] = 'ស្វែងរក';
+$labels['shortaclr'] = 'អាន';
+$labels['shortacls'] = 'រក្សា';
+$labels['shortaclw'] = 'សរសេរ';
+$labels['shortacli'] = 'បញ្ចូល';
+$labels['shortaclp'] = 'ប្រកាស';
+$labels['shortaclc'] = 'បង្កើត';
+$labels['shortaclk'] = 'បង្កើត';
+$labels['shortacld'] = 'លុប';
+$labels['shortaclt'] = 'លុប';
+$labels['shortacle'] = 'ដកចេញ';
+$labels['shortaclx'] = 'ការ​លុប​ថត';
+$labels['shortacla'] = 'អភិបាល';
+$labels['shortaclother'] = 'ផ្សេងៗ';
+$labels['shortaclread'] = 'អាន';
+$labels['shortaclwrite'] = 'សរសេរ';
+$labels['shortacldelete'] = 'លុប';
+$labels['longaclr'] = 'ថត​នេះ​អាច​បើក​សម្រាប់​អាន';
+$labels['longacle'] = 'សារ​នេះ​អាច​ត្រូវ​បាន​ដក​ចេញ';
+$labels['longaclx'] = 'ថត​នេះ អាច​ត្រូវ​បាន​លុប ឬ​ ប្ដូរ​ឈ្មោះ';
+$labels['longacla'] = 'សិទ្ធិ​ចូល​ទៅ​កាន់​ថត​នេះ​អាច​ត្រូវ​បាន​​ផ្លាស់​ប្ដូរ​';
+$labels['longacldelete'] = 'សារ​នេះ​អាច​ត្រូវ​បាន​លុប';
+$messages['deleting'] = 'កំពុង​លុប​សិទ្ធិ​ចូល...';
+$messages['saving'] = 'រក្សា​ទុក​សិទ្ធិ​ចូល...';
+$messages['deletesuccess'] = 'លុប​សិទ្ធិ​ចូល​ដោយ​ជោគជ័យ​';
+$messages['createsuccess'] = 'បន្ថែម​សិទ្ធិ​ចូល​ដោយ​ជោគជ័យ';
+$messages['updateerror'] = 'មិន​អាច​ធ្វើ​បច្ចុប្បន្នភាព​សិទ្ធិ​ចូល';
+$messages['deleteerror'] = 'មិន​អាច​លុប​សិទ្ធិ​ចូល';
+$messages['createerror'] = 'មិន​អាច​បន្ថែម​សិទ្ធិ​ចូល';
+$messages['deleteconfirm'] = 'តើ​អ្នក​ពិត​ជា​ចង់​ដក​សិទ្ធ​ចូល​ពី​អ្នក​ប្រើប្រាស់​ដែល​បាន​រើស​មែនទេ?';
+$messages['norights'] = 'មិន​បាន​បញ្ជាក់​សិទ្ធិ​ច្បាស់​លាស់!';
+$messages['nouser'] = 'មិន​បាន​បញ្ជាក់​ឈ្មោះ​អ្នក​ប្រើ!';
+?>
diff --git a/plugins/acl/localization/ko_KR.inc b/plugins/acl/localization/ko_KR.inc
new file mode 100644
index 0000000..60b4b30
--- /dev/null
+++ b/plugins/acl/localization/ko_KR.inc
@@ -0,0 +1,98 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | plugins/acl/localization/<lang>.inc |
+ | |
+ | Localization file of the Roundcube Webmail ACL plugin |
+ | Copyright (C) 2012-2013, The Roundcube Dev Team |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
+*/
+$labels['sharing'] = '공유';
+$labels['myrights'] = '접근 권한';
+$labels['username'] = '사용자:';
+$labels['advanced'] = '고급 모드';
+$labels['newuser'] = '입력내용 추가';
+$labels['editperms'] = '권한 수정';
+$labels['actions'] = '접근 권한 동작...';
+$labels['anyone'] = '모든 사용자 (아무나)';
+$labels['anonymous'] = '방문자 (익명)';
+$labels['identifier'] = '식별자';
+$labels['acll'] = '조회';