78cf9c2e5cff2d78cd8beb647d60570f195a2a9c..0344b168276f80189e2254c75a762aff5b517b6b
2016-05-22 Aleksander Machniak
Fix priority icon(s) position
0344b1 diff | tree
2016-05-22 Aleksander Machniak
Update changelog
dca92d diff | tree
2016-05-22 Aleksander Machniak
Use minified publickey.js (with cache-buster) when available (#5254)
87cf0a diff | tree
2016-05-20 Aleksander Machniak
Remove application/x-tar file extension test as it might not exist in nginx...
9e64dc diff | tree
2016-05-20 Aleksander Machniak
Add note about need for module name change in IfModule when using PHP7 (#5249)
e71de1 diff | tree
2016-05-20 Aleksander Machniak
Fix PHP warning when password_hosts is set, but is not an array (#5260)
ab6fdf diff | tree
2016-05-20 Aleksander Machniak
Fix bug where message list columns could be in wrong order after column dra...
378d10 diff | tree
2016-05-18 Aleksander Machniak
Fix bug where errors could have been not logged when per_user_logging=true
930a3c diff | tree
2016-05-16 Aleksander Machniak
Update changelog
0b7e26 diff | tree
2016-05-16 Aleksander Machniak
Fix typo in localization message
3d6d03 diff | tree
2016-05-15 Thomas Bruederli
Improve migration of the composer.json file when updating
26c400 diff | tree
2016-05-14 Aleksander Machniak
Remove useless directives
614f44 diff | tree
2016-05-09 Aleksander Machniak
Merge pull request #5184 from guitarmanusa/compose_focus
5b3a86 diff | tree
2016-05-09 Aleksander Machniak
Move commented mod_headers settings to the end of the file
bf19fe diff | tree
2016-05-09 Aleksander Machniak
Merge pull request #323 from Rotzbua/add_opt_securityheader
260811 diff | tree
2016-05-09 Aleksander Machniak
Merge pull request #5168 from piuma/patch-1
f7fdf1 diff | tree
2016-05-08 Aleksander Machniak
Performance improvements in format_flowed() and unfold_flowed()
3d0d5d diff | tree
2016-05-08 Aleksander Machniak
Small performance optimization
afd090 diff | tree
2016-05-08 Aleksander Machniak
Add some more tests for HREF attribute washing
ca9ad7 diff | tree
2016-05-08 Aleksander Machniak
Display different confirmation text when moving messages to Trash (#5220)
9cd4b1 diff | tree
2016-05-06 Aleksander Machniak
Add missing entry about Redis support for session
5ab7ae diff | tree
2016-05-06 Aleksander Machniak
Fix regression where setting Answered/Forwarded flag didn't work when sendi...
6d1337 diff | tree
2016-05-06 Aleksander Machniak
Add note about removing some deprecated methods
238ac3 diff | tree
2016-05-06 Aleksander Machniak
Fix XSS issue in href attribute on area tag (#5240, #5241)
665236 diff | tree
2016-05-05 Aleksander Machniak
Optimize SELECT response handling
4921c2 diff | tree
2016-05-04 Aleksander Machniak
Indicate that a collapsed thread has flagged children (#5013)
344b0a diff | tree
2016-05-04 Aleksander Machniak
Fix redundant enigma.css link
21e485 diff | tree
2016-05-04 Aleksander Machniak
Merge branch 'for-1.3'
de14ec diff | tree
2016-05-02 Aleksander Machniak
Merge branch 'dev-rfc822-preview'
9796cd diff | tree
2016-05-02 Aleksander Machniak
Update to jsTimezoneDetect 1.0.6
56f988 diff | tree
2016-05-02 Aleksander Machniak
Bump version number to 1.3-beta
963416 diff | tree
2016-05-02 Aleksander Machniak
Update localization
bd6d76 diff | tree
2016-05-01 Aleksander Machniak
Fix bug where Encrypt button appears when switching editor to HTML (#5235)
667ed3 diff | tree
2016-05-01 Aleksander Machniak
Add Known Issues section in Enigma README (#5215)
519412 diff | tree
2016-05-01 Aleksander Machniak
CS improvements/fixes
013aae diff | tree
2016-04-30 Aleksander Machniak
Fix autoloading of 'html' class and improve autoloader performance
0eece8 diff | tree
2016-04-28 Aleksander Machniak
- Support 'duplicate' extension [RFC 7352] - Improve errors handling in fil...
e499a1 diff | tree
2016-04-27 Aleksander Machniak
Don't log ajax requests/responses, browser development tools already can sh...
5d08d5 diff | tree
2016-04-27 Aleksander Machniak
Merge branch 'master' of github.com:roundcube/roundcubemail
ef1200 diff | tree
2016-04-27 Aleksander Machniak
Fix bug where contact search menu fields where always unchecked in Larry skin
893558 diff | tree
2016-04-25 Aleksander Machniak
Disable links list when converting html2text for spellchecking
5e406f diff | tree
2016-04-02 Kyle Francis
Changed native DOM call to jQuery
317138 diff | tree
2016-04-02 Kyle Francis
Merge remote-tracking branch 'origin/master' into compose_focus
652252 diff | tree
2016-04-01 Kyle Francis
Implements 'scroll by keyboard #5139'
522bab diff | tree
2016-03-28 Aleksander Machniak
Enable reply/reply-all/forward buttons also in preview fr...
46f7b7 diff | tree
2016-03-26 Aleksander Machniak
Add message menu with viewsource and edit actions in message/rfc822 preview
e8b6e7 diff | tree
2016-03-25 Aleksander Machniak
Message/rfc822 previewer compatibility with Enigma
d125f8 diff | tree
2016-03-25 Aleksander Machniak
Enigma: Handle encrypted/signed content inside message/rfc822 attachments
640e5e diff | tree
2016-03-25 Aleksander Machniak
vcard_attachments: Fix bug where national characters in vCard would be brok...
414ae3 diff | tree
2016-03-24 Aleksander Machniak
Reply/Reply-All/Forward/Change-format buttons for message/rfc822 preview
ce3105 diff | tree
1 files added
158 files modified
1719 ■■■■■ changed files
.htaccess 45 ●●●● patch | view | raw | blame | history
CHANGELOG 21 ●●●●● patch | view | raw | blame | history
bin/update.sh 24 ●●●● patch | view | raw | blame | history
index.php 2 ●●● patch | view | raw | blame | history
installer/index.php 2 ●●● patch | view | raw | blame | history
plugins/acl/localization/zh_CN.inc 15 ●●●●● patch | view | raw | blame | history
plugins/enigma/README 12 ●●●●● patch | view | raw | blame | history
plugins/enigma/skins/classic/templates/keycreate.html 1 ●●●● patch | view | raw | blame | history
plugins/enigma/skins/classic/templates/keyimport.html 1 ●●●● patch | view | raw | blame | history
plugins/enigma/skins/classic/templates/keyinfo.html 1 ●●●● patch | view | raw | blame | history
plugins/enigma/skins/classic/templates/keys.html 1 ●●●● patch | view | raw | blame | history
plugins/enigma/skins/larry/templates/keycreate.html 1 ●●●● patch | view | raw | blame | history
plugins/enigma/skins/larry/templates/keyimport.html 1 ●●●● patch | view | raw | blame | history
plugins/enigma/skins/larry/templates/keyinfo.html 1 ●●●● patch | view | raw | blame | history
plugins/enigma/skins/larry/templates/keys.html 1 ●●●● patch | view | raw | blame | history
plugins/help/localization/zh_CN.inc 1 ●●●● patch | view | raw | blame | history
plugins/managesieve/Changelog 6 ●●●●● patch | view | raw | blame | history
plugins/managesieve/composer.json 2 ●●● patch | view | raw | blame | history
plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php 99 ●●●●● patch | view | raw | blame | history
plugins/managesieve/lib/Roundcube/rcube_sieve_script.php 108 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/bg_BG.inc 4 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/bs_BA.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/da_DK.inc 1 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/de_CH.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/de_DE.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/en_GB.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/en_US.inc 14 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/es_ES.inc 2 ●●● patch | view | raw | blame | history
plugins/managesieve/localization/eu_ES.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/fi_FI.inc 2 ●●● patch | view | raw | blame | history
plugins/managesieve/localization/fo_FO.inc 2 ●●● patch | view | raw | blame | history
plugins/managesieve/localization/he_IL.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/hu_HU.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/ia.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/id_ID.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/it_IT.inc 2 ●●● patch | view | raw | blame | history
plugins/managesieve/localization/ja_JP.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/ko_KR.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/lv_LV.inc 1 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/nl_NL.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/localization/sk_SK.inc 2 ●●● patch | view | raw | blame | history
plugins/managesieve/localization/sv_SE.inc 4 ●●●● patch | view | raw | blame | history
plugins/managesieve/localization/tr_TR.inc 2 ●●● patch | view | raw | blame | history
plugins/managesieve/localization/uk_UA.inc 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/managesieve.js 23 ●●●● patch | view | raw | blame | history
plugins/managesieve/skins/classic/managesieve.css 16 ●●●●● patch | view | raw | blame | history
plugins/managesieve/skins/classic/managesieve_mail.css 2 ●●● patch | view | raw | blame | history
plugins/managesieve/skins/larry/managesieve.css 18 ●●●●● patch | view | raw | blame | history
plugins/managesieve/tests/src/parser_duplicate 16 ●●●●● patch | view | raw | blame | history
plugins/newmail_notifier/localization/zh_CN.inc 1 ●●●● patch | view | raw | blame | history
plugins/password/password.php 2 ●●● patch | view | raw | blame | history
plugins/zipdownload/localization/cy_GB.inc 4 ●●●● patch | view | raw | blame | history
plugins/zipdownload/localization/zh_CN.inc 4 ●●●● patch | view | raw | blame | history
program/include/iniset.php 2 ●●● patch | view | raw | blame | history
program/include/rcmail_install.php 2 ●●● patch | view | raw | blame | history
program/js/app.js 105 ●●●●● patch | view | raw | blame | history
program/js/jstz.min.js 8 ●●●● patch | view | raw | blame | history
program/js/list.js 35 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/bootstrap.php 38 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube.php 37 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_imap.php 8 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_imap_generic.php 76 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_message.php 166 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_mime.php 37 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_spellchecker.php 2 ●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_text2html.php 9 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_washtml.php 2 ●●● patch | view | raw | blame | history
program/localization/ar_SA/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/ast/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/az_AZ/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/be_BE/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/bg_BG/messages.inc 12 ●●●● patch | view | raw | blame | history
program/localization/bn_BD/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/br/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/bs_BA/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/ca_ES/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/cy_GB/labels.inc 12 ●●●● patch | view | raw | blame | history
program/localization/da_DK/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/de_CH/labels.inc 6 ●●●●● patch | view | raw | blame | history
program/localization/el_GR/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/en_CA/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/en_GB/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/en_US/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/eo/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/es_419/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/es_AR/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/et_EE/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/eu_ES/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/fa_AF/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/fa_IR/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/fi_FI/messages.inc 6 ●●●● patch | view | raw | blame | history
program/localization/fr_FR/labels.inc 18 ●●●● patch | view | raw | blame | history
program/localization/ga_IE/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/gl_ES/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/he_IL/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/hi_IN/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/hr_HR/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/hu_HU/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/hy_AM/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/ia/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/id_ID/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/is_IS/messages.inc 2 ●●●●● patch | view | raw | blame | history
program/localization/it_IT/messages.inc 8 ●●●● patch | view | raw | blame | history
program/localization/ja_JP/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/ka_GE/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/km_KH/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/kn_IN/messages.inc 2 ●●●●● patch | view | raw | blame | history
program/localization/ko_KR/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/ku/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/lb_LU/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/lv_LV/labels.inc 10 ●●●● patch | view | raw | blame | history
program/localization/mk_MK/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/mr_IN/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/ms_MY/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/nb_NO/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/ne_NP/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/nl_BE/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/nl_NL/labels.inc 2 ●●● patch | view | raw | blame | history
program/localization/nl_NL/messages.inc 6 ●●●● patch | view | raw | blame | history
program/localization/nn_NO/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/pl_PL/labels.inc 6 ●●●● patch | view | raw | blame | history
program/localization/pl_PL/messages.inc 2 ●●● patch | view | raw | blame | history
program/localization/ps/messages.inc 3 ●●●●● patch | view | raw | blame | history
program/localization/ro_RO/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/si_LK/messages.inc 2 ●●●●● patch | view | raw | blame | history
program/localization/sk_SK/messages.inc 6 ●●●● patch | view | raw | blame | history
program/localization/sl_SI/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/sq_AL/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/sr_CS/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/sv_SE/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/ta_IN/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/th_TH/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/tr_TR/messages.inc 8 ●●●● patch | view | raw | blame | history
program/localization/uk_UA/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/vi_VN/messages.inc 4 ●●●● patch | view | raw | blame | history
program/localization/zh_CN/labels.inc 23 ●●●●● patch | view | raw | blame | history
program/localization/zh_CN/messages.inc 23 ●●●● patch | view | raw | blame | history
program/localization/zh_TW/messages.inc 4 ●●●● patch | view | raw | blame | history
program/steps/addressbook/edit.inc 2 ●●● patch | view | raw | blame | history
program/steps/mail/compose.inc 16 ●●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 74 ●●●● patch | view | raw | blame | history
program/steps/mail/get.inc 31 ●●●● patch | view | raw | blame | history
program/steps/mail/headers.inc 11 ●●●● patch | view | raw | blame | history
program/steps/mail/move_del.inc 2 ●●● patch | view | raw | blame | history
program/steps/mail/sendmail.inc 26 ●●●● patch | view | raw | blame | history
program/steps/mail/show.inc 15 ●●●● patch | view | raw | blame | history
program/steps/mail/viewsource.inc 19 ●●●● patch | view | raw | blame | history
skins/classic/addressbook.css 8 ●●●● patch | view | raw | blame | history
skins/classic/common.css 12 ●●●●● patch | view | raw | blame | history
skins/classic/mail.css 5 ●●●●● patch | view | raw | blame | history
skins/classic/templates/addressbook.html 2 ●●● patch | view | raw | blame | history
skins/classic/templates/messagepart.html 41 ●●●●● patch | view | raw | blame | history
skins/classic/templates/messagepreview.html 4 ●●● patch | view | raw | blame | history
skins/larry/mail.css 13 ●●●●● patch | view | raw | blame | history
skins/larry/templates/messagepart.html 42 ●●●●● patch | view | raw | blame | history
skins/larry/templates/messagepreview.html 10 ●●●●● patch | view | raw | blame | history
skins/larry/ui.js 8 ●●●● patch | view | raw | blame | history
tests/Framework/Text2Html.php 1 ●●●● patch | view | raw | blame | history
tests/Framework/Washtml.php 24 ●●●●● patch | view | raw | blame | history
.htaccess
@@ -1,6 +1,4 @@
# AddDefaultCharset UTF-8
AddType text/x-component .htc
# WARNING: For PHP 7 the module name in the line below need to be modified!
<IfModule mod_php5.c>
php_flag    display_errors  Off
php_flag    log_errors      On
@@ -43,13 +41,6 @@
SetOutputFilter DEFLATE
</IfModule>
<IfModule mod_headers.c>
# replace 'append' with 'merge' for Apache version 2.2.9 and later
#Header append Cache-Control public env=!NO_CACHE
# for better privacy/security ask browsers to not set the Referer
#Header set Content-Security-Policy "referrer no-referrer"
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
@@ -60,3 +51,37 @@
<IfModule mod_autoindex.c>
Options -Indexes
</ifModule>
<IfModule mod_headers.c>
# replace 'append' with 'merge' for Apache version 2.2.9 and later
#Header append Cache-Control public env=!NO_CACHE
# Optional security header
# Only increased security if the browser support those features
# Be careful! Testing is required! They should be adusted to your intallation / user environment
# HSTS - HTTP Strict Transport Security
#Header always set Strict-Transport-Security "max-age=31536000; preload" env=HTTPS
# HPKP - HTTP Public Key Pinning
# Only template - fill with your values
#Header always set Public-Key-Pins "max-age=3600; report-uri=\"\"; pin-sha256=\"\"; pin-sha256=\"\"" env=HTTPS
# X-Xss-Protection
# This header is used to configure the built in reflective XSS protection found in Internet Explorer, Chrome and Safari (Webkit).
#Header set X-XSS-Protection "1; mode=block"
# X-Frame-Options
# The X-Frame-Options header (RFC), or XFO header, protects your visitors against clickjacking attacks
# Already set by php code! Do not activate both options
#Header set X-Frame-Options SAMEORIGIN
# X-Content-Type-Options
# It prevents Google Chrome and Internet Explorer from trying to mime-sniff the content-type of a response away from the one being declared by the server.
#Header set X-Content-Type-Options: "nosniff"
# CSP - Content Security Policy
# for better privacy/security ask browsers to not set the Referer
# more flags for script, stylesheets and images available, read RFC for more information
#Header set Content-Security-Policy "referrer no-referrer"
</IfModule>
CHANGELOG
@@ -1,9 +1,28 @@
CHANGELOG Roundcube Webmail
===========================
- Display different confirmation text when moving messages to Trash (#5220)
- Indicate that a collapsed thread has flagged children (#5013)
- Implemented message/rfc822 attachment preview
- Update to jsTimezoneDetect 1.0.6
- Managesieve: Support 'duplicate' extension [RFC 7352]
- Managesieve: Unhide advanced rule controls if there are inputs with errors
- Managesieve: Display warning message when filter form contains errors
- Fix bug where errors could have been not logged when per_user_logging=true
- Fix bug where message list columns could be in wrong order after column drag-n-drop and list sorting
- Fix so minified publickey.js (with cache-buster) is used when available (#5254)
- Fix (replace) application/x-tar file extension test as it might not exist in nginx config (#5253)
- Fix PHP warning when password_hosts is set, but is not an array (#5260)
RELEASE 1.2.0
-------------
- Enigma: Added enigma_debug option
- Fix message list multi-select/deselect issue (#5219)
- Fix bug where getting HTML editor content could steal focus from other form controls (#5223)
- Fix bug where contact search menu fields where always unchecked in Larry skin
- Fix autoloading of 'html' class
- Fix bug where Encrypt button appears when switching editor to HTML (#5235)
- Fix XSS issue in href attribute on area tag (#5240)
RELEASE 1.2-rc
--------------
@@ -46,6 +65,8 @@
RELEASE 1.2-beta
----------------
- Update TinyMCE to version 4.2
- Added support for Redis session handler
- Removed some deprecated methods: https://github.com/roundcube/roundcubemail/commit/454b0b1c
- Remove backward compatibility "layer" of bc.php (#4902)
- Add possibility to define date format in write operations for ldap attributes (#3956)
- Display attachment size in compose (#1329)
bin/update.sh
@@ -169,14 +169,20 @@
    // update the require section with the new dependencies
    if (is_array($composer_data['require']) && is_array($composer_template['require'])) {
      $composer_data['require'] = array_merge($composer_data['require'], $composer_template['require']);
      /* TO BE ADDED LATER
      $old_packages = array();
      for ($old_packages as $pkg) {
        if (array_key_exists($composer_data['require'], $pkg)) {
      // remove obsolete packages
      $old_packages = array(
        'pear/mail_mime',
        'pear/mail_mime-decode',
        'pear/net_smtp',
        'pear/net_sieve',
        'pear-pear.php.net/net_sieve',
      );
      foreach ($old_packages as $pkg) {
        if (array_key_exists($pkg, $composer_data['require'])) {
          unset($composer_data['require'][$pkg]);
        }
      }
      */
    }
    // update the repositories section with the new dependencies
@@ -190,12 +196,18 @@
        $existing = false;
        foreach ($composer_data['repositories'] as $k =>  $_repo) {
          if ($rkey == $_repo['type'] . preg_replace('/^https?:/', '', $_repo['url']) . $_repo['package']['name']) {
            // switch to https://
            if (isset($_repo['url']) && strpos($_repo['url'], 'http://') === 0)
              $composer_data['repositories'][$k]['url'] = 'https:' . substr($_repo['url'], 5);
            $existing = true;
            break;
          }
          // remove old repos
          else if (strpos($_repo['url'], 'git://git.kolab.org') === 0) {
              unset($composer_data['repositories'][$k]);
            unset($composer_data['repositories'][$k]);
          }
          else if ($_repo['type'] == 'package' && $_repo['package']['name'] == 'Net_SMTP') {
            unset($composer_data['repositories'][$k]);
          }
        }
        if (!$existing) {
index.php
@@ -2,7 +2,7 @@
/**
 +-------------------------------------------------------------------------+
 | Roundcube Webmail IMAP Client                                           |
 | Version 1.2-git                                                         |
 | Version 1.3-git                                                         |
 |                                                                         |
 | Copyright (C) 2005-2015, The Roundcube Dev Team                         |
 |                                                                         |
installer/index.php
@@ -3,7 +3,7 @@
/**
 +-------------------------------------------------------------------------+
 | Roundcube Webmail setup tool                                            |
 | Version 1.2-git                                                         |
 | Version 1.3-git                                                         |
 |                                                                         |
 | Copyright (C) 2009-2015, The Roundcube Dev Team                         |
 |                                                                         |
plugins/acl/localization/zh_CN.inc
@@ -18,7 +18,9 @@
$labels['sharing'] = '共享';
$labels['myrights'] = '访问权限';
$labels['username'] = '用户:';
$labels['advanced'] = '高级模式';
$labels['newuser'] = '新增条目';
$labels['editperms'] = '编辑权限';
$labels['actions'] = '权限设置...';
$labels['anyone'] = '所有用户(任何人)';
$labels['anonymous'] = '来宾(匿名)';
@@ -36,6 +38,7 @@
$labels['acle'] = '清除';
$labels['aclx'] = '删除文件夹';
$labels['acla'] = '管理';
$labels['acln'] = '注释消息';
$labels['aclfull'] = '全部控制';
$labels['aclother'] = '其它';
$labels['aclread'] = '读取';
@@ -54,6 +57,7 @@
$labels['shortacle'] = '清除';
$labels['shortaclx'] = '删除文件夹';
$labels['shortacla'] = '管理';
$labels['shortacln'] = '注释';
$labels['shortaclother'] = '其他';
$labels['shortaclread'] = '读取';
$labels['shortaclwrite'] = '写入';
@@ -63,14 +67,23 @@
$labels['longacls'] = '已读消息标识可以改变';
$labels['longaclw'] = '除已读和删除表示外其他消息标识可以改变';
$labels['longacli'] = '消息可被标记,撰写或复制至文件夹中';
$labels['longaclk'] = '文件夹可被创建(或改名)于现有目录下';
$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'] = '成功修改访问权限';
plugins/enigma/README
@@ -22,7 +22,7 @@
TODO:
-------------
-----
- Handling of big messages with temp files
- Key info in contact details page (optional)
- Extended key management:
@@ -48,3 +48,13 @@
- S/MIME: Sending signed/encrypted messages
- S/MIME: Handling of certs attached to incoming messages
- S/MIME: Certificate info in Contacts details page (optional)
KNOWN ISSUES:
-------------
There are some know issues with accepting key passphrases on various
system configurations. This is caused by issues in PinEntry handling.
Make sure that vendor/bin/crypt-gpg-pinentry works from command line.
Possible reasons:
- non-supported GnuPG version, i.e. >= 2.1
- non-working loader in shebang (#! /usr/bin/env php)
plugins/enigma/skins/classic/templates/keycreate.html
@@ -3,7 +3,6 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
</head>
<body class="iframe">
plugins/enigma/skins/classic/templates/keyimport.html
@@ -3,7 +3,6 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
</head>
<body class="iframe">
plugins/enigma/skins/classic/templates/keyinfo.html
@@ -3,7 +3,6 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
</head>
<body class="iframe">
plugins/enigma/skins/classic/templates/keys.html
@@ -3,7 +3,6 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
<script type="text/javascript" src="/functions.js"></script>
<script type="text/javascript" src="/splitter.js"></script>
<style type="text/css">
plugins/enigma/skins/larry/templates/keycreate.html
@@ -3,7 +3,6 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
</head>
<body class="iframe">
plugins/enigma/skins/larry/templates/keyimport.html
@@ -3,7 +3,6 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
</head>
<body class="iframe">
plugins/enigma/skins/larry/templates/keyinfo.html
@@ -3,7 +3,6 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
</head>
<body class="iframe">
plugins/enigma/skins/larry/templates/keys.html
@@ -3,7 +3,6 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/enigma.css" />
</head>
<roundcube:if condition="env:extwin" /><body class="noscroll extwin"><roundcube:else /><body class="noscroll"><roundcube:endif />
plugins/help/localization/zh_CN.inc
@@ -18,4 +18,5 @@
$labels['help'] = '帮助';
$labels['about'] = '关于';
$labels['license'] = '许可协议';
$labels['csrfinfo'] = '了解 CSRF 如何保护您';
?>
plugins/managesieve/Changelog
@@ -1,3 +1,9 @@
* version 8.7 [2016-]
-----------------------------------------------------------
- Support 'duplicate' extension [RFC 7352]
- Unhide advanced rule controls if there are inputs with errors
- Display warning message when filter form contains errors
* version 8.6 [2016-04-06]
-----------------------------------------------------------
- Refactored script parser to be 100x faster
plugins/managesieve/composer.json
@@ -3,7 +3,7 @@
    "type": "roundcube-plugin",
    "description": "Adds a possibility to manage Sieve scripts (incoming mail filters). It's clickable interface which operates on text scripts and communicates with server using managesieve protocol. Adds Filters tab in Settings.",
    "license": "GPLv3+",
    "version": "8.6",
    "version": "8.7",
    "authors": [
        {
            "name": "Aleksander Machniak",
plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
@@ -63,7 +63,7 @@
        1 => 'notifyimportancehigh'
    );
    const VERSION  = '8.6';
    const VERSION  = '8.7';
    const PROGNAME = 'Roundcube (Managesieve)';
    const PORT     = 4190;
@@ -609,6 +609,12 @@
            $lastindexes    = rcube_utils::get_input_value('_rule_index_last', rcube_utils::INPUT_POST);
            $dateheaders    = rcube_utils::get_input_value('_rule_date_header', rcube_utils::INPUT_POST);
            $dateparts      = rcube_utils::get_input_value('_rule_date_part', rcube_utils::INPUT_POST);
            $message        = rcube_utils::get_input_value('_rule_message', rcube_utils::INPUT_POST);
            $dup_handles    = rcube_utils::get_input_value('_rule_duplicate_handle', rcube_utils::INPUT_POST, true);
            $dup_headers    = rcube_utils::get_input_value('_rule_duplicate_header', rcube_utils::INPUT_POST, true);
            $dup_uniqueids  = rcube_utils::get_input_value('_rule_duplicate_uniqueid', rcube_utils::INPUT_POST, true);
            $dup_seconds    = rcube_utils::get_input_value('_rule_duplicate_seconds', rcube_utils::INPUT_POST);
            $dup_lasts      = rcube_utils::get_input_value('_rule_duplicate_last', rcube_utils::INPUT_POST);
            $act_types      = rcube_utils::get_input_value('_action_type', rcube_utils::INPUT_POST, true);
            $mailboxes      = rcube_utils::get_input_value('_action_mailbox', rcube_utils::INPUT_POST, true);
            $act_targets    = rcube_utils::get_input_value('_action_target', rcube_utils::INPUT_POST, true);
@@ -816,6 +822,34 @@
                        $this->form['tests'][$i]['part'] = $trans;
                        if ($trans == 'content') {
                            $this->form['tests'][$i]['content'] = $trans_type;
                        }
                    }
                    else if ($header == 'message') {
                        $test = $this->strip_value($message[$idx]);
                        if (preg_match('/^not/', $test)) {
                            $this->form['tests'][$i]['not'] = true;
                            $test = substr($test, 3);
                        }
                        $this->form['tests'][$i]['test'] = $test;
                        if ($test == 'duplicate') {
                            $this->form['tests'][$i]['last']     = !empty($dup_lasts[$idx]);
                            $this->form['tests'][$i]['handle']   = trim($dup_handles[$idx]);
                            $this->form['tests'][$i]['header']   = trim($dup_headers[$idx]);
                            $this->form['tests'][$i]['uniqueid'] = trim($dup_uniqueids[$idx]);
                            $this->form['tests'][$i]['seconds']  = trim($dup_seconds[$idx]);
                            if ($this->form['tests'][$i]['seconds']
                                && preg_match('/[^0-9]/', $this->form['tests'][$i]['seconds'])
                            ) {
                                $this->errors['tests'][$i]['duplicate_seconds'] = $this->plugin->gettext('forbiddenchars');
                            }
                            if ($this->form['tests'][$i]['header'] && $this->form['tests'][$i]['uniqueid']) {
                                $this->errors['tests'][$i]['duplicate_uniqueid'] = $this->plugin->gettext('duplicate.conflict.err');
                            }
                        }
                    }
                    else {
@@ -1094,6 +1128,9 @@
                    $this->rc->output->show_message('managesieve.filtersaveerror', 'error');
//                  $this->rc->output->send();
                }
            }
            else {
                $this->rc->output->show_message('managesieve.filterformerror', 'warning');
            }
        }
@@ -1406,12 +1443,16 @@
            $select_header->add($header, $index);
        }
        $select_header->add($this->plugin->gettext('...'), '...');
        if (in_array('body', $this->exts))
        if (in_array('body', $this->exts)) {
            $select_header->add($this->plugin->gettext('body'), 'body');
        }
        $select_header->add($this->plugin->gettext('size'), 'size');
        if (in_array('date', $this->exts)) {
            $select_header->add($this->plugin->gettext('datetest'), 'date');
            $select_header->add($this->plugin->gettext('currdate'), 'currentdate');
        }
        if (in_array('duplicate', $this->exts)) {
            $select_header->add($this->plugin->gettext('message'), 'message');
        }
        if (isset($rule['test'])) {
@@ -1433,6 +1474,9 @@
            }
            else if (in_array($rule['test'], array('size', 'body', 'date', 'currentdate'))) {
                $test = $rule['test'];
            }
            else if (in_array($rule['test'], array('duplicate'))) {
                $test = 'message';
            }
            else if ($rule['test'] != 'true') {
                $test = '...';
@@ -1460,7 +1504,7 @@
        // matching type select (operator)
        $select_op = new html_select(array('name' => "_rule_op[]", 'id' => 'rule_op'.$id,
            'style' => 'display:' .($rule['test']!='size' ? 'inline' : 'none'),
            'style' => 'display:' .(!in_array($rule['test'], array('size', 'duplicate')) ? 'inline' : 'none'),
            'class' => 'operator_selector',
            'onchange' => 'rule_op_select(this, '.$id.')'));
        $select_op->add(rcube::Q($this->plugin->gettext('filtercontains')), 'contains');
@@ -1527,9 +1571,22 @@
            $tout .= $select_dp->show($rule['test'] == 'currentdate' || $rule['test'] == 'date' ? $rule['part'] : '');
        }
        // message test select (e.g. duplicate)
        if (in_array('duplicate', $this->exts)) {
            $select_msg = new html_select(array('name' => "_rule_message[]", 'id' => 'rule_message'.$id,
                'style' => in_array($rule['test'], array('duplicate')) ? '' : 'display:none',
                'class' => 'message_selector',
            ));
            $select_msg->add(rcube::Q($this->plugin->gettext('duplicate')), 'duplicate');
            $select_msg->add(rcube::Q($this->plugin->gettext('notduplicate')), 'notduplicate');
            $tout .= $select_msg->show($test);
        }
        $tout .= $select_op->show($test);
        $tout .= $this->list_input($id, 'rule_target', $target,
            $rule['test'] != 'size' && $rule['test'] != 'exists',
            $rule['test'] != 'size' && $rule['test'] != 'exists' && $rule['test'] != 'duplicate',
            $this->error_class($id, 'test', 'target', 'rule_target')) . "\n";
        $select_size_op = new html_select(array('name' => "_rule_size_op[]", 'id' => 'rule_size_op'.$id));
@@ -1555,8 +1612,9 @@
            'onchange' => 'rule_mod_select(' .$id .')'));
        $select_mod->add(rcube::Q($this->plugin->gettext('none')), '');
        $select_mod->add(rcube::Q($this->plugin->gettext('address')), 'address');
        if (in_array('envelope', $this->exts))
        if (in_array('envelope', $this->exts)) {
            $select_mod->add(rcube::Q($this->plugin->gettext('envelope')), 'envelope');
        }
        $select_type = new html_select(array('name' => "_rule_mod_type[]", 'id' => 'rule_mod_type'.$id));
        $select_type->add(rcube::Q($this->plugin->gettext('allparts')), 'all');
@@ -1567,7 +1625,7 @@
            $select_type->add(rcube::Q($this->plugin->gettext('detail')), 'detail');
        }
        $need_mod = !in_array($rule['test'], array('size', 'body', 'date', 'currentdate'));
        $need_mod = !in_array($rule['test'], array('size', 'body', 'date', 'currentdate', 'duplicate'));
        $mout = '<div id="rule_mod' .$id. '" class="adv"' . (!$need_mod ? ' style="display:none"' : '') . '>';
        $mout .= ' <span class="label">' . rcube::Q($this->plugin->gettext('modifier')) . ' </span>';
        $mout .= $select_mod->show($rule['test']);
@@ -1604,7 +1662,8 @@
        }
        // Comparators
        $mout .= '<div id="rule_comp' .$id. '" class="adv"' . ($rule['test'] == 'size' ? ' style="display:none"' : '') . '>';
        $need_comp = $rule['test'] != 'size' && $rule['test'] != 'duplicate';
        $mout .= '<div id="rule_comp' .$id. '" class="adv"' . (!$need_comp ? ' style="display:none"' : '') . '>';
        $mout .= '<span class="label">' . rcube::Q($this->plugin->gettext('comparator')) . '</span>';
        $mout .= $select_comp->show($rule['comparator']);
        $mout .= '</div>';
@@ -1633,6 +1692,32 @@
            $mout .= '</div>';
        }
        // Duplicate
        if (in_array('duplicate', $this->exts)) {
            $need_duplicate = $rule['test'] == 'duplicate';
            $mout .= '<div id="rule_duplicate_div' .$id. '" class="adv"'. (!$need_duplicate ? ' style="display:none"' : '') .'>';
            $mout .= '<span class="label">' . rcube::Q($this->plugin->gettext('duplicate.handle')) . '</span>';
            $mout .= '<input type="text" name="_rule_duplicate_handle[]" id="rule_duplicate_handle'.$id
                . '" value="'. ($rule['handle'] ? rcube::JQ($rule['handle']) : '')
                . '" size="30"' . $this->error_class($id, 'test', 'duplicate_handle', 'rule_duplicate_handle') .' /><br>';
            $mout .= '<span class="label">' . rcube::Q($this->plugin->gettext('duplicate.header')) . '</span>';
            $mout .= '<input type="text" name="_rule_duplicate_header[]" id="rule_duplicate_header'.$id
                . '" value="'. ($rule['header'] ? rcube::JQ($rule['header']) : '')
                . '" size="30"' . $this->error_class($id, 'test', 'duplicate_header', 'rule_duplicate_header') .' /><br>';
            $mout .= '<span class="label">' . rcube::Q($this->plugin->gettext('duplicate.uniqueid')) . '</span>';
            $mout .= '<input type="text" name="_rule_duplicate_uniqueid[]" id="rule_duplicate_uniqueid'.$id
                . '" value="'. ($rule['uniqueid'] ? rcube::JQ($rule['uniqueid']) : '')
                . '" size="30"' . $this->error_class($id, 'test', 'duplicate_uniqueid', 'rule_duplicate_uniqueid') .' /><br>';
            $mout .= '<span class="label">' . rcube::Q($this->plugin->gettext('duplicate.seconds')) . '</span>';
            $mout .= '<input type="text" name="_rule_duplicate_seconds[]" id="rule_duplicate_seconds'.$id
                . '" value="'. rcube::JQ($rule['seconds'])
                . '" size="6"' . $this->error_class($id, 'test', 'duplicate_seconds', 'rule_duplicate_seconds') .' />';
            $mout .= '&nbsp;<input type="checkbox" name="_rule_duplicate_last['.$id.']" id="rule_duplicate_last'.$id
                . '" value="1"' . (!empty($rule['last']) ? ' checked="checked"' : '') . ' />'
                . '<label for="rule_duplicate_last'.$id.'">'.rcube::Q($this->plugin->gettext('duplicate.last')).'</label>';
            $mout .= '</div>';
        }
        // Build output table
        $out = $div ? '<div class="rulerow" id="rulerow' .$id .'">'."\n" : '';
        $out .= '<table><tr>';
plugins/managesieve/lib/Roundcube/rcube_sieve_script.php
@@ -24,21 +24,22 @@
{
    public $content = array();      // script rules array
    private $vars = array();        // "global" variables
    private $prefix = '';           // script header (comments)
    private $supported = array(     // Sieve extensions supported by class
    private $vars      = array();   // "global" variables
    private $prefix    = '';        // script header (comments)
    private $supported = array(     // supported Sieve extensions:
        'body',                     // RFC5173
        'copy',                     // RFC3894
        'date',                     // RFC5260
        'duplicate',                // RFC7352
        'enotify',                  // RFC5435
        'envelope',                 // RFC5228
        'ereject',                  // RFC5429
        'fileinto',                 // RFC5228
        'imapflags',                // draft-melnikov-sieve-imapflags-06
        'imap4flags',               // RFC5232
        'include',                  // draft-ietf-sieve-include-12
        'include',                  // RFC6609
        'index',                    // RFC5260
        'notify',                   // draft-martin-sieve-notify-01,
        'notify',                   // RFC5435
        'regex',                    // draft-ietf-sieve-regex-01
        'reject',                   // RFC5429
        'relational',               // RFC3431
@@ -317,7 +318,29 @@
                        $tests[$i] .= ' ' . self::escape_string($test['arg']);
                        break;
                    case 'duplicate':
                        array_push($exts, 'duplicate');
                        $tests[$i] .= ($test['not'] ? 'not ' : '') . $test['test'];
                        $tokens = array('handle', 'uniqueid', 'header');
                        foreach ($tokens as $token)
                            if ($test[$token] !== null && $test[$token] !== '') {
                                $tests[$i] .= " :$token " . self::escape_string($test[$token]);
                            }
                        if (!empty($test['seconds'])) {
                            $tests[$i] .= ' :seconds ' . intval($test['seconds']);
                        }
                        if (!empty($test['last'])) {
                            $tests[$i] .= ' :last';
                        }
                        break;
                    }
                    $i++;
                }
            }
@@ -749,6 +772,23 @@
                $tests[] = $test;
                break;
            case 'duplicate':
                $test = array('test' => $token, 'not' => $not);
                for ($i=0, $len=count($tokens); $i<$len; $i++) {
                    if (!is_array($tokens[$i])) {
                        if (preg_match('/^:(handle|header|uniqueid|seconds)$/i', $tokens[$i], $m)) {
                            $test[strtolower($m[1])] = $tokens[++$i];
                        }
                        else if (preg_match('/^:last$/i', $tokens[$i])) {
                            $test['last'] = true;
                        }
                    }
                }
                $tests[] = $test;
                break;
            case 'exists':
                $tests[] = array('test' => 'exists', 'not' => $not,
                    'arg'  => array_pop($tokens));
@@ -966,33 +1006,25 @@
        $result = array();
        for ($i=0, $len=count($tokens); $i<$len; $i++) {
            if (!is_array($tokens[$i]) && $tokens[$i][0] == ':') {
                if (preg_match('/^:comparator$/i', $tokens[$i])) {
                    $test['comparator'] = $tokens[++$i];
                    continue;
                }
                if (preg_match('/^:(count|value)$/i', $tokens[$i])) {
                    $test['type'] = strtolower(substr($tokens[$i], 1)) . '-' . $tokens[++$i];
                    continue;
                }
                if (preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) {
                    $test['type'] = strtolower(substr($tokens[$i], 1));
                    continue;
                }
                if (preg_match('/^:index$/i', $tokens[$i])) {
                    $test['index'] = intval($tokens[++$i]);
                    if ($tokens[$i+1] && preg_match('/^:last$/i', $tokens[$i+1])) {
                        $test['last'] = true;
                        $i++;
                    }
                    continue;
                }
            if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) {
                $test['comparator'] = $tokens[++$i];
            }
            $result[] = $tokens[$i];
            else if (!is_array($tokens[$i]) && preg_match('/^:(count|value)$/i', $tokens[$i])) {
                $test['type'] = strtolower(substr($tokens[$i], 1)) . '-' . $tokens[++$i];
            }
            else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) {
                $test['type'] = strtolower(substr($tokens[$i], 1));
            }
            else if (!is_array($tokens[$i]) && preg_match('/^:index$/i', $tokens[$i])) {
                $test['index'] = intval($tokens[++$i]);
                if ($tokens[$i+1] && preg_match('/^:last$/i', $tokens[$i+1])) {
                    $test['last'] = true;
                    $i++;
                }
           }
           else {
               $result[] = $tokens[$i];
           }
        }
        $tokens = $result;
@@ -1098,7 +1130,6 @@
    {
        $result = array();
        $length = strlen($str);
        $mask   = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:_';
        // remove spaces from the beginning of the string
        while ($position < $length && (!$num || $num === true || count($result) < $num)) {
@@ -1184,11 +1215,18 @@
                if ($position == $length) {
                    break 2;
                }
                if ($length - $position < 2) {
                    $result[] = substr($str, $position);
                    $position = $length;
                    break;
                }
                // tag/identifier/number
                if ($len = strspn($str, $mask, $position)) {
                    $atom      = substr($str, $position, $len);
                    $position += $len;
                if (preg_match('/[a-zA-Z0-9:_]+/', $str, $m, PREG_OFFSET_CAPTURE, $position)
                    && $m[0][1] == $position
                ) {
                    $atom      = $m[0][0];
                    $position += strlen($atom);
                    if ($atom != 'text:') {
                        $result[] = $atom;
plugins/managesieve/localization/bg_BG.inc
@@ -54,7 +54,7 @@
$labels['del'] = 'Изтрий';
$labels['sender'] = 'Подател';
$labels['recipient'] = 'Получател';
$labels['vacationaddr'] = 'Мои допълнителни адреси:';
$labels['vacationaddr'] = 'Мои доп. адреси на ел. поща:';
$labels['vacationdays'] = 'Колко често да праща писма (в дни):';
$labels['vacationinterval'] = 'Колко често да праща писма:';
$labels['vacationreason'] = 'Текст на писмото (причина за отпуск)';
@@ -172,7 +172,7 @@
$labels['vacation.status'] = 'Статус';
$labels['vacation.on'] = 'Вкл.';
$labels['vacation.off'] = 'Изкл.';
$labels['vacation.addresses'] = 'Мои допълнителни адреси';
$labels['vacation.addresses'] = 'Мои доп. адреси на ел. поща';
$labels['vacation.interval'] = 'Интервал на отговор';
$labels['vacation.after'] = 'Постави правило за отпуск след';
$labels['vacation.saving'] = 'Запис на данни...';
plugins/managesieve/localization/bs_BA.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Obriši';
$labels['sender'] = 'Pošiljaoc';
$labels['recipient'] = 'Primaoc';
$labels['vacationaddr'] = 'Moje email adrese:';
$labels['vacationdays'] = 'Frekvencija slanja poruka (u danima):';
$labels['vacationinterval'] = 'Frekvencija slanja poruka:';
$labels['vacationreason'] = 'Tijelo poruke (razlog za odmor):';
@@ -170,7 +169,6 @@
$labels['vacation.status'] = 'Status';
$labels['vacation.on'] = 'Uključeno';
$labels['vacation.off'] = 'Isključeno';
$labels['vacation.addresses'] = 'Moje email adrese';
$labels['vacation.interval'] = 'Interval odgovora';
$labels['vacation.after'] = 'Pravilo za odmor stavi nakon';
$labels['vacation.saving'] = 'Snimam podatke...';
plugins/managesieve/localization/da_DK.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Fjern';
$labels['sender'] = 'Afsender';
$labels['recipient'] = 'Modtager';
$labels['vacationaddr'] = 'Min e-mail adresse:';
$labels['vacationdays'] = 'Hvor tit skal besked sendes (i dage):';
$labels['vacationinterval'] = 'Hvor tit skal besked sendes:';
$labels['vacationreason'] = 'Besked (ved ferie):';
plugins/managesieve/localization/de_CH.inc
@@ -58,6 +58,7 @@
$labels['vacationdays'] = 'Antwort wird erneut gesendet nach (in Tagen):';
$labels['vacationinterval'] = 'Wie oft senden:';
$labels['vacationreason'] = 'Inhalt der Nachricht (Abwesenheitsgrund):';
$labels['vacationfrom'] = 'Antwort E-Mail-Adresse:';
$labels['vacationsubject'] = 'Betreff';
$labels['days'] = 'Tage';
$labels['seconds'] = 'Sekunden';
@@ -163,6 +164,7 @@
$labels['vacation'] = 'Abwesenheit';
$labels['vacation.reply'] = 'Antworte mit Nachricht';
$labels['vacation.advanced'] = 'Erweiterte Einstellungen';
$labels['vacation.from'] = 'Antwort E-Mail-Adresse:';
$labels['vacation.subject'] = 'Betreff';
$labels['vacation.body'] = 'Inhalt';
$labels['vacation.start'] = 'Beginn der Abwesenheit';
plugins/managesieve/localization/de_DE.inc
@@ -58,6 +58,7 @@
$labels['vacationdays'] = 'Wie oft sollen Nachrichten gesendet werden (in Tagen):';
$labels['vacationinterval'] = 'Wie oft sollen Nachrichten gesendet werden:';
$labels['vacationreason'] = 'Nachrichteninhalt (Abwesenheitsgrund):';
$labels['vacationfrom'] = 'Antwort E-Mail-Adresse:';
$labels['vacationsubject'] = 'Nachrichtenbetreff';
$labels['days'] = 'Tage';
$labels['seconds'] = 'Sekunden';
@@ -163,6 +164,7 @@
$labels['vacation'] = 'Urlaub';
$labels['vacation.reply'] = 'Antwort';
$labels['vacation.advanced'] = 'Erweiterte Einstellungen';
$labels['vacation.from'] = 'Antwort E-Mail-Adresse:';
$labels['vacation.subject'] = 'Betreff';
$labels['vacation.body'] = 'Hauptteil';
$labels['vacation.start'] = 'Beginn des Urlaubs';
plugins/managesieve/localization/en_GB.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Delete';
$labels['sender'] = 'Sender';
$labels['recipient'] = 'Recipient';
$labels['vacationaddr'] = 'My e-mail addresses:';
$labels['vacationdays'] = 'How often send messages (in days):';
$labels['vacationinterval'] = 'How often send messages:';
$labels['vacationreason'] = 'Message body (vacation reason):';
@@ -170,7 +169,6 @@
$labels['vacation.status'] = 'Status';
$labels['vacation.on'] = 'On';
$labels['vacation.off'] = 'Off';
$labels['vacation.addresses'] = 'My e-mail addresses';
$labels['vacation.interval'] = 'Reply interval';
$labels['vacation.after'] = 'Put vacation rule after';
$labels['vacation.saving'] = 'Saving data...';
plugins/managesieve/localization/en_US.inc
@@ -56,7 +56,7 @@
$labels['del'] = 'Delete';
$labels['sender'] = 'Sender';
$labels['recipient'] = 'Recipient';
$labels['vacationaddr'] = 'My email addresses:';
$labels['vacationaddr'] = 'My e-mail addresses:';
$labels['vacationdays'] = 'How often send messages (in days):';
$labels['vacationinterval'] = 'How often send messages:';
$labels['vacationreason'] = 'Message body (vacation reason):';
@@ -174,7 +174,7 @@
$labels['vacation.status'] = 'Status';
$labels['vacation.on'] = 'On';
$labels['vacation.off'] = 'Off';
$labels['vacation.addresses'] = 'My email addresses';
$labels['vacation.addresses'] = 'My e-mail addresses';
$labels['vacation.interval'] = 'Reply interval';
$labels['vacation.after'] = 'Put vacation rule after';
$labels['vacation.saving'] = 'Saving data...';
@@ -191,6 +191,14 @@
$labels['ariasummaryfiltersetslist'] = 'List of filter sets';
$labels['filterstitle'] = 'Edit incoming mail filters';
$labels['vacationtitle'] = 'Edit out-of-office rule';
$labels['message'] = 'Message';
$labels['duplicate'] = 'is duplicate';
$labels['notduplicate'] = 'is not duplicate';
$labels['duplicate.handle'] = 'handle:';
$labels['duplicate.header'] = 'header:';
$labels['duplicate.uniqueid'] = 'identifier:';
$labels['duplicate.seconds'] = 'timeout (seconds):';
$labels['duplicate.last'] = 'relative to the last execution';
$messages = array();
$messages['filterunknownerror'] = 'Unknown server error.';
@@ -199,6 +207,7 @@
$messages['filterdeleted'] = 'Filter deleted successfully.';
$messages['filtersaved'] = 'Filter saved successfully.';
$messages['filtersaveerror'] = 'Unable to save filter. Server error occurred.';
$messages['filterformerror'] = 'Filter form contains errors.';
$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?';
$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?';
$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?';
@@ -228,5 +237,6 @@
$messages['saveerror'] = 'Unable to save data. Server error occurred.';
$messages['vacationsaved'] = 'Vacation data saved successfully.';
$messages['emptyvacationbody'] = 'Body of vacation message is required!';
$messages['duplicate.conflict.err'] = 'Both header and unique identifier are not allowed.';
?>
plugins/managesieve/localization/es_ES.inc
@@ -54,7 +54,7 @@
$labels['del'] = 'Eliminar';
$labels['sender'] = 'Remitente';
$labels['recipient'] = 'Destinatario';
$labels['vacationaddr'] = 'Mis direcciones de email';
$labels['vacationaddr'] = 'Mis direcciones de email:';
$labels['vacationdays'] = 'Cada cuánto enviar mensajes (en días):';
$labels['vacationinterval'] = 'Cada cuánto enviar mensajes:';
$labels['vacationreason'] = 'Cuerpo del mensaje (razón de vacaciones):';
plugins/managesieve/localization/eu_ES.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Ezabatu';
$labels['sender'] = 'Bidaltzailea';
$labels['recipient'] = 'Hartzailea';
$labels['vacationaddr'] = 'Nire helbide elektronikoak:';
$labels['vacationdays'] = 'Zenbatero bidali mezuak (egunak)';
$labels['vacationinterval'] = 'Zenbatero bidali mezuak:';
$labels['vacationreason'] = 'Mezuaren gorputza (oporrak direla medio):';
@@ -170,7 +169,6 @@
$labels['vacation.status'] = 'Egoera';
$labels['vacation.on'] = 'Piztuta';
$labels['vacation.off'] = 'Itzalita';
$labels['vacation.addresses'] = 'Nire helbide elektronikoak:';
$labels['vacation.interval'] = 'Erantzun tartea';
$labels['vacation.after'] = 'Jarri oporren erregela honen ondoren';
$labels['vacation.saving'] = 'Datuak gordetzen...';
plugins/managesieve/localization/fi_FI.inc
@@ -54,7 +54,7 @@
$labels['del'] = 'Poista';
$labels['sender'] = 'Lähettäjä';
$labels['recipient'] = 'Vastaanottaja';
$labels['vacationaddr'] = 'Omat sähköpostiosoitteet:';
$labels['vacationaddr'] = 'Oma sähköpostiosoitteeni:';
$labels['vacationdays'] = 'Viestien lähetysväli (päivissä):';
$labels['vacationinterval'] = 'Viestien lähetysväli:';
$labels['vacationreason'] = 'Viestin runko (loman syy):';
plugins/managesieve/localization/fo_FO.inc
@@ -172,7 +172,7 @@
$labels['vacation.status'] = 'Støða';
$labels['vacation.on'] = 'Tendra';
$labels['vacation.off'] = 'Sløkt';
$labels['vacation.addresses'] = 'Mín teldupost bústaður';
$labels['vacation.addresses'] = 'Mínir teldupost bústaður';
$labels['vacation.interval'] = 'Svar millumbil';
$labels['vacation.after'] = 'Tendra feriu reglar eftir';
$labels['vacation.saving'] = 'Goymur dáta...';
plugins/managesieve/localization/he_IL.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'מחיקה';
$labels['sender'] = 'השולח';
$labels['recipient'] = 'הנמען';
$labels['vacationaddr'] = 'כתובת הדוא"ל שלי';
$labels['vacationdays'] = 'באיזו תדירות ( בימים ) לשלוח הודעות:';
$labels['vacationinterval'] = 'באיזו תדירות לשלוח ההודעה';
$labels['vacationreason'] = 'גוף ההודעה (סיבת החופשה):';
@@ -172,7 +171,6 @@
$labels['vacation.status'] = 'מצב';
$labels['vacation.on'] = 'מופעל';
$labels['vacation.off'] = 'כבוי';
$labels['vacation.addresses'] = 'כתובת הדוא"ל שלי';
$labels['vacation.interval'] = 'מרווח בין תשובות';
$labels['vacation.after'] = 'העתקת סרגל החופשה אחרי';
$labels['vacation.saving'] = 'שמירת מידע...';
plugins/managesieve/localization/hu_HU.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Törlés';
$labels['sender'] = 'Feladó';
$labels['recipient'] = 'Címzett';
$labels['vacationaddr'] = 'Saját e-mail címeim:';
$labels['vacationdays'] = 'Válaszüzenet küldése ennyi naponként:';
$labels['vacationinterval'] = 'Milyen gyakran küld üzeneteket:';
$labels['vacationreason'] = 'Levél szövege (automatikus válasz):';
@@ -170,7 +169,6 @@
$labels['vacation.status'] = 'Állapot';
$labels['vacation.on'] = 'Be';
$labels['vacation.off'] = 'Ki';
$labels['vacation.addresses'] = 'Saját e-mail címeim';
$labels['vacation.interval'] = 'Válasz intervallum';
$labels['vacation.after'] = 'Rakd a szabadság szabályt ez után ';
$labels['vacation.saving'] = 'Adatok mentése...';
plugins/managesieve/localization/ia.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Deler';
$labels['sender'] = 'Expeditor';
$labels['recipient'] = 'Destinatario';
$labels['vacationaddr'] = 'Mi adresses de e-mail:';
$labels['vacationdays'] = 'Frequentia de invio de messages (in dies):';
$labels['vacationinterval'] = 'Frequentia de invio de messages:';
$labels['vacationreason'] = 'Texto del message (motivo del absentia):';
@@ -170,7 +169,6 @@
$labels['vacation.status'] = 'Stato';
$labels['vacation.on'] = 'Active';
$labels['vacation.off'] = 'Non active';
$labels['vacation.addresses'] = 'Mi adresses de e-mail';
$labels['vacation.interval'] = 'Intervallo de responsa';
$labels['vacation.after'] = 'Mitter le regula de vacantias post';
$labels['vacation.saving'] = 'Salveguarda datos...';
plugins/managesieve/localization/id_ID.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Hapus';
$labels['sender'] = 'Pengirim';
$labels['recipient'] = 'Penerima';
$labels['vacationaddr'] = 'Alamat surelku:';
$labels['vacationdays'] = 'Seberapa sering mengirim pesan (dalam hari):';
$labels['vacationinterval'] = 'Seberapa sering untuk pengiriman pesan:';
$labels['vacationreason'] = 'Isi pesan (alasan liburan):';
@@ -172,7 +171,6 @@
$labels['vacation.status'] = 'Status';
$labels['vacation.on'] = 'Nyala';
$labels['vacation.off'] = 'Mati';
$labels['vacation.addresses'] = 'Alamat surelku';
$labels['vacation.interval'] = 'Balas secara interval';
$labels['vacation.after'] = 'Atur untuk pengaturan cuti setelah';
$labels['vacation.saving'] = 'Menyimpan data...';
plugins/managesieve/localization/it_IT.inc
@@ -172,7 +172,7 @@
$labels['vacation.status'] = 'Stato';
$labels['vacation.on'] = 'Attivato';
$labels['vacation.off'] = 'Disattivato';
$labels['vacation.addresses'] = 'I miei indirizzi email';
$labels['vacation.addresses'] = 'I miei indirizzi email:';
$labels['vacation.interval'] = 'Intervallo di risposta';
$labels['vacation.after'] = 'Imposta regola di vacanza dopo';
$labels['vacation.saving'] = 'Salvataggio...';
plugins/managesieve/localization/ja_JP.inc
@@ -54,7 +54,6 @@
$labels['del'] = '削除';
$labels['sender'] = '送信者';
$labels['recipient'] = '宛先';
$labels['vacationaddr'] = '私の電子メールアドレス:';
$labels['vacationdays'] = 'メッセージを(1日に)送信する頻度:';
$labels['vacationinterval'] = 'メッセージを送信する頻度:';
$labels['vacationreason'] = 'メッセージ本体(休暇の理由):';
@@ -172,7 +171,6 @@
$labels['vacation.status'] = '状態';
$labels['vacation.on'] = 'オン';
$labels['vacation.off'] = 'オフ';
$labels['vacation.addresses'] = '私の電子メールアドレス:';
$labels['vacation.interval'] = '返信の間隔';
$labels['vacation.after'] = '後に休暇のルールを記入';
$labels['vacation.saving'] = 'データを保存中...';
plugins/managesieve/localization/ko_KR.inc
@@ -54,7 +54,6 @@
$labels['del'] = '삭제';
$labels['sender'] = '발송자';
$labels['recipient'] = '수신자';
$labels['vacationaddr'] = '내 이메일 주소:';
$labels['vacationdays'] = '메시지 발신 주기 (일):';
$labels['vacationinterval'] = '메시지 발신 주기:';
$labels['vacationreason'] = '메시지 본문 (휴가 사유):';
@@ -172,7 +171,6 @@
$labels['vacation.status'] = '상태';
$labels['vacation.on'] = '켬';
$labels['vacation.off'] = '끔';
$labels['vacation.addresses'] = '내 이메일 주소';
$labels['vacation.interval'] = '회신 주기';
$labels['vacation.after'] = '다음 이후에 휴가 규칙을 위치함';
$labels['vacation.saving'] = '데이터를 저장하는 중...';
plugins/managesieve/localization/lv_LV.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Dzēst';
$labels['sender'] = 'Sūtītājs';
$labels['recipient'] = 'Saņēmējs';
$labels['vacationaddr'] = 'Mana e-pasta adreses:';
$labels['vacationdays'] = 'Cik bieži sūtī ziņojumus (dienās):';
$labels['vacationinterval'] = 'Cik bieži sūtīt vēstules:';
$labels['vacationreason'] = 'Atvaļinājuma paziņojuma teksts:';
plugins/managesieve/localization/nl_NL.inc
@@ -58,6 +58,7 @@
$labels['vacationdays'] = 'Hoe vaak moet een bericht verstuurd worden (in dagen):';
$labels['vacationinterval'] = 'Hoe vaak moet een bericht verstuurd worden:';
$labels['vacationreason'] = 'Bericht (vakantiereden):';
$labels['vacationfrom'] = 'Antwoord-afzender adres:';
$labels['vacationsubject'] = 'Onderwerp:';
$labels['days'] = 'dagen';
$labels['seconds'] = 'seconden';
@@ -163,6 +164,7 @@
$labels['vacation'] = 'Vakantie';
$labels['vacation.reply'] = 'Antwoordbericht';
$labels['vacation.advanced'] = 'Geavanceerde instellingen';
$labels['vacation.from'] = 'Antwoord-afzender adres';
$labels['vacation.subject'] = 'Onderwerp';
$labels['vacation.body'] = 'Inhoud';
$labels['vacation.start'] = 'Begin van vakantie';
plugins/managesieve/localization/sk_SK.inc
@@ -172,7 +172,7 @@
$labels['vacation.status'] = 'Stav';
$labels['vacation.on'] = 'Zap.';
$labels['vacation.off'] = 'Vyp.';
$labels['vacation.addresses'] = 'Moja e-mailová adresa';
$labels['vacation.addresses'] = 'Moje e-mailové adresy';
$labels['vacation.interval'] = 'Interval odpovedania';
$labels['vacation.after'] = 'Nastaviť pravidlo pre dovolenku po';
$labels['vacation.saving'] = 'Ukladanie údajov...';
plugins/managesieve/localization/sv_SE.inc
@@ -54,7 +54,7 @@
$labels['del'] = 'Ta bort';
$labels['sender'] = 'Avsändare';
$labels['recipient'] = 'Mottagare';
$labels['vacationaddr'] = 'Mina mottagaradresser:';
$labels['vacationaddr'] = 'Mina adresser:';
$labels['vacationdays'] = 'Antal dagar mellan auto-svar:';
$labels['vacationinterval'] = 'Tid mellan auto-svar:';
$labels['vacationreason'] = 'Meddelandetext (frånvaroanledning):';
@@ -172,7 +172,7 @@
$labels['vacation.status'] = 'Status';
$labels['vacation.on'] = 'På';
$labels['vacation.off'] = 'Av';
$labels['vacation.addresses'] = 'Mina mottagaradresser';
$labels['vacation.addresses'] = 'Mina adresser';
$labels['vacation.interval'] = 'Svarsintervall';
$labels['vacation.after'] = 'Placera frånvaroregel efter';
$labels['vacation.saving'] = 'Sparar data...';
plugins/managesieve/localization/tr_TR.inc
@@ -172,7 +172,7 @@
$labels['vacation.status'] = 'Durum';
$labels['vacation.on'] = 'Etkin';
$labels['vacation.off'] = 'Devre dışı';
$labels['vacation.addresses'] = 'E-posta adreslerim';
$labels['vacation.addresses'] = 'E-posta adreslerim:';
$labels['vacation.interval'] = 'Cevap aralığı';
$labels['vacation.after'] = 'Şundan sonra tatil kuralı koy';
$labels['vacation.saving'] = 'Veri kaydediliyor...';
plugins/managesieve/localization/uk_UA.inc
@@ -54,7 +54,6 @@
$labels['del'] = 'Видалити';
$labels['sender'] = 'Відправник';
$labels['recipient'] = 'Отримувач';
$labels['vacationaddr'] = 'Мої електронні адреси: ';
$labels['vacationdays'] = 'Як часто повторювати (у днях):';
$labels['vacationinterval'] = 'Як часто надсилати повідомлення: ';
$labels['vacationreason'] = 'Текст повідомлення:';
@@ -172,7 +171,6 @@
$labels['vacation.status'] = 'Статус';
$labels['vacation.on'] = 'Увімкнено';
$labels['vacation.off'] = 'Вимкнено';
$labels['vacation.addresses'] = 'Мої електронні адреси ';
$labels['vacation.interval'] = 'Інтервал відповіді';
$labels['vacation.after'] = 'Застосувати правило відпустки після ';
$labels['vacation.saving'] = 'Збереження даних…';
plugins/managesieve/managesieve.js
@@ -599,6 +599,7 @@
{
  var obj = document.getElementById('header' + id),
    size = document.getElementById('rule_size' + id),
    msg = document.getElementById('rule_message' + id),
    op = document.getElementById('rule_op' + id),
    header = document.getElementById('custom_header' + id + '_list'),
    mod = document.getElementById('rule_mod' + id),
@@ -610,7 +611,11 @@
  if (h == 'size') {
    size.style.display = 'inline';
    $.each([op, header, mod, trans, comp], function() { this.style.display = 'none'; });
    $.each([op, header, mod, trans, comp, msg], function() { this.style.display = 'none'; });
  }
  else if (h == 'message') {
    msg.style.display = 'inline';
    $.each([op, header, mod, trans, comp, size], function() { this.style.display = 'none'; });
  }
  else {
    header.style.display = h != '...' ? 'none' : 'inline-block';
@@ -619,6 +624,7 @@
    comp.style.display = '';
    mod.style.display = h == 'body' || h == 'currentdate' || h == 'date' ? 'none' : 'block';
    trans.style.display = h == 'body' ? 'block' : 'none';
    msg.style.display = h == 'message' ? 'block' : 'none';
  }
  if (datepart)
@@ -638,7 +644,7 @@
  if (!header)
    header = document.getElementById('header' + id).value;
  target.style.display = obj.value == 'exists' || obj.value == 'notexists' || header == 'size' ? 'none' : 'inline-block';
  target.style.display = obj.value.match(/^(exists|notexists)$/) || header.match(/^(size|message)$/) ? 'none' : 'inline-block';
};
function rule_trans_select(id)
@@ -653,6 +659,7 @@
{
  var obj = document.getElementById('rule_mod_op' + id),
    target = document.getElementById('rule_mod_type' + id),
    duplicate = document.getElementById('rule_duplicate_div' + id),
    index = document.getElementById('rule_index_div' + id);
  if (!header)
@@ -661,7 +668,10 @@
  target.style.display = obj.value != 'address' && obj.value != 'envelope' ? 'none' : 'inline';
  if (index)
    index.style.display = header != 'body' && header != 'currentdate' && header != 'size' && obj.value != 'envelope'  ? '' : 'none';
    index.style.display = !header.match(/^(body|currentdate|size|message)$/) && obj.value != 'envelope'  ? '' : 'none';
  if (duplicate)
    duplicate.style.display = header == 'message' ? '' : 'none';
};
function rule_join_radio(value)
@@ -954,6 +964,13 @@
    .click(function() {  // show drop-down upon clicks
      $(this).autocomplete('search', $(this).val() || ' ');
    })
  // display advanced controls when contain errors
  $('input.error').each(function() {
    if (String(this.id).match(/([0-9]+)$/)) {
      $('#ruleadv' + RegExp.$1 + '.show').click();
    }
  });
}
plugins/managesieve/skins/classic/managesieve.css
@@ -172,12 +172,12 @@
td.advbutton a.show
{
  background: url(images/down_small.gif) center no-repeat;
  background: url(images/down_small.gif?v=8629.106) center no-repeat;
}
td.advbutton a.hide
{
  background: url(images/up_small.gif) center no-repeat;
  background: url(images/up_small.gif?v=c56c.106) center no-repeat;
}
td.rowbuttons
@@ -225,6 +225,11 @@
  margin-left: 10px;
}
td.rowtargets div.adv input
{
  margin-bottom: 1px;
}
html.mozilla #filter-form select
{
  padding-top: 3px;
@@ -255,6 +260,7 @@
}
td.rowtargets span,
td.rowtargets label,
span.label
{
  color: #666666;
@@ -305,7 +311,7 @@
a.button.add
{
  background: url(images/add.png) no-repeat;
  background: url(images/add.png?v=a165.280) no-repeat;
  width: 30px;
  height: 20px;
  margin-right: 4px;
@@ -314,7 +320,7 @@
a.button.del
{
  background: url(images/del.png) no-repeat;
  background: url(images/del.png?v=3c27.247) no-repeat;
  width: 30px;
  height: 20px;
  display: inline-block;
@@ -400,7 +406,7 @@
  display: inline-block;
  width: 16px;
  height: 16px;
  background: url(images/erase.png) -1px 0 no-repeat #eee;
  background: url(images/erase.png?v=3052.453) -1px 0 no-repeat #eee;
  cursor: pointer;
}
plugins/managesieve/skins/classic/managesieve_mail.css
@@ -1,5 +1,5 @@
#messagemenu li a.filterlink {
  background-image: url(images/filter.png);
  background-image: url(images/filter.png?v=b0fe.547);
  background-position: 7px 1px;
}
plugins/managesieve/skins/larry/managesieve.css
@@ -93,6 +93,7 @@
#filter-form legend, #filter-form label
{
  color: #666666;
  vertical-align: middle;
}
#rules, #actions
@@ -146,12 +147,12 @@
td.advbutton a.show
{
  background: url(images/down_small.gif) center no-repeat;
  background: url(images/down_small.gif?v=8629.106) center no-repeat;
}
td.advbutton a.hide
{
  background: url(images/up_small.gif) center no-repeat;
  background: url(images/up_small.gif?v=c56c.106) center no-repeat;
}
td.rowbuttons
@@ -197,6 +198,11 @@
td.rowtargets div a {
  margin-left: 10px;
}
td.rowtargets div.adv input
{
  margin-bottom: 1px;
}
input.disabled, input.disabled:hover
@@ -282,7 +288,7 @@
a.button.add
{
  background: url(images/add.png) no-repeat;
  background: url(images/add.png?v=a165.280) no-repeat;
  width: 30px;
  height: 20px;
  margin-right: 4px;
@@ -291,7 +297,7 @@
a.button.del
{
  background: url(images/del.png) no-repeat;
  background: url(images/del.png?v=3c27.247) no-repeat;
  width: 30px;
  height: 20px;
  display: inline-block;
@@ -393,7 +399,7 @@
  display: inline-block;
  width: 16px;
  height: 16px;
  background: url(images/erase.png) -1px -1px no-repeat #eee;
  background: url(images/erase.png?v=3052.453) -1px -1px no-repeat #eee;
  cursor: pointer;
}
@@ -414,7 +420,7 @@
/* vacation form */
#settings-sections .vacation a {
  background-image: url(images/vacation_icons.png);
  background-image: url(images/vacation_icons.png?v=e738.767);
    background-repeat: no-repeat;
    background-position: 7px 1px;
}
plugins/managesieve/tests/src/parser_duplicate
New file
@@ -0,0 +1,16 @@
require ["duplicate","fileinto"];
# rule:[test-duplicate]
if duplicate
{
    fileinto "urgent";
}
# rule:[test-duplicate-2]
if allof (duplicate :handle "support" :header "X-Ticket-ID", header :contains "subject" "fileserver")
{
    fileinto "test";
}
# rule:[test-duplicate-3]
if not duplicate :uniqueid "test" :seconds 1800
{
    discard;
}
plugins/newmail_notifier/localization/zh_CN.inc
@@ -24,4 +24,5 @@
$labels['testbody'] = '这是一个提醒测试。';
$labels['desktopdisabled'] = '您的浏览器已禁止桌面提醒功能。';
$labels['desktopunsupported'] = '您的浏览器不支持桌面提醒功能。';
$labels['desktoptimeout'] = '关闭桌面通知';
?>
plugins/password/password.php
@@ -369,7 +369,7 @@
        // Host exceptions
        $hosts = $rcmail->config->get('password_hosts');
        if (!empty($hosts) && !in_array($_SESSION['storage_host'], $hosts)) {
        if (!empty($hosts) && !in_array($_SESSION['storage_host'], (array) $hosts)) {
            return false;
        }
plugins/zipdownload/localization/cy_GB.inc
@@ -15,8 +15,8 @@
 For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/
*/
$labels['downloadall'] = 'Llwytho lawr holl atodiadau';
$labels['download'] = 'Llwytho lawr...';
$labels['downloadall'] = 'Lawrlwytho\'r holl atodiadau';
$labels['download'] = 'Lawrlwytho...';
$labels['downloadmbox'] = 'Fformat mbox (.zip)';
$labels['downloadmaildir'] = 'Fformat maildir (.zip)';
$labels['downloademl'] = 'Ffynhonnell (.eml)';
plugins/zipdownload/localization/zh_CN.inc
@@ -16,3 +16,7 @@
 For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/
*/
$labels['downloadall'] = '下载全部附件';
$labels['download'] = '下载...';
$labels['downloadmbox'] = 'Mbox 格式 (.zip)';
$labels['downloadmaildir'] = 'Maildir 格式 (.zip)';
$labels['downloademl'] = '源代码 (.eml)';
program/include/iniset.php
@@ -21,7 +21,7 @@
*/
// application constants
define('RCMAIL_VERSION', '1.2-git');
define('RCMAIL_VERSION', '1.3-git');
define('RCMAIL_START', microtime(true));
if (!defined('INSTALL_PATH')) {
program/include/rcmail_install.php
@@ -527,7 +527,7 @@
        $errors = array();
        $types  = array(
            'application/zip'   => 'zip',
            'application/x-tar' => 'tar',
            'text/css'          => 'css',
            'application/pdf'   => 'pdf',
            'image/gif'         => 'gif',
            'image/svg+xml'     => 'svg',
program/js/app.js
@@ -339,8 +339,15 @@
          // init message compose form
          this.init_messageform();
        }
        else if (this.env.action == 'get')
        else if (this.env.action == 'get') {
          this.enable_command('download', 'print', true);
          if (this.env.is_message) {
            this.enable_command('reply', 'reply-all', 'edit', 'viewsource',
              'forward', 'forward-inline', 'forward-attachment', true);
            if (this.env.list_post)
              this.enable_command('reply-list', true);
          }
        }
        // show printing dialog
        else if (this.env.action == 'print' && this.env.uid
          && !this.env.is_pgp_content && !this.env.pgp_mime_part
@@ -1211,13 +1218,13 @@
            this.open_window(this.env.comm_path + url, true, true);
          }
        }
        else if (this.env.action == 'get') {
        else if (this.env.action == 'get' && !this.env.is_message) {
          this.gui_objects.messagepartframe.contentWindow.print();
        }
        else if (uid = this.get_single_uid()) {
          url = this.url('print', this.params_from_uid(uid, {_safe: this.env.safemode ? 1 : 0}));
          if (this.open_window(url, true, true)) {
            if (this.env.action != 'show')
            if (this.env.action != 'show' && this.env.action != 'get')
              this.mark_message('read', uid);
          }
        }
@@ -1362,7 +1369,7 @@
    if (!aborted && this.triggerEvent('after'+command, props) === false)
      ret = false;
    this.triggerEvent('actionafter', { props:props, action:command, aborted:aborted });
    this.triggerEvent('actionafter', { props:props, action:command, aborted:aborted, ret:ret });
    return ret === false ? false : obj ? false : true;
  };
@@ -2031,8 +2038,9 @@
      flagged: flags.flagged?1:0,
      has_children: flags.has_children?1:0,
      depth: flags.depth?flags.depth:0,
      unread_children: flags.unread_children?flags.unread_children:0,
      parent_uid: flags.parent_uid?flags.parent_uid:0,
      unread_children: flags.unread_children || 0,
      flagged_children: flags.flagged_children || 0,
      parent_uid: flags.parent_uid || 0,
      selected: this.select_all_mode || this.message_list.in_selection(uid),
      ml: flags.ml?1:0,
      ctype: flags.ctype,
@@ -2112,6 +2120,9 @@
      if (flags.unread_children && flags.seen && !message.expanded)
        row_class += ' unroot';
      if (flags.flagged_children && !message.expanded)
        row_class += ' flaggedroot';
    }
    tree += '<span id="msgicn'+row.id+'" class="'+css_class+status_class+'" title="'+status_label+'"></span>';
@@ -2149,7 +2160,7 @@
          html = '<span class="attachment" title="'+label+'"></span>';
        else if (/multipart\/report/.test(flags.ctype))
          html = '<span class="report"></span>';
          else
        else
          html = '&nbsp;';
      }
      else if (c == 'status') {
@@ -2570,9 +2581,10 @@
  {
    var row = this.message_list.rows[uid];
    // handle unread_children mark
    // handle unread_children/flagged_children mark
    row.expanded = !row.expanded;
    this.set_unread_children(uid);
    this.set_flagged_children(uid);
    row.expanded = !row.expanded;
    this.message_list.expand_row(e, uid);
@@ -2705,7 +2717,13 @@
    }
    else if (flag == 'unread' && p.has_children) {
      // unread_children may be undefined
      p.unread_children = p.unread_children ? p.unread_children + 1 : 1;
      p.unread_children = (p.unread_children || 0) + 1;
    }
    else if (flag == 'unflagged' && p.flagged_children) {
      p.flagged_children--;
    }
    else if (flag == 'flagged' && p.has_children) {
      p.flagged_children = (p.flagged_children || 0) + 1;
    }
    else {
      return;
@@ -2713,6 +2731,7 @@
    this.set_message_icon(root);
    this.set_unread_children(root);
    this.set_flagged_children(root);
  };
  // update thread indicators for all messages in a thread below the specified message
@@ -2730,11 +2749,19 @@
    if (!row.depth) // root message: decrease roots count
      count--;
    else if (row.unread) {
      // update unread_children for thread root
    // update unread_children for thread root
    if (row.depth && row.unread) {
      parent = this.message_list.find_root(uid);
      rows[parent].unread_children--;
      this.set_unread_children(parent);
    }
    // update unread_children for thread root
    if (row.depth && row.flagged) {
      parent = this.message_list.find_root(uid);
      rows[parent].flagged_children--;
      this.set_flagged_children(parent);
    }
    parent = row.parent_uid;
@@ -2778,9 +2805,11 @@
      row = row.nextSibling;
    }
    // update unread_children for roots
    for (r=0; r<roots.length; r++)
    // update unread_children/flagged_children for roots
    for (r=0; r<roots.length; r++) {
      this.set_unread_children(roots[r].uid);
      this.set_flagged_children(roots[r].uid);
    }
    return count;
  };
@@ -2879,6 +2908,9 @@
      if (row.unread != status)
        this.update_thread_root(uid, status ? 'unread' : 'read');
    }
    else if (flag == 'flagged') {
      this.update_thread_root(uid, status ? 'flagged' : 'unflagged');
    }
    if ($.inArray(flag, ['unread', 'deleted', 'replied', 'forwarded', 'flagged']) > -1)
      row[flag] = status;
@@ -2910,10 +2942,20 @@
    if (row.parent_uid)
      return;
    if (!row.unread && row.unread_children && !row.expanded)
      $(row.obj).addClass('unroot');
    else
      $(row.obj).removeClass('unroot');
    var enable = !row.unread && row.unread_children && !row.expanded;
    $(row.obj)[enable ? 'addClass' : 'removeClass']('unroot');
  };
  // sets flaggedroot (flagged_children) class of parent row
  this.set_flagged_children = function(uid)
  {
    var row = this.message_list.rows[uid];
    if (row.parent_uid)
      return;
    var enable = row.flagged_children && !row.expanded;
    $(row.obj)[enable ? 'addClass' : 'removeClass']('flaggedroot');
  };
  // copy selected messages to the specified mailbox
@@ -3477,6 +3519,12 @@
        // enable encrypted compose toggle
        this.enable_command('compose-encrypted', !is_html);
      }
      // make sure to disable encryption button after toggling editor into HTML mode
      this.addEventListener('actionafter', function(args) {
        if (args.ret && args.action == 'toggle-editor')
          ref.enable_command('compose-encrypted', !args.props.html);
      });
    }
  };
@@ -3571,14 +3619,6 @@
      // list recipients with missing keys
      if (!isvalid && missing_keys.length) {
        // load publickey.js
        if (!$('script#publickeyjs').length) {
          $('<script>')
            .attr('id', 'publickeyjs')
            .attr('src', ref.assets_path('program/js/publickey.js'))
            .appendTo(document.body);
        }
        // display dialog with missing keys
        ref.show_popup_dialog(
          ref.get_label('nopubkeyfor').replace('$email', missing_keys.join(', ')) +
@@ -4294,8 +4334,6 @@
    if (result) {
      // update internal format flag
      $("input[name='_is_html']").val(props.html ? 1 : 0);
      // enable encrypted compose toggle
      this.enable_command('compose-encrypted', !props.html);
    }
    return result;
@@ -7830,8 +7868,6 @@
    var url = '?_task=utils&_action=' + (format == 'html' ? 'html2text' : 'text2html'),
      lock = this.set_busy(true, 'converting');
    this.log('HTTP POST: ' + url);
    $.ajax({ type: 'POST', url: url, data: text, contentType: 'application/octet-stream',
      error: function(o, status, err) { ref.http_error(o, status, err, lock); },
      success: function(data) {
@@ -8013,22 +8049,23 @@
    if (response.env)
      this.set_env(response.env);
    var i;
    // we have labels to add
    if (typeof response.texts === 'object') {
      for (var name in response.texts)
        if (typeof response.texts[name] === 'string')
          this.add_label(name, response.texts[name]);
      for (i in response.texts)
        if (typeof response.texts[i] === 'string')
          this.add_label(i, response.texts[i]);
    }
    // if we get javascript code from server -> execute it
    if (response.exec) {
      this.log(response.exec);
      eval(response.exec);
    }
    // execute callback functions of plugins
    if (response.callbacks && response.callbacks.length) {
      for (var i=0; i < response.callbacks.length; i++)
      for (i=0; i < response.callbacks.length; i++)
        this.triggerEvent(response.callbacks[i][0], response.callbacks[i][1]);
    }
program/js/jstz.min.js
@@ -1,12 +1,12 @@
/**
 * jsTimezoneDetect - v1.0.5 - 2013-04-01
 * jsTimezoneDetect - v1.0.6 - 2015-11-04
 *
 * @source https://bitbucket.org/pellepim/jstimezonedetect/src/f9e3e30e1e1f53dd27cd0f73eb51a7e7caf7b378/jstz.js
 * @source https://bitbucket.org/pellepim/jstimezonedetect/src/6c427658686c664da52c6a87cd62ec910baab276/dist/jstz.min.js
 *
 * @licstart  The following is the entire license notice for the
 * JavaScript code in this file.
 *
 * Copyright (c) Copyright (c) Jon Nylander
 * Copyright (c) 2012 Jon Nylander
 *
 * Licensed under the MIT licenses
 *
@@ -32,4 +32,4 @@
 * @licend  The above is the entire license notice
 * for the JavaScript code in this file.
 */
(function(e){var t=function(){"use strict";var e="s",n=2011,r=function(e){var t=-e.getTimezoneOffset();return t!==null?t:0},i=function(e,t,n){var r=new Date;return e!==undefined&&r.setFullYear(e),r.setDate(n),r.setMonth(t),r},s=function(e){return r(i(e,0,2))},o=function(e){return r(i(e,5,2))},u=function(e){var t=e.getMonth()>7?o(e.getFullYear()):s(e.getFullYear()),n=r(e);return t-n!==0},a=function(){var t=s(n),r=o(n),i=t-r;return i<0?t+",1":i>0?r+",1,"+e:t+",0"},f=function(){var e=a();return new t.TimeZone(t.olson.timezones[e])},l=function(e){var t=new Date(2010,6,15,1,0,0,0),n={"America/Denver":new Date(2011,2,13,3,0,0,0),"America/Mazatlan":new Date(2011,3,3,3,0,0,0),"America/Chicago":new Date(2011,2,13,3,0,0,0),"America/Mexico_City":new Date(2011,3,3,3,0,0,0),"America/Asuncion":new Date(2012,9,7,3,0,0,0),"America/Santiago":new Date(2012,9,3,3,0,0,0),"America/Campo_Grande":new Date(2012,9,21,5,0,0,0),"America/Montevideo":new Date(2011,9,2,3,0,0,0),"America/Sao_Paulo":new Date(2011,9,16,5,0,0,0),"America/Los_Angeles":new Date(2011,2,13,8,0,0,0),"America/Santa_Isabel":new Date(2011,3,5,8,0,0,0),"America/Havana":new Date(2012,2,10,2,0,0,0),"America/New_York":new Date(2012,2,10,7,0,0,0),"Asia/Beirut":new Date(2011,2,27,1,0,0,0),"Europe/Helsinki":new Date(2011,2,27,4,0,0,0),"Europe/Istanbul":new Date(2011,2,28,5,0,0,0),"Asia/Damascus":new Date(2011,3,1,2,0,0,0),"Asia/Jerusalem":new Date(2011,3,1,6,0,0,0),"Asia/Gaza":new Date(2009,2,28,0,30,0,0),"Africa/Cairo":new Date(2009,3,25,0,30,0,0),"Pacific/Auckland":new Date(2011,8,26,7,0,0,0),"Pacific/Fiji":new Date(2010,10,29,23,0,0,0),"America/Halifax":new Date(2011,2,13,6,0,0,0),"America/Goose_Bay":new Date(2011,2,13,2,1,0,0),"America/Miquelon":new Date(2011,2,13,5,0,0,0),"America/Godthab":new Date(2011,2,27,1,0,0,0),"Europe/Moscow":t,"Asia/Yekaterinburg":t,"Asia/Omsk":t,"Asia/Krasnoyarsk":t,"Asia/Irkutsk":t,"Asia/Yakutsk":t,"Asia/Vladivostok":t,"Asia/Kamchatka":t,"Europe/Minsk":t,"Pacific/Apia":new Date(2010,10,1,1,0,0,0),"Australia/Perth":new Date(2008,10,1,1,0,0,0)};return n[e]};return{determine:f,date_is_dst:u,dst_start_for:l}}();t.TimeZone=function(e){"use strict";var n={"America/Denver":["America/Denver","America/Mazatlan"],"America/Chicago":["America/Chicago","America/Mexico_City"],"America/Santiago":["America/Santiago","America/Asuncion","America/Campo_Grande"],"America/Montevideo":["America/Montevideo","America/Sao_Paulo"],"Asia/Beirut":["Asia/Beirut","Europe/Helsinki","Europe/Istanbul","Asia/Damascus","Asia/Jerusalem","Asia/Gaza"],"Pacific/Auckland":["Pacific/Auckland","Pacific/Fiji"],"America/Los_Angeles":["America/Los_Angeles","America/Santa_Isabel"],"America/New_York":["America/Havana","America/New_York"],"America/Halifax":["America/Goose_Bay","America/Halifax"],"America/Godthab":["America/Miquelon","America/Godthab"],"Asia/Dubai":["Europe/Moscow"],"Asia/Dhaka":["Asia/Yekaterinburg"],"Asia/Jakarta":["Asia/Omsk"],"Asia/Shanghai":["Asia/Krasnoyarsk","Australia/Perth"],"Asia/Tokyo":["Asia/Irkutsk"],"Australia/Brisbane":["Asia/Yakutsk"],"Pacific/Noumea":["Asia/Vladivostok"],"Pacific/Tarawa":["Asia/Kamchatka"],"Pacific/Tongatapu":["Pacific/Apia"],"Africa/Johannesburg":["Asia/Gaza","Africa/Cairo"],"Asia/Baghdad":["Europe/Minsk"]},r=e,i=function(){var e=n[r],i=e.length,s=0,o=e[0];for(;s<i;s+=1){o=e[s];if(t.date_is_dst(t.dst_start_for(o))){r=o;return}}},s=function(){return typeof n[r]!="undefined"};return s()&&i(),{name:function(){return r}}},t.olson={},t.olson.timezones={"-720,0":"Pacific/Majuro","-660,0":"Pacific/Pago_Pago","-600,1":"America/Adak","-600,0":"Pacific/Honolulu","-570,0":"Pacific/Marquesas","-540,0":"Pacific/Gambier","-540,1":"America/Anchorage","-480,1":"America/Los_Angeles","-480,0":"Pacific/Pitcairn","-420,0":"America/Phoenix","-420,1":"America/Denver","-360,0":"America/Guatemala","-360,1":"America/Chicago","-360,1,s":"Pacific/Easter","-300,0":"America/Bogota","-300,1":"America/New_York","-270,0":"America/Caracas","-240,1":"America/Halifax","-240,0":"America/Santo_Domingo","-240,1,s":"America/Santiago","-210,1":"America/St_Johns","-180,1":"America/Godthab","-180,0":"America/Argentina/Buenos_Aires","-180,1,s":"America/Montevideo","-120,0":"America/Noronha","-120,1":"America/Noronha","-60,1":"Atlantic/Azores","-60,0":"Atlantic/Cape_Verde","0,0":"UTC","0,1":"Europe/London","60,1":"Europe/Berlin","60,0":"Africa/Lagos","60,1,s":"Africa/Windhoek","120,1":"Asia/Beirut","120,0":"Africa/Johannesburg","180,0":"Asia/Baghdad","180,1":"Europe/Moscow","210,1":"Asia/Tehran","240,0":"Asia/Dubai","240,1":"Asia/Baku","270,0":"Asia/Kabul","300,1":"Asia/Yekaterinburg","300,0":"Asia/Karachi","330,0":"Asia/Kolkata","345,0":"Asia/Kathmandu","360,0":"Asia/Dhaka","360,1":"Asia/Omsk","390,0":"Asia/Rangoon","420,1":"Asia/Krasnoyarsk","420,0":"Asia/Jakarta","480,0":"Asia/Shanghai","480,1":"Asia/Irkutsk","525,0":"Australia/Eucla","525,1,s":"Australia/Eucla","540,1":"Asia/Yakutsk","540,0":"Asia/Tokyo","570,0":"Australia/Darwin","570,1,s":"Australia/Adelaide","600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Tarawa","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"},typeof exports!="undefined"?exports.jstz=t:e.jstz=t})(this);
!function(e){var a=function(){"use strict";var e="s",s={DAY:864e5,HOUR:36e5,MINUTE:6e4,SECOND:1e3,BASELINE_YEAR:2014,MAX_SCORE:864e6,AMBIGUITIES:{"America/Denver":["America/Mazatlan"],"Europe/London":["Africa/Casablanca"],"America/Chicago":["America/Mexico_City"],"America/Asuncion":["America/Campo_Grande","America/Santiago"],"America/Montevideo":["America/Sao_Paulo","America/Santiago"],"Asia/Beirut":["Asia/Amman","Asia/Jerusalem","Europe/Helsinki","Asia/Damascus","Africa/Cairo","Asia/Gaza","Europe/Minsk"],"Pacific/Auckland":["Pacific/Fiji"],"America/Los_Angeles":["America/Santa_Isabel"],"America/New_York":["America/Havana"],"America/Halifax":["America/Goose_Bay"],"America/Godthab":["America/Miquelon"],"Asia/Dubai":["Asia/Yerevan"],"Asia/Jakarta":["Asia/Krasnoyarsk"],"Asia/Shanghai":["Asia/Irkutsk","Australia/Perth"],"Australia/Sydney":["Australia/Lord_Howe"],"Asia/Tokyo":["Asia/Yakutsk"],"Asia/Dhaka":["Asia/Omsk"],"Asia/Baku":["Asia/Yerevan"],"Australia/Brisbane":["Asia/Vladivostok"],"Pacific/Noumea":["Asia/Vladivostok"],"Pacific/Majuro":["Asia/Kamchatka","Pacific/Fiji"],"Pacific/Tongatapu":["Pacific/Apia"],"Asia/Baghdad":["Europe/Minsk","Europe/Moscow"],"Asia/Karachi":["Asia/Yekaterinburg"],"Africa/Johannesburg":["Asia/Gaza","Africa/Cairo"]}},i=function(e){var a=-e.getTimezoneOffset();return null!==a?a:0},r=function(){var a=i(new Date(s.BASELINE_YEAR,0,2)),r=i(new Date(s.BASELINE_YEAR,5,2)),n=a-r;return 0>n?a+",1":n>0?r+",1,"+e:a+",0"},n=function(){var e,a;if("undefined"!=typeof Intl&&"undefined"!=typeof Intl.DateTimeFormat&&(e=Intl.DateTimeFormat(),"undefined"!=typeof e&&"undefined"!=typeof e.resolvedOptions))return a=e.resolvedOptions().timeZone,a&&(a.indexOf("/")>-1||"UTC"===a)?a:void 0},o=function(e){for(var a=new Date(e,0,1,0,0,1,0).getTime(),s=new Date(e,12,31,23,59,59).getTime(),i=a,r=new Date(i).getTimezoneOffset(),n=null,o=null;s-864e5>i;){var t=new Date(i),A=t.getTimezoneOffset();A!==r&&(r>A&&(n=t),A>r&&(o=t),r=A),i+=864e5}return n&&o?{s:u(n).getTime(),e:u(o).getTime()}:!1},u=function l(e,a,i){"undefined"==typeof a&&(a=s.DAY,i=s.HOUR);for(var r=new Date(e.getTime()-a).getTime(),n=e.getTime()+a,o=new Date(r).getTimezoneOffset(),u=r,t=null;n-i>u;){var A=new Date(u),c=A.getTimezoneOffset();if(c!==o){t=A;break}u+=i}return a===s.DAY?l(t,s.HOUR,s.MINUTE):a===s.HOUR?l(t,s.MINUTE,s.SECOND):t},t=function(e,a,s,i){if("N/A"!==s)return s;if("Asia/Beirut"===a){if("Africa/Cairo"===i.name&&13983768e5===e[6].s&&14116788e5===e[6].e)return 0;if("Asia/Jerusalem"===i.name&&13959648e5===e[6].s&&14118588e5===e[6].e)return 0}else if("America/Santiago"===a){if("America/Asuncion"===i.name&&14124816e5===e[6].s&&1397358e6===e[6].e)return 0;if("America/Campo_Grande"===i.name&&14136912e5===e[6].s&&13925196e5===e[6].e)return 0}else if("America/Montevideo"===a){if("America/Sao_Paulo"===i.name&&14136876e5===e[6].s&&1392516e6===e[6].e)return 0}else if("Pacific/Auckland"===a&&"Pacific/Fiji"===i.name&&14142456e5===e[6].s&&13961016e5===e[6].e)return 0;return s},A=function(e,i){for(var r=function(a){for(var r=0,n=0;n<e.length;n++)if(a.rules[n]&&e[n]){if(!(e[n].s>=a.rules[n].s&&e[n].e<=a.rules[n].e)){r="N/A";break}if(r=0,r+=Math.abs(e[n].s-a.rules[n].s),r+=Math.abs(a.rules[n].e-e[n].e),r>s.MAX_SCORE){r="N/A";break}}return r=t(e,i,r,a)},n={},o=a.olson.dst_rules.zones,u=o.length,A=s.AMBIGUITIES[i],c=0;u>c;c++){var m=o[c],l=r(o[c]);"N/A"!==l&&(n[m.name]=l)}for(var f in n)if(n.hasOwnProperty(f))for(var d=0;d<A.length;d++)if(A[d]===f)return f;return i},c=function(e){var s=function(){for(var e=[],s=0;s<a.olson.dst_rules.years.length;s++){var i=o(a.olson.dst_rules.years[s]);e.push(i)}return e},i=function(e){for(var a=0;a<e.length;a++)if(e[a]!==!1)return!0;return!1},r=s(),n=i(r);return n?A(r,e):e},m=function(){var e=n();return e||(e=a.olson.timezones[r()],"undefined"!=typeof s.AMBIGUITIES[e]&&(e=c(e))),{name:function(){return e}}};return{determine:m}}();a.olson=a.olson||{},a.olson.timezones={"-720,0":"Etc/GMT+12","-660,0":"Pacific/Pago_Pago","-660,1,s":"Pacific/Apia","-600,1":"America/Adak","-600,0":"Pacific/Honolulu","-570,0":"Pacific/Marquesas","-540,0":"Pacific/Gambier","-540,1":"America/Anchorage","-480,1":"America/Los_Angeles","-480,0":"Pacific/Pitcairn","-420,0":"America/Phoenix","-420,1":"America/Denver","-360,0":"America/Guatemala","-360,1":"America/Chicago","-360,1,s":"Pacific/Easter","-300,0":"America/Bogota","-300,1":"America/New_York","-270,0":"America/Caracas","-240,1":"America/Halifax","-240,0":"America/Santo_Domingo","-240,1,s":"America/Asuncion","-210,1":"America/St_Johns","-180,1":"America/Godthab","-180,0":"America/Argentina/Buenos_Aires","-180,1,s":"America/Montevideo","-120,0":"America/Noronha","-120,1":"America/Noronha","-60,1":"Atlantic/Azores","-60,0":"Atlantic/Cape_Verde","0,0":"UTC","0,1":"Europe/London","60,1":"Europe/Berlin","60,0":"Africa/Lagos","60,1,s":"Africa/Windhoek","120,1":"Asia/Beirut","120,0":"Africa/Johannesburg","180,0":"Asia/Baghdad","180,1":"Europe/Moscow","210,1":"Asia/Tehran","240,0":"Asia/Dubai","240,1":"Asia/Baku","270,0":"Asia/Kabul","300,1":"Asia/Yekaterinburg","300,0":"Asia/Karachi","330,0":"Asia/Kolkata","345,0":"Asia/Kathmandu","360,0":"Asia/Dhaka","360,1":"Asia/Omsk","390,0":"Asia/Rangoon","420,1":"Asia/Krasnoyarsk","420,0":"Asia/Jakarta","480,0":"Asia/Shanghai","480,1":"Asia/Irkutsk","525,0":"Australia/Eucla","525,1,s":"Australia/Eucla","540,1":"Asia/Yakutsk","540,0":"Asia/Tokyo","570,0":"Australia/Darwin","570,1,s":"Australia/Adelaide","600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Majuro","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"},a.olson.dst_rules={years:[2008,2009,2010,2011,2012,2013,2014],zones:[{name:"Africa/Cairo",rules:[{e:12199572e5,s:12090744e5},{e:1250802e6,s:1240524e6},{e:12858804e5,s:12840696e5},!1,!1,!1,{e:14116788e5,s:1406844e6}]},{name:"Africa/Casablanca",rules:[{e:12202236e5,s:12122784e5},{e:12508092e5,s:12438144e5},{e:1281222e6,s:12727584e5},{e:13120668e5,s:13017888e5},{e:13489704e5,s:1345428e6},{e:13828392e5,s:13761e8},{e:14142888e5,s:14069448e5}]},{name:"America/Asuncion",rules:[{e:12050316e5,s:12243888e5},{e:12364812e5,s:12558384e5},{e:12709548e5,s:12860784e5},{e:13024044e5,s:1317528e6},{e:1333854e6,s:13495824e5},{e:1364094e6,s:1381032e6},{e:13955436e5,s:14124816e5}]},{name:"America/Campo_Grande",rules:[{e:12032172e5,s:12243888e5},{e:12346668e5,s:12558384e5},{e:12667212e5,s:1287288e6},{e:12981708e5,s:13187376e5},{e:13302252e5,s:1350792e6},{e:136107e7,s:13822416e5},{e:13925196e5,s:14136912e5}]},{name:"America/Goose_Bay",rules:[{e:122559486e4,s:120503526e4},{e:125704446e4,s:123648486e4},{e:128909886e4,s:126853926e4},{e:13205556e5,s:129998886e4},{e:13520052e5,s:13314456e5},{e:13834548e5,s:13628952e5},{e:14149044e5,s:13943448e5}]},{name:"America/Havana",rules:[{e:12249972e5,s:12056436e5},{e:12564468e5,s:12364884e5},{e:12885012e5,s:12685428e5},{e:13211604e5,s:13005972e5},{e:13520052e5,s:13332564e5},{e:13834548e5,s:13628916e5},{e:14149044e5,s:13943412e5}]},{name:"America/Mazatlan",rules:[{e:1225008e6,s:12074724e5},{e:12564576e5,s:1238922e6},{e:1288512e6,s:12703716e5},{e:13199616e5,s:13018212e5},{e:13514112e5,s:13332708e5},{e:13828608e5,s:13653252e5},{e:14143104e5,s:13967748e5}]},{name:"America/Mexico_City",rules:[{e:12250044e5,s:12074688e5},{e:1256454e6,s:12389184e5},{e:12885084e5,s:1270368e6},{e:1319958e6,s:13018176e5},{e:13514076e5,s:13332672e5},{e:13828572e5,s:13653216e5},{e:14143068e5,s:13967712e5}]},{name:"America/Miquelon",rules:[{e:12255984e5,s:12050388e5},{e:1257048e6,s:12364884e5},{e:12891024e5,s:12685428e5},{e:1320552e6,s:12999924e5},{e:13520016e5,s:1331442e6},{e:13834512e5,s:13628916e5},{e:14149008e5,s:13943412e5}]},{name:"America/Santa_Isabel",rules:[{e:12250116e5,s:1207476e6},{e:12564612e5,s:12389256e5},{e:12885156e5,s:12703752e5},{e:13199652e5,s:13018248e5},{e:13514148e5,s:13332744e5},{e:13828644e5,s:13653288e5},{e:1414314e6,s:13967784e5}]},{name:"America/Santiago",rules:[{e:1206846e6,s:1223784e6},{e:1237086e6,s:12552336e5},{e:127035e7,s:12866832e5},{e:13048236e5,s:13138992e5},{e:13356684e5,s:13465584e5},{e:1367118e6,s:13786128e5},{e:13985676e5,s:14100624e5}]},{name:"America/Sao_Paulo",rules:[{e:12032136e5,s:12243852e5},{e:12346632e5,s:12558348e5},{e:12667176e5,s:12872844e5},{e:12981672e5,s:1318734e6},{e:13302216e5,s:13507884e5},{e:13610664e5,s:1382238e6},{e:1392516e6,s:14136876e5}]},{name:"Asia/Amman",rules:[{e:1225404e6,s:12066552e5},{e:12568536e5,s:12381048e5},{e:12883032e5,s:12695544e5},{e:13197528e5,s:13016088e5},!1,!1,{e:14147064e5,s:13959576e5}]},{name:"Asia/Damascus",rules:[{e:12254868e5,s:120726e7},{e:125685e7,s:12381048e5},{e:12882996e5,s:12701592e5},{e:13197492e5,s:13016088e5},{e:13511988e5,s:13330584e5},{e:13826484e5,s:1364508e6},{e:14147028e5,s:13959576e5}]},{name:"Asia/Dubai",rules:[!1,!1,!1,!1,!1,!1,!1]},{name:"Asia/Gaza",rules:[{e:12199572e5,s:12066552e5},{e:12520152e5,s:12381048e5},{e:1281474e6,s:126964086e4},{e:1312146e6,s:130160886e4},{e:13481784e5,s:13330584e5},{e:13802292e5,s:1364508e6},{e:1414098e6,s:13959576e5}]},{name:"Asia/Irkutsk",rules:[{e:12249576e5,s:12068136e5},{e:12564072e5,s:12382632e5},{e:12884616e5,s:12697128e5},!1,!1,!1,!1]},{name:"Asia/Jerusalem",rules:[{e:12231612e5,s:12066624e5},{e:1254006e6,s:1238112e6},{e:1284246e6,s:12695616e5},{e:131751e7,s:1301616e6},{e:13483548e5,s:13330656e5},{e:13828284e5,s:13645152e5},{e:1414278e6,s:13959648e5}]},{name:"Asia/Kamchatka",rules:[{e:12249432e5,s:12067992e5},{e:12563928e5,s:12382488e5},{e:12884508e5,s:12696984e5},!1,!1,!1,!1]},{name:"Asia/Krasnoyarsk",rules:[{e:12249612e5,s:12068172e5},{e:12564108e5,s:12382668e5},{e:12884652e5,s:12697164e5},!1,!1,!1,!1]},{name:"Asia/Omsk",rules:[{e:12249648e5,s:12068208e5},{e:12564144e5,s:12382704e5},{e:12884688e5,s:126972e7},!1,!1,!1,!1]},{name:"Asia/Vladivostok",rules:[{e:12249504e5,s:12068064e5},{e:12564e8,s:1238256e6},{e:12884544e5,s:12697056e5},!1,!1,!1,!1]},{name:"Asia/Yakutsk",rules:[{e:1224954e6,s:120681e7},{e:12564036e5,s:12382596e5},{e:1288458e6,s:12697092e5},!1,!1,!1,!1]},{name:"Asia/Yekaterinburg",rules:[{e:12249684e5,s:12068244e5},{e:1256418e6,s:1238274e6},{e:12884724e5,s:12697236e5},!1,!1,!1,!1]},{name:"Asia/Yerevan",rules:[{e:1224972e6,s:1206828e6},{e:12564216e5,s:12382776e5},{e:1288476e6,s:12697272e5},{e:13199256e5,s:13011768e5},!1,!1,!1]},{name:"Australia/Lord_Howe",rules:[{e:12074076e5,s:12231342e5},{e:12388572e5,s:12545838e5},{e:12703068e5,s:12860334e5},{e:13017564e5,s:1317483e6},{e:1333206e6,s:13495374e5},{e:13652604e5,s:1380987e6},{e:139671e7,s:14124366e5}]},{name:"Australia/Perth",rules:[{e:12068136e5,s:12249576e5},!1,!1,!1,!1,!1,!1]},{name:"Europe/Helsinki",rules:[{e:12249828e5,s:12068388e5},{e:12564324e5,s:12382884e5},{e:12884868e5,s:1269738e6},{e:13199364e5,s:13011876e5},{e:1351386e6,s:13326372e5},{e:13828356e5,s:13646916e5},{e:14142852e5,s:13961412e5}]},{name:"Europe/Minsk",rules:[{e:12249792e5,s:12068352e5},{e:12564288e5,s:12382848e5},{e:12884832e5,s:12697344e5},!1,!1,!1,!1]},{name:"Europe/Moscow",rules:[{e:12249756e5,s:12068316e5},{e:12564252e5,s:12382812e5},{e:12884796e5,s:12697308e5},!1,!1,!1,!1]},{name:"Pacific/Apia",rules:[!1,!1,!1,{e:13017528e5,s:13168728e5},{e:13332024e5,s:13489272e5},{e:13652568e5,s:13803768e5},{e:13967064e5,s:14118264e5}]},{name:"Pacific/Fiji",rules:[!1,!1,{e:12696984e5,s:12878424e5},{e:13271544e5,s:1319292e6},{e:1358604e6,s:13507416e5},{e:139005e7,s:1382796e6},{e:14215032e5,s:14148504e5}]},{name:"Europe/London",rules:[{e:12249828e5,s:12068388e5},{e:12564324e5,s:12382884e5},{e:12884868e5,s:1269738e6},{e:13199364e5,s:13011876e5},{e:1351386e6,s:13326372e5},{e:13828356e5,s:13646916e5},{e:14142852e5,s:13961412e5}]}]},"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a:"undefined"!=typeof define&&null!==define&&null!=define.amd?define([],function(){return a}):"undefined"==typeof e?window.jstz=a:e.jstz=a}();
program/js/list.js
@@ -1688,32 +1688,33 @@
    this.col_draglayer = null;
  }
  if (this.col_drag_active)
    this.focus();
  this.col_drag_active = false;
  rcube_event.remove_listener({event:'mousemove', object:this, method:'column_drag_mouse_move'});
  rcube_event.remove_listener({event:'mouseup', object:this, method:'column_drag_mouse_up'});
  // remove temp divs
  this.del_dragfix();
  if (this.selected_column !== null && this.cols && this.cols.length) {
    var i, cpos = 0, pos = rcube_event.get_mouse_pos(e);
  if (this.col_drag_active) {
    this.col_drag_active = false;
    this.focus();
    this.triggerEvent('column_dragend', e);
    // find destination position
    for (i=0; i<this.cols.length; i++) {
      if (pos.x >= this.cols[i]/2 + this.list_pos + cpos)
        cpos += this.cols[i];
      else
        break;
    }
    if (this.selected_column !== null && this.cols && this.cols.length) {
      var i, cpos = 0, pos = rcube_event.get_mouse_pos(e);
    if (i != this.selected_column && i != this.selected_column+1) {
      this.column_replace(this.selected_column, i);
      // find destination position
      for (i=0; i<this.cols.length; i++) {
        if (pos.x >= this.cols[i]/2 + this.list_pos + cpos)
          cpos += this.cols[i];
        else
          break;
      }
      if (i != this.selected_column && i != this.selected_column+1) {
        this.column_replace(this.selected_column, i);
      }
    }
  }
  this.triggerEvent('column_dragend', e);
  return rcube_event.cancel(e);
},
program/lib/Roundcube/bootstrap.php
@@ -55,7 +55,7 @@
}
// framework constants
define('RCUBE_VERSION', '1.2-git');
define('RCUBE_VERSION', '1.3-git');
define('RCUBE_CHARSET', 'UTF-8');
if (!defined('RCUBE_LIB_DIR')) {
@@ -428,27 +428,25 @@
 */
function rcube_autoload($classname)
{
    $filename = preg_replace(
        array(
            '/Mail_(.+)/',
            '/Net_(.+)/',
            '/Auth_(.+)/',
            '/^html_.+/',
            '/^rcube(.*)/'
        ),
        array(
            'Mail/\\1',
            'Net/\\1',
            'Auth/\\1',
            'Roundcube/html',
            'Roundcube/rcube\\1'
        ),
        $classname
    );
    if (strpos($classname, 'rcube') === 0) {
        $classname = 'Roundcube/' . $classname;
    }
    else if (strpos($classname, 'html_') === 0 || $classname === 'html') {
        $classname = 'Roundcube/html';
    }
    else if (strpos($classname, 'Mail_') === 0) {
        $classname = 'Mail/' . substr($classname, 5);
    }
    else if (strpos($classname, 'Net_') === 0) {
        $classname = 'Net/' . substr($classname, 4);
    }
    else if (strpos($classname, 'Auth_') === 0) {
        $classname = 'Auth/' . substr($classname, 5);
    }
    if ($fp = @fopen("$filename.php", 'r', true)) {
    if ($fp = @fopen("$classname.php", 'r', true)) {
        fclose($fp);
        include_once "$filename.php";
        include_once "$classname.php";
        return true;
    }
program/lib/Roundcube/rcube.php
@@ -1142,12 +1142,16 @@
        // trigger logging hook
        if (is_object(self::$instance) && is_object(self::$instance->plugins)) {
            $log  = self::$instance->plugins->exec_hook('write_log', array('name' => $name, 'date' => $date, 'line' => $line));
            $log = self::$instance->plugins->exec_hook('write_log',
                array('name' => $name, 'date' => $date, 'line' => $line));
            $name = $log['name'];
            $line = $log['line'];
            $date = $log['date'];
            if ($log['abort'])
            if ($log['abort']) {
                return true;
            }
        }
        // add session ID to the log
@@ -1169,32 +1173,25 @@
        // per-user logging is activated
        if (self::$instance && self::$instance->config->get('per_user_logging', false) && self::$instance->get_user_id()) {
            $log_dir = self::$instance->get_user_log_dir();
            if (empty($log_dir))
            if (empty($log_dir) && $name != 'errors') {
                return false;
            }
        }
        else if (!empty($log['dir'])) {
            $log_dir = $log['dir'];
        }
        else if (self::$instance) {
            $log_dir = self::$instance->config->get('log_dir');
        if (empty($log_dir)) {
            if (!empty($log['dir'])) {
                $log_dir = $log['dir'];
            }
            else if (self::$instance) {
                $log_dir = self::$instance->config->get('log_dir');
            }
        }
        if (empty($log_dir)) {
            $log_dir = RCUBE_INSTALL_PATH . 'logs';
        }
        // try to open specific log file for writing
        $logfile = $log_dir.'/'.$name;
        if ($fp = @fopen($logfile, 'a')) {
            fwrite($fp, $line);
            fflush($fp);
            fclose($fp);
            return true;
        }
        trigger_error("Error writing to log file $logfile; Please check permissions", E_USER_WARNING);
        return false;
        return file_put_contents("$log_dir/$name", $line, FILE_APPEND) !== false;
    }
    /**
program/lib/Roundcube/rcube_imap.php
@@ -936,7 +936,7 @@
    /**
     * protected method for setting threaded messages flags:
     * depth, has_children and unread_children
     * depth, has_children, unread_children, flagged_children
     *
     * @param array               $headers  Reference to headers array indexed by message UID
     * @param rcube_result_thread $threads  Threads data object
@@ -955,8 +955,12 @@
            if (!empty($parents)) {
                $headers[$uid]->parent_uid = end($parents);
                if (empty($header->flags['SEEN']))
                if (empty($header->flags['SEEN'])) {
                    $headers[$parents[0]]->unread_children++;
                }
                if (!empty($header->flags['FLAGGED'])) {
                    $headers[$parents[0]]->flagged_children++;
                }
            }
            array_push($parents, $uid);
program/lib/Roundcube/rcube_imap_generic.php
@@ -1128,35 +1128,61 @@
            $response = explode("\r\n", $response);
            foreach ($response as $line) {
                if (preg_match('/^\* ([0-9]+) (EXISTS|RECENT)$/i', $line, $m)) {
                    $this->data[strtoupper($m[2])] = (int) $m[1];
                }
                else if (preg_match('/^\* OK \[/i', $line, $match)) {
                    $line = substr($line, 6);
                    if (preg_match('/^(UIDNEXT|UIDVALIDITY|UNSEEN) ([0-9]+)/i', $line, $match)) {
                        $this->data[strtoupper($match[1])] = (int) $match[2];
                    }
                    else if (preg_match('/^(HIGHESTMODSEQ) ([0-9]+)/i', $line, $match)) {
                        $this->data[strtoupper($match[1])] = (string) $match[2];
                    }
                    else if (preg_match('/^(NOMODSEQ)/i', $line, $match)) {
                        $this->data[strtoupper($match[1])] = true;
                    }
                    else if (preg_match('/^PERMANENTFLAGS \(([^\)]+)\)/iU', $line, $match)) {
                        $this->data['PERMANENTFLAGS'] = explode(' ', $match[1]);
                if (preg_match('/^\* OK \[/i', $line)) {
                    $pos   = strcspn($line, ' ]', 6);
                    $token = strtoupper(substr($line, 6, $pos));
                    $pos   += 7;
                    switch ($token) {
                    case 'UIDNEXT':
                    case 'UIDVALIDITY':
                    case 'UNSEEN':
                        if ($len = strspn($line, '0123456789', $pos)) {
                            $this->data[$token] = (int) substr($line, $pos, $len);
                        }
                        break;
                    case 'HIGHESTMODSEQ':
                        if ($len = strspn($line, '0123456789', $pos)) {
                            $this->data[$token] = (string) substr($line, $pos, $len);
                        }
                        break;
                    case 'NOMODSEQ':
                        $this->data[$token] = true;
                        break;
                    case 'PERMANENTFLAGS':
                        $start = strpos($line, '(', $pos);
                        $end   = strrpos($line, ')');
                        if ($start && $end) {
                            $flags = substr($line, $start + 1, $end - $start - 1);
                            $this->data[$token] = explode(' ', $flags);
                        }
                        break;
                    }
                }
                // QRESYNC FETCH response (RFC5162)
                else if (preg_match('/^\* ([0-9+]) FETCH/i', $line, $match)) {
                    $line       = substr($line, strlen($match[0]));
                    $fetch_data = $this->tokenizeResponse($line, 1);
                    $data       = array('id' => $match[1]);
                else if (preg_match('/^\* ([0-9]+) (EXISTS|RECENT|FETCH)/i', $line, $match)) {
                    $token = strtoupper($match[2]);
                    switch ($token) {
                    case 'EXISTS':
                    case 'RECENT':
                        $this->data[$token] = (int) $match[1];
                        break;
                    for ($i=0, $size=count($fetch_data); $i<$size; $i+=2) {
                        $data[strtolower($fetch_data[$i])] = $fetch_data[$i+1];
                    case 'FETCH':
                        // QRESYNC FETCH response (RFC5162)
                        $line       = substr($line, strlen($match[0]));
                        $fetch_data = $this->tokenizeResponse($line, 1);
                        $data       = array('id' => $match[1]);
                        for ($i=0, $size=count($fetch_data); $i<$size; $i+=2) {
                            $data[strtolower($fetch_data[$i])] = $fetch_data[$i+1];
                        }
                        $this->data['QRESYNC'][$data['uid']] = $data;
                        break;
                    }
                    $this->data['QRESYNC'][$data['uid']] = $data;
                }
                // QRESYNC VANISHED response (RFC5162)
                else if (preg_match('/^\* VANISHED [()EARLIER]*/i', $line, $match)) {
program/lib/Roundcube/rcube_message.php
@@ -54,6 +54,7 @@
    public $folder;
    public $headers;
    public $sender;
    public $context;
    public $parts        = array();
    public $mime_parts   = array();
    public $inline_parts = array();
@@ -78,11 +79,17 @@
    function __construct($uid, $folder = null, $is_safe = false)
    {
        // decode combined UID-folder identifier
        if (preg_match('/^\d+-.+/', $uid)) {
        if (preg_match('/^[0-9.]+-.+/', $uid)) {
            list($uid, $folder) = explode('-', $uid, 2);
        }
        if (preg_match('/^([0-9]+)\.([0-9.]+)$/', $uid, $matches)) {
            $uid     = $matches[1];
            $context = $matches[2];
        }
        $this->uid     = $uid;
        $this->context = $context;
        $this->app     = rcube::get_instance();
        $this->storage = $this->app->get_storage();
        $this->folder  = strlen($folder) ? $folder : $this->storage->get_folder();
@@ -96,10 +103,6 @@
        if (!$this->headers) {
            return;
        }
        $this->mime    = new rcube_mime($this->headers->charset);
        $this->subject = $this->headers->get('subject');
        list(, $this->sender) = each($this->mime->decode_address_list($this->headers->from, 1));
        $this->set_safe($is_safe || $_SESSION['safe_messages'][$this->folder.':'.$uid]);
        $this->opt = array(
@@ -116,9 +119,13 @@
            $this->get_mime_numbers($this->headers->structure);
            $this->parse_structure($this->headers->structure);
        }
        else {
        else if ($this->context === null) {
            $this->body = $this->storage->get_body($uid);
        }
        $this->mime    = new rcube_mime($this->headers->charset);
        $this->subject = $this->headers->get('subject');
        list(, $this->sender) = each($this->mime->decode_address_list($this->headers->from, 1));
        // notify plugins and let them analyze this structured message object
        $this->app->plugins->exec_hook('message_load', array('object' => $this));
@@ -169,7 +176,7 @@
     * Get content of a specific part of this message
     *
     * @param string   $mime_id           Part MIME-ID
     * @param resource $fp File           pointer to save the message part
     * @param resource $fp                File pointer to save the message part
     * @param boolean  $skip_charset_conv Disables charset conversion
     * @param int      $max_bytes         Only read this number of bytes
     * @param boolean  $formatted         Enables formatting of text/* parts bodies
@@ -338,6 +345,14 @@
                    continue;
                }
                if (!$part->size) {
                    continue;
                }
                if (!$this->check_context($part)) {
                    continue;
                }
                $level = explode('.', $part->mime_id);
                $depth = count($level);
                $last  = '';
@@ -350,19 +365,22 @@
                        return true;
                    }
                    $parent    = $this->mime_parts[join('.', $level)];
                    $max_delta = $depth - (1 + ($last == 'multipart/alternative' ? 1 : 0));
                    $last      = $parent->mimetype;
                    $parent = $this->mime_parts[join('.', $level)];
                    if (!preg_match('/^multipart\/(alternative|related|signed|encrypted|mixed)$/', $parent->mimetype)
                        || ($parent->mimetype == 'multipart/mixed' && $parent_depth < $max_delta)) {
                    if (!$this->check_context($parent)) {
                        return true;
                    }
                    $max_delta = $depth - (1 + ($last == 'multipart/alternative' ? 1 : 0));
                    $last      = $parent->real_mimetype ?: $parent->mimetype;
                    if (!preg_match('/^multipart\/(alternative|related|signed|encrypted|mixed)$/', $last)
                        || ($last == 'multipart/mixed' && $parent_depth < $max_delta)) {
                        continue 2;
                    }
                }
                if ($part->size) {
                    return true;
                }
                return true;
            }
        }
@@ -389,6 +407,14 @@
                    continue;
                }
                if (!$part->size) {
                    continue;
                }
                if (!$this->check_context($part)) {
                    continue;
                }
                $level = explode('.', $part->mime_id);
                // Check if the part belongs to higher-level's alternative/related
@@ -398,14 +424,17 @@
                    }
                    $parent = $this->mime_parts[join('.', $level)];
                    if (!$this->check_context($parent)) {
                        return true;
                    }
                    if ($parent->mimetype != 'multipart/alternative' && $parent->mimetype != 'multipart/related') {
                        continue 2;
                    }
                }
                if ($part->size) {
                    return true;
                }
                return true;
            }
        }
@@ -461,6 +490,26 @@
            $h2t  = new rcube_html2text($body);
            return $h2t->get_text();
        }
    }
    /**
     * Return message parts in current context
     */
    public function mime_parts()
    {
        if ($this->context === null) {
            return $this->mime_parts;
        }
        $parts = array();
        foreach ($this->mime_parts as $part_id => $part) {
            if ($this->check_context($part)) {
                $parts[$part_id] = $part;
            }
        }
        return $parts;
    }
    /**
@@ -527,6 +576,10 @@
            if (!isset($structure->headers['subject']) && !isset($structure->headers['from'])) {
                list($headers, ) = explode("\r\n\r\n", $this->get_part_body($structure->mime_id, false, 32768));
                $structure->headers = rcube_mime::parse_headers($headers);
                if ($this->context == $structure->mime_id) {
                    $this->headers = rcube_message_header::from_array($structure->headers);
                }
            }
        }
        else {
@@ -535,11 +588,12 @@
        // show message headers
        if ($recursive && is_array($structure->headers) &&
                (isset($structure->headers['subject']) || $structure->headers['from'] || $structure->headers['to'])) {
            (isset($structure->headers['subject']) || $structure->headers['from'] || $structure->headers['to'])
        ) {
            $c = new stdClass;
            $c->type = 'headers';
            $c->headers = $structure->headers;
            $this->parts[] = $c;
            $this->add_part($c);
        }
        // Allow plugins to handle message parts
@@ -561,25 +615,25 @@
        if ($message_ctype_primary == 'text' && !$recursive) {
            // parts with unsupported type add to attachments list
            if (!in_array($message_ctype_secondary, array('plain', 'html', 'enriched'))) {
                $this->attachments[] = $structure;
                $this->add_part($structure, 'attachment');
                return;
            }
            $structure->type = 'content';
            $this->parts[] = $structure;
            $this->add_part($structure);
            // Parse simple (plain text) message body
            if ($message_ctype_secondary == 'plain') {
                foreach ((array)$this->uu_decode($structure) as $uupart) {
                    $this->mime_parts[$uupart->mime_id] = $uupart;
                    $this->attachments[] = $uupart;
                    $this->add_part($uupart, 'attachment');
                }
            }
        }
        // the same for pgp signed messages
        else if ($mimetype == 'application/pgp' && !$recursive) {
            $structure->type = 'content';
            $this->parts[] = $structure;
            $this->add_part($structure);
        }
        // message contains (more than one!) alternative parts
        else if ($mimetype == 'multipart/alternative'
@@ -613,7 +667,7 @@
                    $enriched_part = $p;
                else {
                    // add unsupported/unrecognized parts to attachments list
                    $this->attachments[] = $sub_part;
                    $this->add_part($sub_part, 'attachment');
                }
            }
@@ -642,7 +696,7 @@
            // add the right message body
            if (is_object($print_part)) {
                $print_part->type = 'content';
                $this->parts[] = $print_part;
                $this->add_part($print_part);
            }
            // show plaintext warning
            else if ($html_part !== null && empty($this->parts)) {
@@ -653,7 +707,7 @@
                $c->mimetype        = 'text/plain';
                $c->realtype        = 'text/html';
                $this->parts[] = $c;
                $this->add_part($c);
            }
        }
        // this is an ecrypted message -> create a plaintext body with the according message
@@ -666,14 +720,14 @@
            $p->realtype        = 'multipart/encrypted';
            $p->mime_id         = $structure->mime_id;
            $this->parts[] = $p;
            $this->add_part($p);
            // add encrypted payload part as attachment
            if (is_array($structure->parts)) {
                for ($i=0; $i < count($structure->parts); $i++) {
                    $subpart = $structure->parts[$i];
                    if ($subpart->mimetype == 'application/octet-stream' || !empty($subpart->filename)) {
                        $this->attachments[] = $subpart;
                        $this->add_part($subpart, 'attachment');
                    }
                }
            }
@@ -688,10 +742,10 @@
            $p->realtype        = 'application/pkcs7-mime';
            $p->mime_id         = $structure->mime_id;
            $this->parts[] = $p;
            $this->add_part($p);
            if (!empty($structure->filename)) {
                $this->attachments[] = $structure;
                $this->add_part($structure, 'attachment');
            }
        }
        // message contains multiple parts
@@ -709,7 +763,7 @@
                    // list message/rfc822 as attachment as well (mostly .eml)
                    if ($primary_type == 'message' && !empty($mail_part->filename)) {
                        $this->attachments[] = $mail_part;
                        $this->add_part($mail_part, 'attachment');
                    }
                }
                // part text/[plain|html] or delivery status
@@ -738,12 +792,12 @@
                        ($secondary_type == 'plain' && !$this->opt['prefer_html'])
                    ) {
                        $mail_part->type = 'content';
                        $this->parts[] = $mail_part;
                        $this->add_part($mail_part);
                    }
                    // list as attachment as well
                    if (!empty($mail_part->filename)) {
                        $this->attachments[] = $mail_part;
                        $this->add_part($mail_part, 'attachment');
                    }
                }
                // ignore "virtual" protocol parts
@@ -755,13 +809,13 @@
                    $tnef_parts = (array) $this->tnef_decode($mail_part);
                    foreach ($tnef_parts as $tpart) {
                        $this->mime_parts[$tpart->mime_id] = $tpart;
                        $this->attachments[] = $tpart;
                        $this->add_part($tpart, 'attachment');
                    }
                    // add winmail.dat to the list if it's content is unknown
                    if (empty($tnef_parts) && !empty($mail_part->filename)) {
                        $this->mime_parts[$mail_part->mime_id] = $mail_part;
                        $this->attachments[] = $mail_part;
                        $this->add_part($mail_part, 'attachment');
                    }
                }
                // part is a file/attachment
@@ -783,12 +837,12 @@
                        if ($mail_part->headers['content-location'])
                            $mail_part->content_location = $mail_part->headers['content-base'] . $mail_part->headers['content-location'];
                        $this->inline_parts[] = $mail_part;
                        $this->add_part($mail_part, 'inline');
                    }
                    // regular attachment with valid content type
                    // (content-type name regexp according to RFC4288.4.2)
                    else if (preg_match('/^[a-z0-9!#$&.+^_-]+\/[a-z0-9!#$&.+^_-]+$/i', $part_mimetype)) {
                        $this->attachments[] = $mail_part;
                        $this->add_part($mail_part, 'attachment');
                    }
                    // attachment with invalid content type
                    // replace malformed content type with application/octet-stream (#1487767)
@@ -797,7 +851,7 @@
                        $mail_part->ctype_secondary = 'octet-stream';
                        $mail_part->mimetype        = 'application/octet-stream';
                        $this->attachments[] = $mail_part;
                        $this->add_part($mail_part, 'attachment');
                    }
                }
                // calendar part not marked as attachment (#1490325)
@@ -806,7 +860,7 @@
                        $mail_part->filename = 'calendar.ics';
                    }
                    $this->attachments[] = $mail_part;
                    $this->add_part($mail_part, 'attachment');
                }
            }
@@ -828,13 +882,13 @@
                        // In this case multipart/related message has only one text part
                        // We'll add all such attachments to the attachments list
                        if (!isset($this->got_html_part)) {
                            $this->attachments[] = $inline_object;
                            $this->add_part($inline_object, 'attachment');
                        }
                        // MS Outlook sometimes also adds non-image attachments as related
                        // We'll add all such attachments to the attachments list
                        // Warning: some browsers support pdf in <img/>
                        else if (!preg_match($img_regexp, $inline_object->mimetype)) {
                            $this->attachments[] = $inline_object;
                            $this->add_part($inline_object, 'attachment');
                        }
                        // @TODO: we should fetch HTML body and find attachment's content-id
                        // to handle also image attachments without reference in the body
@@ -852,16 +906,16 @@
        }
        // message is a single part non-text
        else if ($structure->filename) {
            $this->attachments[] = $structure;
            $this->add_part($structure, $attachment);
        }
        // message is a single part non-text (without filename)
        else if (preg_match('/application\//i', $mimetype)) {
            $this->attachments[] = $structure;
            $this->add_part($structure, 'attachment');
        }
    }
    /**
     * Fill aflat array with references to all parts, indexed by part numbers
     * Fill a flat array with references to all parts, indexed by part numbers
     *
     * @param rcube_message_part $part Message body structure
     */
@@ -876,6 +930,28 @@
    }
    /**
     * Add a part to object parts array(s) (with context check)
     */
    private function add_part($part, $type = null)
    {
        if ($this->check_context($part)) {
            switch ($type) {
                case 'inline': $this->inline_parts[] = $part; break;
                case 'attachment': $this->attachments[] = $part; break;
                default: $this->parts[] = $part; break;
            }
        }
    }
    /**
     * Check if specified part belongs to the current context
     */
    private function check_context($part)
    {
        return $this->context === null || strpos($part->mime_id, $this->context . '.') === 0;
    }
    /**
     * Decode a Microsoft Outlook TNEF part (winmail.dat)
     *
     * @param rcube_message_part $part Message part to decode
program/lib/Roundcube/rcube_mime.php
@@ -3,8 +3,8 @@
/**
 +-----------------------------------------------------------------------+
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2014, The Roundcube Dev Team                       |
 | Copyright (C) 2011-2014, Kolab Systems AG                             |
 | Copyright (C) 2005-2016, The Roundcube Dev Team                       |
 | Copyright (C) 2011-2016, Kolab Systems AG                             |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -101,8 +101,9 @@
        // Special chars as defined by RFC 822 need to in quoted string (or escaped).
        $special_chars = '[\(\)\<\>\\\.\[\]@,;:"]';
        if (!is_array($a))
        if (!is_array($a)) {
            return $out;
        }
        foreach ($a as $val) {
            $j++;
@@ -273,16 +274,17 @@
    public static function parse_headers($headers)
    {
        $a_headers = array();
        $headers = preg_replace('/\r?\n(\t| )+/', ' ', $headers);
        $lines = explode("\n", $headers);
        $c = count($lines);
        $headers   = preg_replace('/\r?\n(\t| )+/', ' ', $headers);
        $lines     = explode("\n", $headers);
        $count     = count($lines);
        for ($i=0; $i<$c; $i++) {
        for ($i=0; $i<$count; $i++) {
            if ($p = strpos($lines[$i], ': ')) {
                $field = strtolower(substr($lines[$i], 0, $p));
                $value = trim(substr($lines[$i], $p+1));
                if (!empty($value))
                if (!empty($value)) {
                    $a_headers[$field] = $value;
                }
            }
        }
@@ -448,12 +450,11 @@
        $marks   = array();
        foreach ($text as $idx => $line) {
            if (preg_match('/^(>+)/', $line, $m)) {
            if ($q = strspn($line, '>')) {
                // remove quote chars
                $q    = strlen($m[1]);
                $line = preg_replace('/^>+/', '', $line);
                $line = substr($line, $q);
                // remove (optional) space-staffing
                $line = preg_replace('/^ /', '', $line);
                if ($line[0] === ' ') $line = substr($line, 1);
                // The same paragraph (We join current line with the previous one) when:
                // - the same level of quoting
@@ -475,13 +476,12 @@
                }
            }
            else {
                $q = 0;
                if ($line == '-- ') {
                    $last = $idx;
                }
                else {
                    // remove space-stuffing
                    $line = preg_replace('/^ /', '', $line);
                    if ($line[0] === ' ') $line = substr($line, 1);
                    if (isset($text[$last]) && $line && !$q_level
                        && $text[$last] != '-- '
@@ -527,12 +527,13 @@
        foreach ($text as $idx => $line) {
            if ($line != '-- ') {
                if (preg_match('/^(>+)/', $line, $m)) {
                if ($level = strspn($line, '>')) {
                    // remove quote chars
                    $level  = strlen($m[1]);
                    $line   = preg_replace('/^>+/', '', $line);
                    $line = substr($line, $level);
                    // remove (optional) space-staffing and spaces before the line end
                    $line   = preg_replace('/(^ | +$)/', '', $line);
                    $line = rtrim($line, ' ');
                    if ($line[0] === ' ') $line = substr($line, 1);
                    $prefix = str_repeat('>', $level) . ' ';
                    $line   = $prefix . self::wordwrap($line, $length - $level - 2, " \r\n$prefix", false, $charset);
                }
program/lib/Roundcube/rcube_spellchecker.php
@@ -250,7 +250,7 @@
    private function html2text($text)
    {
        $h2t = new rcube_html2text($text, false, true, 0);
        $h2t = new rcube_html2text($text, false, false, 0);
        return $h2t->get_text();
    }
program/lib/Roundcube/rcube_text2html.php
@@ -270,6 +270,10 @@
        if (empty($table)) {
            $table = get_html_translation_table(HTML_SPECIALCHARS);
            unset($table['?']);
            // replace some whitespace characters
            $table["\r"] = '';
            $table["\t"] = '    ';
        }
        // skip signature separator
@@ -277,11 +281,8 @@
            return '--' . $this->config['space'];
        }
        // replace HTML special characters
        // replace HTML special and whitespace characters
        $text = strtr($text, $table);
        // replace some whitespace characters
        $text = str_replace(array("\r", "\t"), array('', '    '), $text);
        $nbsp = $this->config['space'];
program/lib/Roundcube/rcube_washtml.php
@@ -370,7 +370,7 @@
     */
    private function is_link_attribute($tag, $attr)
    {
        return $tag == 'a' && $attr == 'href';
        return ($tag == 'a' || $tag == 'area') && $attr == 'href';
    }
    /**
program/localization/ar_SA/messages.inc
@@ -49,7 +49,6 @@
$messages['savingresponse'] = 'جاري حفظ نص الرد...';
$messages['deleteresponseconfirm'] = 'هل تريد فعلاً حذف نص الرد هذا؟';
$messages['addedsuccessfully'] = 'تمت إضافة المراسل إلى دفتر العناوينبنجاح';
$messages['contactexists'] = 'هناك مراسل له نفس هذا البريد الالكترونيموجود مسبقاً';
$messages['contactnameexists'] = 'هناك مُرسال له نفس الإسم موجود مسبقاً.';
$messages['blockedimages'] = 'لحماية خصوصيتك، تم حجب الصور الغير مضمنة(البعيدة) في هذه الرسالة.';
$messages['encryptedmessage'] = 'هذه الرسالة مشفرة ولا يمكن عرضها. عذراً!';
@@ -79,7 +78,6 @@
$messages['noemailwarning'] = 'الرجاء إدخال عنوان بريد إلكتروني صالح';
$messages['nonamewarning']  = 'الرجاء إدخال اسم';
$messages['nopagesizewarning'] = 'الرجاء إدخال حجم الصفحة';
$messages['nosenderwarning'] = 'رجاء اكتب عنوان البريد الالكترونيللمُرسل';
$messages['norecipientwarning'] = 'الرجاء إدخال اسم مستقبل واحد على الأقل';
$messages['nosubjectwarning']  = 'حقل "الموضوع" فارغ. هل تريد كتابة موضوعللرسالة؟';
$messages['nobodywarning'] = 'إرسال هذه الرسالة دون نص؟';
@@ -135,7 +133,6 @@
$messages['importmessagesuccess'] = 'تم استرداد $nr رسالة بنجاح';
$messages['importmessageerror'] = 'فشل في الاستيراد! الملف الذي تحاول رفعة ليس رسالة او صندوق بريد صالح. ';
$messages['opnotpermitted'] = 'العملية ممنوعة!';
$messages['nofromaddress'] = 'عنوان البريد الالكتروني غير محدد فيالهويّة المنتقاة';
$messages['httpreceivedencrypterror'] = 'حدث خطأ جسيم في التهيئة. رجاءً اتصال بمدير الخادم حالاً. <b>لا يمكن إرسال بريدك.</b>';
$messages['smtpconnerror'] = 'خطأ SMTP ($code): تعذر الاتصال بالخادم';
$messages['smtpautherror'] = 'خطأ SMTP ($code): تعذر التحقق من هويتك';
@@ -143,7 +140,6 @@
$messages['smtptoerror'] = 'خطأ SMTP ($code): تعذرت إضافة المستلم "$to" ($msg)';
$messages['smtprecipientserror'] = 'خطأ SMTP: تعذرت قراءة قائمة المرسل إليهم';
$messages['smtperror'] = 'خطأ SMTP: $msg';
$messages['emailformaterror'] = 'عنوان بريد إلكتروني غير صالح: $email';
$messages['toomanyrecipients'] = 'عدد المرسل إليهم كبير. قلص العدد إلى $max.';
$messages['maxgroupmembersreached'] = 'عدد أعضاء المجموعة أكثر من $max';
$messages['internalerror'] = 'حدث خطأ داخلي. الرجاء المحاولة مرة أخرى.';
program/localization/ast/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Guardando mensaxe de rempuesta...';
$messages['deleteresponseconfirm'] = '¿De xuru quies desaniciar esti testu de rempuesta?';
$messages['addedsuccessfully'] = 'El contautu amestóse correchamente a la llibreta de direiciones';
$messages['contactexists'] = 'Yá hai un contautu con esa direición de corréu-e.';
$messages['contactnameexists'] = 'Yá esiste un contautu col mesmu nome.';
$messages['blockedimages'] = 'Pa protexer la to privacidá, torgáronse les imáxenes esternes nesti mensaxe.';
$messages['encryptedmessage'] = 'Esti ye un mensaxe cifráu y nun soi a amosalu. ¡Sentímoslo!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Por favor, introduz un corréu válidu.';
$messages['nonamewarning']  = 'Por favor, introduz un nome.';
$messages['nopagesizewarning'] = 'Por favor, introduz un tamañu de páxina.';
$messages['nosenderwarning'] = 'Por favor introduz un corréu dende onde unviar mensaxes';
$messages['norecipientwarning'] = 'Por favor, introduz polo menos un destinatariu';
$messages['nosubjectwarning']  = 'El campo "Asuntu" ta vacíu. ¿Quies rellenalu agora?';
$messages['nobodywarning'] = '¿Quies unviar esti mensaxe ensin testu?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = '$nr mensaxes importaos con éxitu';
$messages['importmessageerror'] = '¡Falló la importación! El ficheru xubíu nun ye un ficheru válidu de mensaxe o buzón de corréu';
$messages['opnotpermitted'] = '¡Nun tienes permisu pa facelo!';
$messages['nofromaddress'] = 'El contautu seleicionáu nun tien direición de corréu-e.';
$messages['editorwarning'] = 'Cambear la triba d\'editor pue causar perda del formatu del testu. ¿Deseyes continuar?';
$messages['httpreceivedencrypterror'] = 'Hai un fallu grave de configuración. Contauta col alministrador de secute. <b>Nun pue unviase\'l mensaxe</b>';
$messages['smtpconnerror'] = 'Fallu SMTP ($code): Fallu de conexón col sirvidor';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Fallu SMTP ($code): Fallu al amestar el destinatariu "$to" ($msg)';
$messages['smtprecipientserror'] = 'Fallu SMTP: Nun pue amosase la llista de destinatarios.';
$messages['smtperror'] = 'Fallu SMTP: $msg';
$messages['emailformaterror'] = 'Direición de corréu incorreuta: $email';
$messages['toomanyrecipients'] = 'Hai munchos destinatarios. Amenorga\'l númberu de destinatarios a $max.';
$messages['maxgroupmembersreached'] = 'El númberu de miembros del grupu perpasa\'l máximu de $max.';
$messages['internalerror'] = 'Hebo un fallu internu. Por favor, vuelvi intentalo.';
program/localization/az_AZ/messages.inc
@@ -48,7 +48,6 @@
$messages['savingresponse'] = 'Cavab mətninin saxlanılması...';
$messages['deleteresponseconfirm'] = 'Siz cavab mətnini silmək istəyirsiniz?';
$messages['addedsuccessfully'] = 'Əlaqə ünvan kitabçasına əlavə olundu';
$messages['contactexists'] = 'Ünvan kitabçasında bu e-poçtla əlaqə mövcuddur';
$messages['contactnameexists'] = 'Bu adda kontakt artıq mövcuddur.';
$messages['blockedimages'] = 'Təhlükəsizlik məqsədi ilə şəkillərin yüklənməsi bloklanıb.';
$messages['encryptedmessage'] = 'Məktub şifrələnib və göstərilə bilməz. Server inzibatçısına müraciət edin.';
@@ -78,7 +77,6 @@
$messages['noemailwarning'] = 'Lütfən, düzgün e-poçt ünvanı daxil edin';
$messages['nonamewarning']  = 'Lütfən, ad daxil edin';
$messages['nopagesizewarning'] = 'Lütfən, səhifənin ölçüsünü daxil edin';
$messages['nosenderwarning'] = 'Lütfən, göndərənin elektron poçt ünvanını daxil edin';
$messages['norecipientwarning'] = 'Lütfən, qəbul edənin ünvanını daxil edin';
$messages['nosubjectwarning']  = '"Mövzu" sahəsi boşdur. Mövzu daxil etmək istəyirsiniz?';
$messages['nobodywarning'] = 'Məktub boş göndərilsin?';
@@ -134,7 +132,6 @@
$messages['importmessagesuccess'] = '$nr məktublar uğurla idxal edildi';
$messages['importmessageerror'] = 'İdxal alınmadı! Yüklənilmiş fayl düzgün məktub və ya poçt faylı deyil';
$messages['opnotpermitted'] = 'Əməliyyat qadağandır!';
$messages['nofromaddress'] = 'Seçilmiş kimlikdə e-poçt ünvanları yoxdur';
$messages['httpreceivedencrypterror'] = 'Serverdə qaçıımaz xəta baş verib. Təcili öz inzibatçınız ilə əlaqə qurun. <b>Sizin məktub göndərilməyə bilər.</b>';
$messages['smtpconnerror'] = 'SMTP Error ($code): Serverlə bağlantı alınmadı';
$messages['smtpautherror'] = 'SMTP Error ($code): İdentifikasiya xətası';
@@ -142,7 +139,6 @@
$messages['smtptoerror'] = 'SMTP Error ($code): Qəbul edəni əlavə etmək mümkün deyil - "$to" ($msg)';
$messages['smtprecipientserror'] = 'SMTP Error ($code): Qəbul edənlərin siyahısını emal etmək mümkün deyil';
$messages['smtperror'] = 'SMTP Error ($code): $msg';
$messages['emailformaterror'] = 'Səhv ünvan: $email';
$messages['toomanyrecipients'] = 'Qəbul edənlər həddindən artıq çoxdur. Lütfən, $max qədər azaldın.';
$messages['maxgroupmembersreached'] = 'Qrupun ölçüsü imkan verilən maksimumdan artıqdır - $max';
$messages['internalerror'] = 'Daxili xəta. Lütfən bir daha cəhd edin.';
program/localization/be_BE/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Тэкст адказу захоўваецца...';
$messages['deleteresponseconfirm'] = 'Напраўду выдаліць тэкст адказу?';
$messages['addedsuccessfully'] = 'Кантакт дададзены ў адрасную кнігу.';
$messages['contactexists'] = 'Кантакт з такім самым адрасам эл. пошты ўжо існуе.';
$messages['contactnameexists'] = 'Кантакт з такім самым імем ужо існуе.';
$messages['blockedimages'] = 'Дзеля забеспячэння вашай прыватнасці знешнія відарысы ў гэтым паведамленні заблакіраваныя.';
$messages['encryptedmessage'] = 'Гэта зашыфраванае паведамленне. Яно не можа быць адлюстравана. Выбачайце!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Задайце слушны адрас электроннай пошты.';
$messages['nonamewarning']  = 'Задайце імя.';
$messages['nopagesizewarning'] = 'Задайце памер старонкі.';
$messages['nosenderwarning'] = 'Задайце адрас эл. пошты адпраўніка.';
$messages['norecipientwarning'] = 'Задайце хаця-б аднаго атрымальніка.';
$messages['nosubjectwarning']  = 'Тэма ліста не зададзена. Ці жадаеце задаць яе зараз?';
$messages['nobodywarning'] = 'Адправіць гэта паведамленне без тэксту?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = '$nr паведамленняў імпартавана';
$messages['importmessageerror'] = 'Не ўдалося імпартаваць! Загружаны файл не ёсць слушным паведамленнем альбо файлам паштовай скрынкі';
$messages['opnotpermitted'] = 'Аперацыя не дазволеная!';
$messages['nofromaddress'] = 'У абранай тоеснасці не стае адрасу эл. пошты.';
$messages['editorwarning'] = 'Змена тыпу рэдактара можа прывесці да страты фарматавання. Працягнуць?';
$messages['httpreceivedencrypterror'] = 'Важная памылка ў канфігурацыі. Неадкладна скантактуйцеся з адміністратарам. <b>Паведамленне не можа быць адпраўлена.</b>';
$messages['smtpconnerror'] = 'Памылка SMTP ($code): Не ўдалося злучыцца з серверам.';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Памылка STMP ($code): Не ўдалося задаць атрымальніка "$to" ($msg).';
$messages['smtprecipientserror'] = 'Памылка STMP: Не ўдалося прачытаць спіс атрымальнікаў.';
$messages['smtperror'] = 'Памылка SMTP: $msg';
$messages['emailformaterror'] = 'Няслушны адрас эл. пошты: $email';
$messages['toomanyrecipients'] = 'Замнога атрымальнікаў. Зменшыце лік атрымальнікаў да $max.';
$messages['maxgroupmembersreached'] = 'Лік сяброў групы перавышае максімум — $max.';
$messages['internalerror'] = 'Унутраная памылка. Паспрабуйце яшчэ раз.';
program/localization/bg_BG/messages.inc
@@ -52,7 +52,7 @@
$messages['savingresponse'] = 'Записване текст на отговор...';
$messages['deleteresponseconfirm'] = 'Желаете ли да изтриете текст за отговор?';
$messages['addedsuccessfully'] = 'Контактът е добавен в адресната книга.';
$messages['contactexists'] = 'Вече съществува контакт с този e-mail адрес.';
$messages['contactexists'] = 'Вече съществува контакт с този адрес на ел. поща.';
$messages['contactnameexists'] = 'Вече съществува контакт с това име.';
$messages['blockedimages'] = 'С оглед на Вашата сигурност, изображенията в това писмо са блокирани.';
$messages['encryptedmessage'] = 'Това е кодирано писмо и не може да бъде показано. Съжаляваме!';
@@ -87,17 +87,17 @@
$messages['foldersubscribing'] = 'Абониране за папка...';
$messages['folderunsubscribing'] = 'Отписване от папка...';
$messages['formincomplete'] = 'Не сте попълнили всички полета.';
$messages['noemailwarning'] = 'Моля въведете валиден e-mail адрес.';
$messages['noemailwarning'] = 'Моля въведете валиден адрес на ел. поща.';
$messages['nonamewarning']  = 'Моля въведете име.';
$messages['nopagesizewarning'] = 'Въведете брой редове на страница.';
$messages['nosenderwarning'] = 'Моля въведете валиден e-mail адрес на подателя.';
$messages['nosenderwarning'] = 'Моля въведете валиден адрес на ел. поща на подателя.';
$messages['norecipientwarning'] = 'Моля въведете поне един получател.';
$messages['nosubjectwarning']  = 'Полето "Заглавие" е празно. Желаете ли да въведете заглавие сега?';
$messages['nobodywarning'] = 'Изпрати това писмо без текст?';
$messages['notsentwarning'] = 'Писмото не е изпратено. Желаете ли да бъде унищожено?';
$messages['restoresavedcomposedata'] = 'Намерено е неизпратено писмо, което е било в процес на създаване.\n\nОтносно: $subject\nЗапазено на: $date\n\nЖелаете ли да възстановите писмото?';
$messages['noldapserver'] = 'Изберете LDAP сървър за търсене.';
$messages['nosearchname'] = 'Моля въведете име на контакта или e-mail адрес.';
$messages['nosearchname'] = 'Моля въведете име на контакта или адрес на ел. поща.';
$messages['notuploadedwarning'] = 'Все още не са качени всички прикачени файлове. Моля изчакайте или откажете качването.';
$messages['searchsuccessful'] = '$nr писма намерени.';
$messages['contactsearchsuccessful'] = '$nr контакта намерени.';
@@ -148,7 +148,7 @@
$messages['importmessagesuccess'] = 'Успешно импортирани $nr писма';
$messages['importmessageerror'] = 'Неуспешен импорт! Каченият файл не е валиден файл на писма или пощенска кутия';
$messages['opnotpermitted'] = 'Непозволена операция!';
$messages['nofromaddress'] = 'Липсва e-mail адрес за избраната самоличност.';
$messages['nofromaddress'] = 'Липсва адрес на ел. поща за избраната самоличност.';
$messages['editorwarning'] = 'Превключване на типа на редактора може да доведе до загуба на форматиране на текста. Желаете ли да продължите?';
$messages['httpreceivedencrypterror'] = 'Фатална конфигурационна грешка. Моля свържете се с Вашия администратор. <b>Писмото не може да бъде изпратено.</b>';
$messages['smtpconnerror'] = 'SMTP грешка ($code): Няма връзка със сървъра.';
@@ -157,7 +157,7 @@
$messages['smtptoerror'] = 'SMTP грешка ($code): Не може да бъде изпратено писмо до "$to" ($msg).';
$messages['smtprecipientserror'] = 'SMTP грешка: Не може да бъде обработен списъка с получатели.';
$messages['smtperror'] = 'SMTP грешка: $msg';
$messages['emailformaterror'] = 'Невалиден e-mail адрес: $email';
$messages['emailformaterror'] = 'Невалиден адрес на ел. поща: $email';
$messages['toomanyrecipients'] = 'Прекалено много адреси за изпращане (максимум: $max).';
$messages['maxgroupmembersreached'] = 'Броят на членовете на групата е повече от максималния: $max.';
$messages['internalerror'] = 'Възникна вътрешна грешка. Моля опитайте отново.';
program/localization/bn_BD/messages.inc
@@ -30,7 +30,6 @@
$messages['messagesaved'] = 'চিঠি খসড়া হিসাবে জমা করে রাখা হয়েছে';
$messages['successfullysaved'] = 'ঠিকঠাকমতো জমা হয়ে গিয়েছে';
$messages['addedsuccessfully'] = 'নতুন ঠিকানা ঠিকঠাক মতো ঢোকানো হয়ে গেছে';
$messages['contactexists'] = 'একই ই-মেইল এ আরেকটা নাম ঠিকানা তালিকায় আছে';
$messages['blockedimages'] = 'আপনার গোপনীয়তা রক্ষার জন্য আমরা ছবি গুলো সরিয়ে রেখেছি';
$messages['encryptedmessage'] = 'এটা একটি গোপন (encrypted) চিঠি। এটা আপনাকে দেখানো যাবে না। দু্ঃখিত।';
$messages['nocontactsfound'] = 'কোনো ঠিকানা পাওয়া গেলনা। দু্ঃখিত।';
@@ -49,7 +48,6 @@
$messages['noemailwarning'] = 'একটি সঠিক ই-মেইল লিখুন';
$messages['nonamewarning']  = 'দয়া করে নামটি লিখুন';
$messages['nopagesizewarning'] = 'দয়া করে পৃষ্ঠার সাইজটি লিখুন';
$messages['nosenderwarning'] = 'দয়া করে ফিরতি ই-মেইলটা লিখুন';
$messages['norecipientwarning'] = 'দয়া করে একজন প্রাপক এর ই-মেইলটা লিখুন';
$messages['nosubjectwarning']  = 'বিষয় হিসাবে কিছু লেখা হয়নি, আপনি কি কিছু লিখবেন এখন বিষয় হিসাবে?';
$messages['nobodywarning'] = 'কোনো কিছু না লিখেই এই চিঠি পাঠিয়ে দেবেন?';
@@ -79,4 +77,3 @@
$messages['importwait'] = 'আমদানি করা হচ্ছে। একটু অপেক্ষা করুন...';
$messages['importconfirm'] = '<b>ঠিকমতো $inserted ঠিকানা আমদানি করা গেছে, $skipped ঠিকানা আগের থেকেই ছিলো বলে তাদের টা যা ছিলো তাই রাখা হয়েছে</b>:<p><em>$names</em></p>';
$messages['opnotpermitted'] = 'এই কাজটা করার অনুমতি নাই আপনার';
$messages['nofromaddress'] = 'বেছে নেওয়া যে পরিচিতিটা, তাতে ই-মেইল নেই';
program/localization/br/messages.inc
@@ -37,7 +37,6 @@
$messages['messagesaved'] = 'Kemennad gwaredet dindan Brouilhedoù';
$messages['successfullysaved'] = 'Gwarediñ graet';
$messages['addedsuccessfully'] = 'Darempred ouzhpennet er c\'harned chomlec\'hioù';
$messages['contactexists'] = 'Bout a ra un darempred gant memes postel elektronek';
$messages['blockedimages'] = 'Evit gwarantiñ hoc\'h buhez prevez, stanket eo bet skeudennoù pell er c\'hemennad-se.';
$messages['encryptedmessage'] = 'Rineget eo ar c\'hemennad, ha ne c\'hall ket bezañ diskouez. Ma Digarezit !';
$messages['nocontactsfound'] = 'N\'eo ket bet kavet darempred ebet';
program/localization/bs_BA/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Snimam teksta odgovora...';
$messages['deleteresponseconfirm'] = 'Da li zaista želite obrisati tekst ovog odgovora?';
$messages['addedsuccessfully'] = 'Kontakt uspješno dodan u adresar.';
$messages['contactexists'] = 'Kontakt sa ovom email adresom već postoji u adresaru.';
$messages['contactnameexists'] = 'Kontakt s tim imenom već postoji.';
$messages['blockedimages'] = 'Zbog zaštite privatnosti, slike sa drugih servera su blokirane u ovoj poruci.';
$messages['encryptedmessage'] = 'Ova poruka je šifrirana i nije je moguće prikazati. Žao nam je!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Molimo vas da upišete ispravnu email adresu.';
$messages['nonamewarning']  = 'Molimo vas da upišete ime.';
$messages['nopagesizewarning'] = 'Molimo vas da upišete veličinu stranice.';
$messages['nosenderwarning'] = 'Molimo vas da upišete email adresu pošiljaoca';
$messages['norecipientwarning'] = 'Molimo vas da upišete barem jednog primaoca.';
$messages['nosubjectwarning']  = 'Polje \'Naslov\' je prazno. Želite li unijeti naslov?';
$messages['nobodywarning'] = 'Želite li poslati poruku bez teksta?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = 'Uspješno uvezeno $nr poruka';
$messages['importmessageerror'] = 'Uvoz nije uspio! Dodana datoteke nije ispravna datoteka sa porukama';
$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
$messages['nofromaddress'] = 'U odabrani identitet nije upisana email adresa.';
$messages['editorwarning'] = 'Promjenom uređivača biste mogli izgubiti formatiranje teksta. Želite li nastaviti?';
$messages['httpreceivedencrypterror'] = 'Dogodila se fatalna konfiguracijska greška. Odmah kontaktirajte administratora. <b>Vaša poruka se ne poslati.</b>';
$messages['smtpconnerror'] = 'SMTP greška ($code): Veza sa serverom nije uspostavljena.';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'SMTP greška ($code): Nije uspjelo dodavanje primaoca "$to" ($msg)';
$messages['smtprecipientserror'] = 'SMTP greška: Nije moguće pročitati listu primaoca.';
$messages['smtperror'] = 'SMTP greška: $msg';
$messages['emailformaterror'] = 'Netačna email adresa: $email';
$messages['toomanyrecipients'] = 'Previše primaoca. Smanjite broj primaoca na $max.';
$messages['maxgroupmembersreached'] = 'Broj članova grupe prelazi maksimum od $max.';
$messages['internalerror'] = 'Dogodila se interna greška. Molimo vas da pokušate ponovo.';
program/localization/ca_ES/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'S\'està desant el text de resposta...';
$messages['deleteresponseconfirm'] = 'Esteu segurs de voler suprimir aquest text de resposta?';
$messages['addedsuccessfully'] = 'Contacte afegit correctament a la llibreta d\'adreces.';
$messages['contactexists'] = 'Ja hi ha un contacte amb aquesta adreça de correu.';
$messages['contactnameexists'] = 'Ja existeix un contacte amb el mateix nom.';
$messages['blockedimages'] = 'Per protegir la vostra privadesa, les imatges remotes han estat bloquejades en aquest missatge.';
$messages['encryptedmessage'] = 'Aquest és un missatge xifrat i no pot ser mostrat. Ho sento!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Si us plau, introduïu una adreça de correu electrònic vàlida.';
$messages['nonamewarning']  = 'Si us plau, introduïu un nom.';
$messages['nopagesizewarning'] = 'Si us plau, introduïu una mida de pàgina.';
$messages['nosenderwarning'] = 'Si us plau, entreu l\'adreça de correu del remitent.';
$messages['norecipientwarning'] = 'Si us plau, introduïu com a mínim un destinatari.';
$messages['nosubjectwarning']  = 'El camp "Assumpte" és buit. Voleu introduir-ne un ara?';
$messages['nobodywarning'] = 'Voleu enviar aquest missatge sense text?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = '<b>S\'han importat $nr missatges correctament</b>';
$messages['importmessageerror'] = 'La importació ha fallat. El fitxer que heu pujat no és un fitxer de missatges vàlid o no és un fitxer de bústia.';
$messages['opnotpermitted'] = 'Operació no permesa!';
$messages['nofromaddress'] = 'Falta l\'adreça de correu a la identitat seleccionada.';
$messages['editorwarning'] = 'Si canvieu el tipus d\'editor pot ser que perdreu tot el format del text. Voleu continuar?';
$messages['httpreceivedencrypterror'] = 'Hi ha hagut un error fatal de configuració. Contacteu amb el vostre administrador immediatament. <b>El vostre missatge no pot ser enviat.</b>';
$messages['smtpconnerror'] = 'Error SMTP ($code): La connexió al servidor ha fallat.';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Error SMTP ($code): No s\'ha pogut posar "$to" com a destinatari ($msg).';
$messages['smtprecipientserror'] = 'Error SMTP: No s\'ha pogut analitzar la llista de destinataris.';
$messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'Adreça de correu no vàlida: $email';
$messages['toomanyrecipients'] = 'Hi ha masses destinataris. Reduïu el nombre de destinataris a $max.';
$messages['maxgroupmembersreached'] = 'El nombre de membres del grup excedeix el màxim de $max.';
$messages['internalerror'] = 'S\'ha produït un error intern. Si us plau torneu-ho a provar.';
program/localization/cy_GB/labels.inc
@@ -53,7 +53,7 @@
$labels['move']     = 'Symud';
$labels['moveto']   = 'Symud i...';
$labels['copyto']   = 'Copio i...';
$labels['download'] = 'Llwytho lawr';
$labels['download'] = 'Lawrlwytho';
$labels['open']     = 'Agor';
$labels['showattachment'] = 'Dangos';
$labels['showanyway'] = 'Dangos beth bynnag';
@@ -202,7 +202,7 @@
$labels['searchinterval1M'] = 'ifancach na mis';
$labels['searchinterval1Y'] = 'ifancach na blwyddyn';
$labels['openinextwin'] = 'Agor mewn ffenest newydd';
$labels['emlsave'] = 'Llwytho lawr (.eml)';
$labels['emlsave'] = 'Lawrlwytho (.eml)';
$labels['changeformattext'] = 'Dangos mewn fformat testun plaen';
$labels['changeformathtml'] = 'Dangos mewn fformat HTML';
$labels['editasnew']      = 'Golygu fel neges newydd';
@@ -248,7 +248,7 @@
$labels['responsetext'] = 'Testun Ymateb';
$labels['attach'] = 'Atodi';
$labels['attachments'] = 'Atodiadau';
$labels['upload'] = 'Llwytho fyny';
$labels['upload'] = 'Lanlwytho';
$labels['uploadprogress'] = '$percent ($current o $total)';
$labels['close']  = 'Cau';
$labels['messageoptions']  = 'Dewisiadau neges...';
@@ -343,7 +343,7 @@
$labels['rename'] = 'Ail-enwi';
$labels['addphoto'] = 'Ychwanegu';
$labels['replacephoto'] = 'Amnewid';
$labels['uploadphoto'] = 'Llwytho fyny llun';
$labels['uploadphoto'] = 'Lanlwytho llun';
$labels['newcontact']     = 'Creu cyswllt newydd';
$labels['deletecontact']  = 'Dileu y cysylltiadau a ddewiswyd';
$labels['composeto']      = 'Ysgrifennu neges at';
@@ -377,7 +377,7 @@
$labels['importgroups'] = 'Mewnforio penodiadau grŵp';
$labels['importgroupsall'] = 'Holl (creu grwpiau os oes angen)';
$labels['importgroupsexisting'] = 'Dim ond ar gyfer grwpiau sy\'n bodoli';
$labels['importdesc'] = 'Fe allwch chi lwytho fyny cysylltiadau o lyfr cyfeiriadau presennol.<br/>Ar hyn o bryd, rydym yn cefnogi mewnforio cyfeiriadau o\'r fformatau <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> neu CSV.';
$labels['importdesc'] = 'Fe allwch chi lanlwytho cysylltiadau o lyfr cyfeiriadau presennol.<br/>Ar hyn o bryd, rydym yn cefnogi mewnforio cyfeiriadau o\'r fformatau <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> neu CSV.';
$labels['done'] = 'Wedi gorffen';
$labels['settingsfor'] = 'Gosodiadau ar gyfer';
$labels['about'] = 'Amdan';
@@ -579,7 +579,7 @@
$labels['arialabelmarkmessagesas'] = 'Nodi y negeseuon dewiswyd fel...';
$labels['arialabelcomposeoptions'] = 'Dewisiadau ysgrifennu';
$labels['arialabelresponsesmenu'] = 'Bwydlen ymatebion parod';
$labels['arialabelattachmentuploadform'] = 'Ffurflen uwchlwytho atodiad';
$labels['arialabelattachmentuploadform'] = 'Ffurflen lanlwytho atodiad';
$labels['arialabelattachmentpreview'] = 'Rhagolwg atodiad';
$labels['ariasummarycomposecontacts'] = 'Rhestr o gysylltiadau a grwpiau i ddewis fel derbynwyr';
$labels['arialabelcontactexportoptions'] = 'Dewisiadau allforio cysylltiadau';
program/localization/da_DK/messages.inc
@@ -52,7 +52,6 @@
$messages['savingresponse'] = 'Gemmer svartekst...';
$messages['deleteresponseconfirm'] = 'Er du sikker på, at du ønsker at slette svarteksten?';
$messages['addedsuccessfully'] = 'Kontakten blev tilføjet adressebogen.';
$messages['contactexists'] = 'Der er allerede en kontakt med denne e-mailadresse.';
$messages['contactnameexists'] = 'En kontakt med samme navn eksisterer allerede.';
$messages['blockedimages'] = 'For at beskytte dit privatliv er billeder fra eksterne internetservere blokeret.';
$messages['encryptedmessage'] = 'Beskeden er krypteret og kan ikke vises. Beklager!';
@@ -83,7 +82,6 @@
$messages['noemailwarning'] = 'Indtast venligst en gyldig e-mailadresse.';
$messages['nonamewarning']  = 'Angiv venligst et navn.';
$messages['nopagesizewarning'] = 'Angiv sidestørrelsen.';
$messages['nosenderwarning'] = 'Indtast venligst afsenders e-mailadresse.';
$messages['norecipientwarning'] = 'Indtast mindst én modtager.';
$messages['nosubjectwarning']  = '\'Emne\'-feltet er tomt. Kunne du tænke dig at skrive et nu?';
$messages['nobodywarning'] = 'Send denne besked uden tekst?';
@@ -140,7 +138,6 @@
$messages['importmessagesuccess'] = 'Importerede $nr beskeder';
$messages['importmessageerror'] = 'Import mislykkedes! Den uploadede fil er ikke en gyldig besked eller mailbox-fil';
$messages['opnotpermitted'] = 'Handlingen er ikke tilladt!';
$messages['nofromaddress'] = 'Der mangler en e-mailadresse i den valgte identitet.';
$messages['editorwarning'] = 'Al formatering af teksten kan forsvinde, hvis der skiftes editor Vil du fortsætte?';
$messages['httpreceivedencrypterror'] = 'Der er opstået en fatal konfigurationsfejl. Kontakt venligst din system-administrator med det samme. <b>Din besked kunne ikke afsendes.</b>';
$messages['smtpconnerror'] = 'SMTP fejl ($code): Forbindelsen til serveren afbrudt';
@@ -149,7 +146,6 @@
$messages['smtptoerror'] = 'SMTP fejl ($code): Kunne ikke tilføje modtageren "$to" ($msg)';
$messages['smtprecipientserror'] = 'SMTP fejl: Kan ikke fortolke listen af modtagere.';
$messages['smtperror'] = 'SMTP fejl: $msg';
$messages['emailformaterror'] = 'Ugyldig e-mailadresse: $email';
$messages['toomanyrecipients'] = 'For mange modtagere. Reducer antallet af modtagere til $max.';
$messages['maxgroupmembersreached'] = 'Antallet af gruppemedlemmer overstiger maksimum på $max.';
$messages['internalerror'] = 'En intern fejl opstod. Prøv venligst igen.';
program/localization/de_CH/labels.inc
@@ -195,6 +195,12 @@
$labels['currentfolder'] = 'Aktueller Ordner';
$labels['subfolders'] = 'Aktueller und Unterordner';
$labels['allfolders'] = 'Alle Ordner';
$labels['searchinterval-1W'] = 'älter als eine Woche';
$labels['searchinterval-1M'] = 'älter als ein Monat';
$labels['searchinterval-1Y'] = 'älter als ein Jahr';
$labels['searchinterval1W'] = 'jünger als eine Woche';
$labels['searchinterval1M'] = 'jünger als ein Monat';
$labels['searchinterval1Y'] = 'jünger als ein Jahr';
$labels['openinextwin'] = 'In neuem Fenster öffnen';
$labels['emlsave'] = 'Herunterladen (.eml)';
$labels['changeformattext'] = 'Als reiner Text anzeigen';
program/localization/el_GR/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Αποθήκευση του κειμένου απάντησης...';
$messages['deleteresponseconfirm'] = 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το κείμενο απάντησης;';
$messages['addedsuccessfully'] = 'Η επαφή προστέθηκε επιτυχώς στο βιβλίο επαφών.';
$messages['contactexists'] = 'Υπάρχει ήδη επαφή με αυτή τη διεύθυνση e-mail.';
$messages['contactnameexists'] = 'Υπάρχει ήδη μια επαφή με το ίδιο όνομα.';
$messages['blockedimages'] = 'Για να προστατευτεί το απόρρητο σας, οι απομακρυσμένες εικόνες έχουν απενεργοποιηθεί σε αυτό το μήνυμα.';
$messages['encryptedmessage'] = 'Αυτό το μήνυμα είναι κρυπτογραφημένο και δε μπορεί να προβληθεί. Συγγνώμη!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Παρακαλώ εισάγετε έγκυρη διεύθυνση email.';
$messages['nonamewarning']  = 'Παρακαλώ εισάγετε όνομα.';
$messages['nopagesizewarning'] = 'Παρακαλώ εισάγετε μέγεθος σελίδας.';
$messages['nosenderwarning'] = 'Παρακαλώ εισάγετε την e-mail διεύθυνση αποστολέα.';
$messages['norecipientwarning'] = 'Παρακαλώ εισάγετε τουλάχιστο έναν παραλήπτη.';
$messages['nosubjectwarning']  = 'Το πεδίο "Θέμα" είναι άδειο. Θέλετε να εισάγετε ένα τώρα;';
$messages['nobodywarning'] = 'Αποστολή μηνύματος χωρίς κείμενο;';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = 'Επιτυχής εισαγωγή $nr μηνυμάτων';
$messages['importmessageerror'] = 'Η εισαγωγή απέτυχε! Το ανεβασμένο αρχείο δεν είναι έγκυρο αρχείο μηνύματος ή φακέλου μηνυμάτων.';
$messages['opnotpermitted'] = 'Η λειτουργία δεν επιτρέπεται!';
$messages['nofromaddress'] = 'Άδεια διεύθυνση e-mail στην επιλεγμένη ταυτότητα.';
$messages['editorwarning'] = 'Η αλλαγή του τύπου επεξεργασίας μπορεί να προκαλέσει απώλεια της μορφοποίησης κειμένου. Είστε βέβαιοι πως θέλετε να συνεχίσετε;';
$messages['httpreceivedencrypterror'] = 'Ανεπανόρθωτο σφάλμα. Επικοινωνήστε με το διαχειριστή του εξυπηρετητή. <b>Το μήνυμά σας δεν στάλθηκε.</b>';
$messages['smtpconnerror'] = 'Σφάλμα SMTP ($code): Απέτυχε η σύνδεση με τον εξυπηρετητή.';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Σφάλμα SMTP ($code): Αποτυχία προσθήκης παραλήπτη "$to" ($msg).';
$messages['smtprecipientserror'] = 'Σφάλμα SMTP: Αδύνατο να προσπελαστεί η λίστα παραληπτών.';
$messages['smtperror'] = 'Σφάλμα SMTP: $msg';
$messages['emailformaterror'] = 'Λανθασμένη διεύθνση e-mail: $email';
$messages['toomanyrecipients'] = 'Υπερβολικά μεγάλο πλήθος αποδεκτών. Μειώστε τον αριθμό των αποδεκτών σε $max.';
$messages['maxgroupmembersreached'] = 'Ο αριθμός των μελών της ομάδας υπερβαίνει τον μέγιστο των $max μελών.';
$messages['internalerror'] = 'Προέκυψε εσωτερικό σφάλμα. Παρακαλώ δοκιμάστε ξανά.';
program/localization/en_CA/messages.inc
@@ -49,7 +49,6 @@
$messages['savingresponse'] = 'Saving response text...';
$messages['deleteresponseconfirm'] = 'Do you really want to delete this response text?';
$messages['addedsuccessfully'] = 'Contact added successfully to address book.';
$messages['contactexists'] = 'A contact with the same e-mail address already exists.';
$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'To protect your privacy, remote images are blocked in this message.';
$messages['encryptedmessage'] = 'This is an encrypted message and can not be displayed. Sorry!';
@@ -79,7 +78,6 @@
$messages['noemailwarning'] = 'Please enter a valid email address.';
$messages['nonamewarning']  = 'Please enter a name.';
$messages['nopagesizewarning'] = 'Please enter a page size.';
$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Please enter at least one recipient.';
$messages['nosubjectwarning']  = 'The "Subject" field is empty. Would you like to enter one now?';
$messages['nobodywarning'] = 'Send this message without text?';
@@ -136,7 +134,6 @@
$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
@@ -144,7 +141,6 @@
$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Invalid e-mail address: $email';
$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
$messages['internalerror'] = 'An internal error occurred. Please try again.';
program/localization/en_GB/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Saving response text...';
$messages['deleteresponseconfirm'] = 'Do you really want to delete this response text?';
$messages['addedsuccessfully'] = 'Contact successfully added to address book.';
$messages['contactexists'] = 'A contact with this e-mail address already exists.';
$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'To protect your privacy, remote images are blocked in this message.';
$messages['encryptedmessage'] = 'This is an encrypted message and can not be displayed. Sorry!';
@@ -86,7 +85,6 @@
$messages['noemailwarning'] = 'Please enter a valid email address.';
$messages['nonamewarning']  = 'Please enter a name.';
$messages['nopagesizewarning'] = 'Please enter a page size.';
$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Please enter at least one recipient.';
$messages['nosubjectwarning']  = 'The "Subject" field is empty. Would you like to enter one now?';
$messages['nobodywarning'] = 'Send this message without any text?';
@@ -143,7 +141,6 @@
$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching editor type may cause text formatting to be lost. Do you wish to continue?';
$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
@@ -152,7 +149,6 @@
$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Incorrect e-mail address: $email';
$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
$messages['internalerror'] = 'An internal error occurred. Please try again.';
program/localization/en_US/messages.inc
@@ -176,6 +176,7 @@
$messages['savedsearchcreateerror'] = 'Could not create saved search.';
$messages['messagedeleted'] = 'Message(s) deleted successfully.';
$messages['messagemoved'] = 'Message(s) moved successfully.';
$messages['messagemovedtotrash'] = 'Message(s) moved to Trash successfully.';
$messages['messagecopied'] = 'Message(s) copied successfully.';
$messages['messagemarked'] = 'Message(s) marked successfully.';
$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
program/localization/eo/messages.inc
@@ -37,7 +37,6 @@
$messages['messagesaved'] = 'Mesaĝo savita en Malnetujo';
$messages['successfullysaved'] = 'Sukcese savis';
$messages['addedsuccessfully'] = 'Sukcese aldonis kontakton al adresaro';
$messages['contactexists'] = 'Kontakto kun ĉi tiu adreso jam ekzistas';
$messages['blockedimages'] = 'Por protekti vian privatecon, foraj bildoj estas blokitaj en ĉi tiu mesaĝo.';
$messages['encryptedmessage'] = 'Ĉi tiu mesaĝo estas ĉifrata kaj ne estas montrebla. Pardonu!';
$messages['nocontactsfound'] = 'Trovis neniun kontakton';
program/localization/es_419/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Guardando texto de respuesta...';
$messages['deleteresponseconfirm'] = '¿Estás seguro que quieres eliminar este texto de respuesta?';
$messages['addedsuccessfully'] = 'Contacto agregado exitosamente a la libreta de direcciones.';
$messages['contactexists'] = 'Un contacto con la misma dirección de correo electrónico ya existe.';
$messages['contactnameexists'] = 'Un contacto con el mismo nombre ya existe.';
$messages['blockedimages'] = 'Para proteger su privacidad, las imágenes remotas están bloqueadas en este mensaje.';
$messages['encryptedmessage'] = 'Este es un mensaje encriptado y no se puede mostrar. ¡Lo lamento!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Por favor ingresa una dirección de correo electrónico válida.';
$messages['nonamewarning']  = 'Por favor ingresa un nombre.';
$messages['nopagesizewarning'] = 'Por favor ingresa un tamaño de página.';
$messages['nosenderwarning'] = 'Por favor ingresa una dirección remitente de correo electrónico.';
$messages['norecipientwarning'] = 'Por favor ingresa al menos un destinatario.';
$messages['nosubjectwarning']  = 'El campo "Asunto" está vacio. ¿Deseas ingresar uno ahora?';
$messages['nobodywarning'] = '¿Enviar este mensaje sin texto?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = 'Importados $nr mensajes exitosamente.';
$messages['importmessageerror'] = '¡Ha fallado la importación! El archivo subido no tiene un formato válido.';
$messages['opnotpermitted'] = '¡Operación no permitida!';
$messages['nofromaddress'] = 'No se encuentra la dirección de correo electrónico en la entidad seleccionada.';
$messages['editorwarning'] = 'Cambiar el tipo de editor puede causar que el formato de texto se pierda. ¿Desea continuar?';
$messages['httpreceivedencrypterror'] = 'Ha ocurrido un error fatal de configuración. Contacte a su administrador de inmediato. <b>Su mensaje no puede ser enviado.</b>';
$messages['smtpconnerror'] = 'Error SMTP ($code): Ha fallado la conexión con el servidor.';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Error SMTP ($code): Fallo al agregar destinatario "$to" ($msg).';
$messages['smtprecipientserror'] = 'Error SMTP: No es posible obtener la lista de destinatarios.';
$messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'Dirección de correo electrónico no válida: $email';
$messages['toomanyrecipients'] = 'Demasiados destinatarios. Reduzca el número de destinatarios a $max.';
$messages['maxgroupmembersreached'] = 'El número de miembros del grupo excede el máximo de $max.';
$messages['internalerror'] = 'Ha ocurrido un error interno. Por favor intenta de nuevo.';
program/localization/es_AR/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Guardando texto de respuesta...';
$messages['deleteresponseconfirm'] = 'Realmente deseas eliminar este texto de respuesta?';
$messages['addedsuccessfully'] = 'Contacto añadido correctamente a la libreta de direcciones';
$messages['contactexists'] = 'Ya existe un contacto con esta dirección de correo';
$messages['contactnameexists'] = 'Ya existe un contacto con el mismo nombre.';
$messages['blockedimages'] = 'Para proteger su privacidad, las imágenes externas han sido bloqueadas en este mensaje';
$messages['encryptedmessage'] = 'Este es un mensaje cifrado y no puede ser mostrado. ¡Lo siento!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Por favor, introduzca un e-mail válido';
$messages['nonamewarning']  = 'Por favor, introduzca su nombre';
$messages['nopagesizewarning'] = 'Por favor, introduzca un tamaño de página';
$messages['nosenderwarning'] = 'Por favor, introduzca el e-mail del emisor';
$messages['norecipientwarning'] = 'Por favor, introduzca al menos un destinatario';
$messages['nosubjectwarning']  = 'El campo "Asunto" esta vacío. ¿Desea completarlo en este momento?';
$messages['nobodywarning'] = '¿Quiere enviar este mensaje sin texto?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = '$nr mensajes importados exitosamente';
$messages['importmessageerror'] = 'Importación fallida! El archivo subido no es un mensaje o archivo mailbox válido';
$messages['opnotpermitted'] = 'Operación no permitida!';
$messages['nofromaddress'] = 'El contacto seleccionado no tiene dirección de e-mail';
$messages['editorwarning'] = 'Cambiar el tipo de editor puede causar la pérdida del formato. Deseas continuar?';
$messages['httpreceivedencrypterror'] = 'Ha ocurrido un error fatal de configuración. Contacte inmediatamente a su administrador. <b>Su mensaje no ha sido enviado.</b>';
$messages['smtpconnerror'] = 'Error SMTP ($code): Conexión al servidor falló';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Error SMTP ($code): No se puedo agregar el destinatario "$to" ($msg)';
$messages['smtprecipientserror'] = 'Error SMTP: No se pudo leer la lista de destinatarios';
$messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'La dirección $email no es válida';
$messages['toomanyrecipients'] = 'Demasiados destinatarios. Reduzca la cantidad a un máximo de $max.';
$messages['maxgroupmembersreached'] = 'El número de miembros del grupo excede el máximo de $max';
$messages['internalerror'] = 'Ocurrió un error interno. Por favor, intenta nuevamente.';
program/localization/et_EE/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Salvestan vastuse teksti...';
$messages['deleteresponseconfirm'] = 'Soovid valitud vastuse kustutada?';
$messages['addedsuccessfully'] = 'Kontakt lisati edukalt aadressiraamatusse';
$messages['contactexists'] = 'Sellise e-posti aadressiga kontakt on juba olemas';
$messages['contactnameexists'] = 'Sama nimega kontakt on juba olemas.';
$messages['blockedimages'] = 'Sinu privaatsuse kaitsmiseks on selles kirjas välised pildid blokeeritud.';
$messages['encryptedmessage'] = 'See on krüpteeritud kiri ja kahjuks pole seda võimalik näidata. Andestust!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Palun sisesta toimiv e-posti aadress';
$messages['nonamewarning']  = 'Palun sisesta nimi';
$messages['nopagesizewarning'] = 'Palun sisesta lehekülje suurus';
$messages['nosenderwarning'] = 'Palun sisesta saatja e-posti aadress';
$messages['norecipientwarning'] = 'Palun sisesta vähemalt üks adressaat';
$messages['nosubjectwarning']  = 'Väli „Pealkiri“ on tühi. Soovid selle ära täita?';
$messages['nobodywarning'] = 'Saadan selle kirja ilma tekstita?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = '$nr kirja edukalt imporditud';
$messages['importmessageerror'] = 'Import nurjus! Laaditud fail ei ole kirja ega postkasti fail';
$messages['opnotpermitted'] = 'Tegevus pole lubatud!';
$messages['nofromaddress'] = 'Valitud identiteedil puudub e-posti aadress';
$messages['editorwarning'] = 'Klaarteksti redaktorile lülitamine kaotab kogu teksti vorminduse. Soovid jätkata?';
$messages['httpreceivedencrypterror'] = 'Viga seadistustes. Võta kohe oma süsteemiadministraatoriga ühendust. <b>Sinu kirja polnud võimalik ära saata.</b>';
$messages['smtpconnerror'] = 'SMTP tõrge ($code): serveriga ühendumine nurjus';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'SMTP tõrge ($code): "$to" saajaks määramine nurjus ($msg)';
$messages['smtprecipientserror'] = 'SMTP tõrge: saajate nimekirja parsimine nurjus';
$messages['smtperror'] = 'SMTP tõrge: $msg';
$messages['emailformaterror'] = 'Lubamatu e-posti aadress: $email';
$messages['toomanyrecipients'] = 'Liiga palju adressaate. Vähenda kirja saajate hulka $max-ni.';
$messages['maxgroupmembersreached'] = 'Grupi liikmete arv ületab suurima lubatud $max';
$messages['internalerror'] = 'Ilmnes sisemine tõrge. Palun proovi uuesti.';
program/localization/eu_ES/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Erantzun-testua gordetzen...';
$messages['deleteresponseconfirm'] = 'Seguru zaude erantzun-testu hau  ezabatu nahi duzula?';
$messages['addedsuccessfully'] = 'Kontaktua behar bezala gehitu da helbide-liburura.';
$messages['contactexists'] = 'Dagoeneko e-posta helbide berdina duen kontaktu bat dago.';
$messages['contactnameexists'] = 'Lehendik badago izen hori duen kontaktua.';
$messages['blockedimages'] = 'Zure pribazitatea mantentzeko urruneko irudiak blokeatu egin dira.';
$messages['encryptedmessage'] = 'Hau enkriptaturiko mezu bat da eta ezin da bistarazi. Barkatu!';
@@ -86,7 +85,6 @@
$messages['noemailwarning'] = 'Mesedez idatzi baliozko eposta helbide bat';
$messages['nonamewarning']  = 'Mesedez izen bat idatzi';
$messages['nopagesizewarning'] = 'Mesedez paper tamaina idatzi';
$messages['nosenderwarning'] = 'Sartu bidaltzailearen helbide elektronikoa, mesedez.';
$messages['norecipientwarning'] = 'Mesedez behintzat hartzaile bat idatzi';
$messages['nosubjectwarning']  = '"Gaia" eremua hutsik dago. Bat idatzi nahi al duzu?';
$messages['nobodywarning'] = 'Testu gabeko mezu hau bidali?';
@@ -143,7 +141,6 @@
$messages['importmessagesuccess'] = '$nr mezu ongi inportatu dira.';
$messages['importmessageerror'] = 'Inportazio akatsa! Kargatutako fitxategia ez da baliozko mezua edo postontzi-fitxategia';
$messages['opnotpermitted'] = 'Ekintza ez baimendua!';
$messages['nofromaddress'] = 'E-posta helbidea falta da hautatutako identitatean.';
$messages['editorwarning'] = 'Editore mota aldatzeak ekar dezake testuaren formatua galtzea. Jarraitu nahi duzu?';
$messages['httpreceivedencrypterror'] = 'Ezarpen akats larria gertatu da. Jarri harremanetan zure administratzailearekin ahalik eta lasterren.  <b>Zure mezua ezin da bidali.</b>';
$messages['smtpconnerror'] = 'SMTP errorea ($code): Zerbitzariarekiko konexioak huts egin du.';
@@ -152,7 +149,6 @@
$messages['smtptoerror'] = 'SMTP errorea ($code):  "$to" ($msg) hartzailea  gehitzen huts egin du.';
$messages['smtprecipientserror'] = 'SMTP errorea: Ezin da hartzaileen zerrenda analizatu.';
$messages['smtperror'] = 'SMTP errorea: $msg';
$messages['emailformaterror'] = 'Helbide elektronikoa ez da baliozkoa: $email';
$messages['toomanyrecipients'] = 'Hartzaile gehiegi. Txikitu hartzaile kopura hona $max.';
$messages['maxgroupmembersreached'] = 'Taldeko partaideen kopurua $max -ko maximoa gainditzen du:';
$messages['internalerror'] = 'Barne akatsa. Saiatu berriz, mesedez.';
program/localization/fa_AF/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'ذخیره کردن متن پاسخ ...';
$messages['deleteresponseconfirm'] = 'آیا واقعاً می‌خواهید این متن پاسخ را حذف کنید؟';
$messages['addedsuccessfully'] = 'آدرس بصورت مکمل در کتاب ادرس علاوه شد';
$messages['contactexists'] = 'يک آدرس همرا اين ايميل ادرس قبلاً وجود دارد';
$messages['contactnameexists'] = 'یک محتوا با نام مشابه وجود دارد.';
$messages['blockedimages'] = 'برای حفظ استقلال پيغام شما، تصاویر اجنبی این پیام بلاک شده اند';
$messages['encryptedmessage'] = 'اين يک پيغام مخفي است و اشکار شده نميتواند   معذرت ميخواهيم';
@@ -79,7 +78,6 @@
$messages['noemailwarning'] = 'لطفاً يک ايميل ادرس موجود را داخل کنيد';
$messages['nonamewarning']  = 'لطفاً يک نام وارد کنيد';
$messages['nopagesizewarning'] = 'لطفاً اندازه يک صفحه را داخل کنيد';
$messages['nosenderwarning'] = 'لطفاً ایمیل آدرس ارسال کننده را داخل کنید';
$messages['norecipientwarning'] = 'لطفاً کم از کم يک آدرس گيرينده را نوشته / داخل کنيد';
$messages['nosubjectwarning']  = 'بخش مضمون خالي است  آیا میخواهید که حالا یکی آنها را درج نمایید؟.';
$messages['nobodywarning'] = 'اين پيغام را بدون متن بفرستیم؟';
@@ -118,7 +116,6 @@
$messages['importwait'] = 'در حال وارد کردن لطفا صبر کنید.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts, $skipped existing entries skipped</b>:<p><em>$names</em></p>';
$messages['opnotpermitted'] = 'اجازه این عملکرد را ندارید';
$messages['nofromaddress'] = 'بخش ایمیل آدرس در شناخت نامه انتخاب شده مفقود است.';
$messages['smtperror'] = 'خطای SMTP: $msg';
$messages['contactrestored'] = 'دفتر نشانی(ها) با موفقیت بازیابی شد.';
$messages['groupdeleted'] = 'گروه با موفقیت حذف شد.';
program/localization/fa_IR/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'ذخیره متن پاسخ...';
$messages['deleteresponseconfirm'] = 'آیا واقعا می‌خواهید این متن پاسخ را حذف نمایید؟';
$messages['addedsuccessfully'] = 'مخاطب با موفقیت به دفتر نشانی‌ها اضافه شد.';
$messages['contactexists'] = 'هم اکنون یک مخاطب با ایمیل یکسان وجود دارد.';
$messages['contactnameexists'] = 'در حال حاضر مخاطبی با نام یکسان وجود دارد.';
$messages['blockedimages'] = 'برای حفاظت از حریم شخصی شما، عکس‌های خارجی در این پیغام مسدود شده‌اند.';
$messages['encryptedmessage'] = 'این یک پیغام رمزنگاری شده است و قابل نمایش نیست. با عرض پوزش!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'لطفا یک نشانی رایانامه معتبر وارد کنید.';
$messages['nonamewarning']  = 'لطفا یک نام وارد کنید.';
$messages['nopagesizewarning'] = 'لطفا اندازه‌ی صفحه را وارد کنید.';
$messages['nosenderwarning'] = 'لطفا رایانامه‌ی فرستنده را وارد کنید.';
$messages['norecipientwarning'] = 'لطفاً حداقل یک گیرنده وارد کنید.';
$messages['nosubjectwarning']  = 'قسمت "موضوع" خالی است. می‌خواهید اکنون وارد کنید؟';
$messages['nobodywarning'] = 'این پیغام بدون متن ارسال شود؟';
@@ -138,7 +136,6 @@
$messages['importmessagesuccess'] = 'با کام‌یابی $nr پیغام وارد شد.';
$messages['importmessageerror'] = 'وارد کردن ناموفق! فایل بارگذاری شده یک پیغام یا صندوق‌پستی معتبر نیست.';
$messages['opnotpermitted'] = 'عملیات مجاز نیست!';
$messages['nofromaddress'] = 'شناسه انتخاب شده نشانی رایانامه ندارد.';
$messages['editorwarning'] = 'تعویض به ویرایشگر متن ساده باعث از دست رفتن قالب‌بندی همه متن‌ها می‌شود، آیا می‌خواهید عملیات را ادامه بدهید؟';
$messages['httpreceivedencrypterror'] = 'یک خطای پیکربندی خطرناک رخ داده است. سریعا با سرپرست یا مسئول خود تماس بگیرید. <b>امکان ارسال  پیغام شما وجود ندارد.</b>';
$messages['smtpconnerror'] = 'خطای SMTP (%code): اتصال به سرور ناموفق بود.';
@@ -147,7 +144,6 @@
$messages['smtptoerror'] = 'خطای SMTP (%code): نام موفق در افزودن گیرنده "$to" ($msg).';
$messages['smtprecipientserror'] = 'خطای SMTP: ناتوان در تجزیه فهرست گیرنده‌ها.';
$messages['smtperror'] = 'خطای SMTP: $msg';
$messages['emailformaterror'] = 'نشانی رایانامه نامعتبر: $email';
$messages['toomanyrecipients'] = 'گیرنده‌های بیش از اندازه: تعداد گیرنده ها را به $max کاهش دهید.';
$messages['maxgroupmembersreached'] = 'تعداد اعضای گروه بیشتر از $max است.';
$messages['internalerror'] = 'یک خطای داخلی رخ داده است. لطفا دوباره سعی کنید.';
program/localization/fi_FI/messages.inc
@@ -52,7 +52,7 @@
$messages['savingresponse'] = 'Tallennetaan vastaustekstiä...';
$messages['deleteresponseconfirm'] = 'Haluatko varmasti poistaa tämän vastaustekstin?';
$messages['addedsuccessfully'] = 'Yhteystieto lisätty osoitekirjaan';
$messages['contactexists'] = 'Samalla sähköpostiosoitteella on jo olemassa yhteystieto';
$messages['contactexists'] = 'Yhteystieto samalla sähköpostiosoitteella on jo olemassa.';
$messages['contactnameexists'] = 'Yhteystieto samalla nimellä on jo olemassa';
$messages['blockedimages'] = 'Turvallisuussyistä viestin kuvia ei näytetty.';
$messages['encryptedmessage'] = 'Viesti on salattu, eikä sitä voida näyttää.';
@@ -90,7 +90,7 @@
$messages['noemailwarning'] = 'Anna sähköpostiosoite';
$messages['nonamewarning']  = 'Anna nimi';
$messages['nopagesizewarning'] = 'Anna sivukoko';
$messages['nosenderwarning'] = 'Anna lähettäjän sähköpostiosoite';
$messages['nosenderwarning'] = 'Anna lähettäjän sähköpostiosoite.';
$messages['norecipientwarning'] = 'Anna ainakin yksi vastaanottaja';
$messages['nosubjectwarning']  = '"Aihe"-kenttä on tyhjä. Haluatko kirjoittaa viestillesi aiheen?';
$messages['nobodywarning'] = 'Lähetetäänkö viesti ilman tekstiä?';
@@ -148,7 +148,7 @@
$messages['importmessagesuccess'] = '$nr viestiä tuotiin onnistuneesti';
$messages['importmessageerror'] = 'Tuonti epäonnistui! Lähetetty tiedosto ei ole kelvollinen viesti tai mailbox-tiedosto';
$messages['opnotpermitted'] = 'Toiminto ei ole sallittu!';
$messages['nofromaddress'] = 'Valittu identiteetti ei sisällä sähköpostiosoitetta';
$messages['nofromaddress'] = 'Valitusta identiteetistä puuttuu sähköpostiosoite.';
$messages['editorwarning'] = 'Muokkaintyypin vaihtaminen saattaa aiheuttaa tekstin muotoilun katoamisen. Haluatko jatkaa?';
$messages['httpreceivedencrypterror'] = 'Vakava virhe asetuksissa. Ota välittömästi yhteys ylläpitoon. <b>Viestiäsi ei voida lähettää.</b>';
$messages['smtpconnerror'] = 'SMTP-virhe ($code): Palvelimelle yhdistäminen epäonnistui';
program/localization/fr_FR/labels.inc
@@ -108,10 +108,10 @@
$labels['replytoallmessage'] = 'Répondre à la liste, ou à l\'expéditeur et à tous les destinataires';
$labels['replyall']         = 'Répondre à tous';
$labels['replylist']        = 'Répondre à la liste';
$labels['forward']          = 'Réacheminer';
$labels['forwardinline']    = 'Réacheminer dans le courriel';
$labels['forwardattachment'] = 'Réacheminer comme pièce jointe';
$labels['forwardmessage']   = 'Réacheminer le courriel';
$labels['forward']          = 'Transférer';
$labels['forwardinline']    = 'Transférer dans le courriel';
$labels['forwardattachment'] = 'Transférer comme pièce jointe';
$labels['forwardmessage']   = 'Transférer le courriel';
$labels['deletemessage']    = 'Supprimer le courriel';
$labels['movemessagetotrash'] = 'Déplacer le courriel vers la corbeille';
$labels['printmessage']     = 'Imprimer ce courriel';
@@ -148,7 +148,7 @@
$labels['deleted'] = 'Supprimé';
$labels['undeleted'] = 'Non supprimé';
$labels['replied'] = 'Réponse faite';
$labels['forwarded'] = 'Réacheminé';
$labels['forwarded'] = 'Transféré';
$labels['invert'] = 'Inverser';
$labels['filter'] = 'Filtrer';
$labels['list'] = 'Liste';
@@ -408,7 +408,7 @@
$labels['composeextwin'] = 'Rédiger dans une nouvelle fenêtre';
$labels['htmleditor'] = 'Rédiger des courriels HTML';
$labels['htmlonreply'] = 'en réponse à un courriel en HTML';
$labels['htmlonreplyandforward'] = 'lors d\'un réacheminement ou en réponse à un courriel en HTML';
$labels['htmlonreplyandforward'] = 'lors d\'un transfert ou en réponse à un courriel en HTML';
$labels['htmlsignature'] = 'Signature HTML';
$labels['showemail'] = 'Montrer l\'adresse courriel avec le nom d\'affichage';
$labels['previewpane'] = 'Montrer le volet de prévisualisation';
@@ -466,7 +466,7 @@
$labels['replyremovesignature'] = 'Lors de la réponse, supprimer la signature originale du courriel ';
$labels['autoaddsignature'] = 'Ajouter la signature automatiquement';
$labels['newmessageonly'] = 'nouveau courriel seulement';
$labels['replyandforwardonly'] = 'réponses et réacheminements seulement';
$labels['replyandforwardonly'] = 'réponses et transferts seulement';
$labels['insertsignature'] = 'Insérer la signature';
$labels['sigbelow'] = 'Placer la signature sous le message cité';
$labels['sigseparator'] = 'Forcer le séparateur standard dans les signatures';
@@ -486,7 +486,7 @@
$labels['addtodict'] = 'Ajouter au dictionnaire';
$labels['mailtoprotohandler'] = 'Enregistrer le gestionnaire de protocole pour les liens mailto:';
$labels['standardwindows'] = 'Gérer les fenêtres intempestives comme les autres';
$labels['forwardmode'] = 'Réacheminement de courriels';
$labels['forwardmode'] = 'Transfert de courriels';
$labels['inline'] = 'dans le courriel';
$labels['asattachment'] = 'en pièce jointe';
$labels['replyallmode'] = 'Action par défaut du bouton [Répondre à tous]';
@@ -573,7 +573,7 @@
$labels['arialabelcontactquicksearch'] = 'Formulaire de recherche de contacts';
$labels['arialabelcontactsearchbox'] = 'Saisie de la recherche de contacts';
$labels['arialabelmessageheaders'] = 'En-tête des courriels';
$labels['arialabelforwardingoptions'] = 'Options de réacheminement';
$labels['arialabelforwardingoptions'] = 'Options de transfert';
$labels['arialabelreplyalloptions'] = 'Options de réponse à tous';
$labels['arialabelmoremessageactions'] = 'Actions de courriel supplémentaires';
$labels['arialabelmarkmessagesas'] = 'Marquer les courriels sélectionnés comme...';
program/localization/ga_IE/messages.inc
@@ -30,7 +30,6 @@
$messages['messagesaved'] = 'Sábháil mé an teachtaireacht i dréachtaí';
$messages['successfullysaved'] = 'D\'éirigh mé agus sábháil mé';
$messages['addedsuccessfully'] = 'D\'éirigh mé agus shábháil mé duine nua go dtí an Leabhair Seoltaí';
$messages['contactexists'] = 'Tá duine i do Leabhair Seoltaí agus tá an seoladh ríomhphost seo aige';
$messages['blockedimages'] = 'Chun do príobháide a cosain, choiscinn na híomhánna san teachtaireacht seo';
$messages['encryptedmessage'] = 'Tá an teachtaireacht seo i criptiúchán, Níl an cumas agam chun é a tionscail';
$messages['nocontactsfound'] = 'Ní raibh aon buine san Leabhair Seoltaí seo';
program/localization/gl_ES/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Gardar texto de resposta...';
$messages['deleteresponseconfirm'] = 'Realmente queres borrar este texto de resposta?';
$messages['addedsuccessfully'] = 'O contacto engadiuse correctamente á Axenda de enderezos.';
$messages['contactexists'] = 'Xa existe un contacto con este enderezo de correo electrónico.';
$messages['contactnameexists'] = 'Xa existe un contacto con este nome.';
$messages['blockedimages'] = 'Estanse a bloquear as imaxes remotas para protexer a túa privacidade.';
$messages['encryptedmessage'] = 'Sentímolo! Non se pode amosar a mensaxe porque está cifrada.';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Por favor, engade un enderezo de correo electrónico válido.';
$messages['nonamewarning']  = 'Por favor, engade un nome.';
$messages['nopagesizewarning'] = 'Por favor, engade un tamaño de páxina.';
$messages['nosenderwarning'] = 'Por favor, engade o enderezo de correo electrónico do remite.';
$messages['norecipientwarning'] = 'Por favor, engade polo menos unha persoa destinataria.';
$messages['nosubjectwarning']  = 'O campo "Asunto" está baleiro. Queres completalo?';
$messages['nobodywarning'] = 'Queres enviar esta mensaxe sen texto?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = 'Importadas $nr mensaxes con éxito';
$messages['importmessageerror'] = 'Fallou a importación! O arquivo subido non é unha mensaxe válida ou un ficheiro de correo';
$messages['opnotpermitted'] = 'Operación non permitida!';
$messages['nofromaddress'] = 'Falta o enderezo de correo electrónico na identidade que escolleches.';
$messages['editorwarning'] = 'Se troca neste intre ao editor de texto plano, vai perder todo o formato do texto. Quere continuar?';
$messages['httpreceivedencrypterror'] = 'Produciuse un erro fatal de configuración. Contacta coa persoa administradora inmediatamente. <b>Non se enviou a túa mensaxe.</b>';
$messages['smtpconnerror'] = 'Erro SMTP ($code): Fallou a conexión co servidor.';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Erro SMTP ($code): Non foi posíbel engadir a persoa destinataria "$to" ($msg).';
$messages['smtprecipientserror'] = 'Erro SMTP: Non se pode analizar a lista de persoas destinatarias.';
$messages['smtperror'] = 'Erro SMTP: $msg';
$messages['emailformaterror'] = 'O enderezo de correo electrónico é incorrecto: $email.';
$messages['toomanyrecipients'] = 'Especificou persoas destinatarias de máis. Por favor, redúceas a un máximo de $max.';
$messages['maxgroupmembersreached'] = 'O número de integrantes do grupo excede o máximo de $max.';
$messages['internalerror'] = 'Produciuse un erro interno. Por favor, téntao de novo.';
program/localization/he_IL/messages.inc
@@ -52,7 +52,6 @@
$messages['savingresponse'] = 'שמירת תגובה...';
$messages['deleteresponseconfirm'] = 'האם למחוק את התגובה?';
$messages['addedsuccessfully'] = 'איש הקשר נוסף לפנקס בהצלחה';
$messages['contactexists'] = 'קיים כבר איש קשר עם כתובת דוא"ל זו';
$messages['contactnameexists'] = 'קיים כבר איש קשר בעל אותו שם';
$messages['blockedimages'] = 'תמונות משרת אחר נחסמו כדי לשמור על הפרטיות';
$messages['encryptedmessage'] = 'זו הודעת מוצפנת ולא ניתן להציגה';
@@ -90,7 +89,6 @@
$messages['noemailwarning'] = 'נא להוסיף כתובת דוא"ל חוקית';
$messages['nonamewarning']  = 'נא להוסיף שם';
$messages['nopagesizewarning'] = 'נא להוסיף גודל דף';
$messages['nosenderwarning'] = 'נא להוסיף כתובת השולח';
$messages['norecipientwarning'] = 'נא להוסיף לפחות נמען אחד';
$messages['nosubjectwarning']  = 'שורת הנושא ריקה. האם ברצונך להוסיף נושא כעת?';
$messages['nobodywarning'] = 'האם לשלוח הודעה ללא תוכן?';
@@ -148,7 +146,6 @@
$messages['importmessagesuccess'] = 'יובאו בהצלחה $nr הודעות ';
$messages['importmessageerror'] = 'היבוא נכשל ! הקובץ שהועלה אינו הודעה או קובץ הודעות במבנה מתאים';
$messages['opnotpermitted'] = 'פעולה אסורה!';
$messages['nofromaddress'] = 'לזהות שנבחרה חסרה כתובת דואר';
$messages['editorwarning'] = 'החלפת סוג העורך עלולה לגרום לאבדן עיצוב טקסט. האם ברצונך להמשיך?';
$messages['httpreceivedencrypterror'] = 'ארעה שגיאת תצורה חמורה. נא להודיע מייד למנהל/ת המערכת. <B> הודעתך לא תשלח <B>';
$messages['smtpconnerror'] = 'SMTP ($code): אבד הקשר לשרת';
@@ -157,7 +154,6 @@
$messages['smtptoerror'] = '($msg) SMTP ($code): "$to" לא נרשמה כתובת המקבל';
$messages['smtprecipientserror'] = 'SMTP : לא ניתן לפענח רשימת נמענים';
$messages['smtperror'] = 'SMTP: $msg';
$messages['emailformaterror'] = '$email  כתובת דוא"ל שגויה';
$messages['toomanyrecipients'] = 'יותר מדי נמענים. יש להקטין מספרם ל - $max';
$messages['maxgroupmembersreached'] = 'מספרם של חברי הקבוצה אינו יכול לעבור $max';
$messages['internalerror'] = 'שגיאת מערכת. נא לנסות שנית.';
program/localization/hi_IN/messages.inc
@@ -36,7 +36,6 @@
$messages['messagesaved'] = 'मेल ड्राफ़्ट फोल्डर में जमा हो रहा है';
$messages['successfullysaved'] = 'सहेजा गया है';
$messages['addedsuccessfully'] = 'पता खाते में पता जोडा गया है';
$messages['contactexists'] = 'इस ई-मेल पता से एक पता पेहले से है';
$messages['blockedimages'] = 'आप के प्राईवेसी के लिये और स्पैम से बचने के लिये इस मेल में सदूर चित्र नहीं दिखाये गये हैं।';
$messages['encryptedmessage'] = 'माफ़ कीजिये, यह मेल कूट रूप में है, इस कारण दिखाया नहीं जा सकता।';
$messages['nocontactsfound'] = 'कोई पता नहीं मिला';
program/localization/hr_HR/messages.inc
@@ -49,7 +49,6 @@
$messages['savingresponse'] = 'Spremanje teksta odgovora...';
$messages['deleteresponseconfirm'] = 'Jeste li sigurni da želite obrisati tekst ovog odgovora?';
$messages['addedsuccessfully'] = 'Kontakt uspješno dodan u imenik.';
$messages['contactexists'] = 'Kontakt sa istom e-mail adresom već postoji.';
$messages['contactnameexists'] = 'Kontakt istog imena već postoji.';
$messages['blockedimages'] = 'Zbog zaštite privatnosti, slike sa interneta su blokirane u ovoj poruci.';
$messages['encryptedmessage'] = 'Ova poruka je šifrirana i ne može se prikazati.';
@@ -79,7 +78,6 @@
$messages['noemailwarning'] = 'Unesite ispravnu e-mail adresu.';
$messages['nonamewarning']  = 'Unesite ime.';
$messages['nopagesizewarning'] = 'Unesite veličinu stranice.';
$messages['nosenderwarning'] = 'Unesite e-mail adresu pošiljatelja.';
$messages['norecipientwarning'] = 'Unesite barem jednog primatelja.';
$messages['nosubjectwarning']  = 'Polje \'Naslov\' je prazno. Želite li unijeti naslov?';
$messages['nobodywarning'] = 'Želite li poslati poruku bez teksta?';
@@ -135,7 +133,6 @@
$messages['importmessagesuccess'] = 'Uspješno uvezeno $nr poruka';
$messages['importmessageerror'] = 'Uvoz neuspješan! Datoteka nije u formatu poruke ili sandučića';
$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
$messages['nofromaddress'] = 'Nije upisana e-mail adresa u odabrani identitet.';
$messages['httpreceivedencrypterror'] = 'Dogodila se fatalna greška u konfiguraciji. Odmah kontaktirajte administratora. <b>Vaša poruka se ne može poslati.</b>';
$messages['smtpconnerror'] = 'SMTP greška ($code): Povezivanje na poslužitelj nije uspjelo.';
$messages['smtpautherror'] = 'SMTP greška ($code): Autentikacija nije uspjela.';
@@ -143,7 +140,6 @@
$messages['smtptoerror'] = 'SMTP greška ($code): Dodavanje primatelja "$to" ($msg) nije uspjelo.';
$messages['smtprecipientserror'] = 'SMTP greška: Nije moguće pročitati listu primatelja.';
$messages['smtperror'] = 'SMTP greška: $msg';
$messages['emailformaterror'] = 'Neispravna e-mail adresa: $email';
$messages['toomanyrecipients'] = 'Previše primatelja. Smanjite broj primatelja na $max.';
$messages['maxgroupmembersreached'] = 'Broj članova grupe prelazi maksimalni broj od $max.';
$messages['internalerror'] = 'Dogodila se interna greška. Molimo pokušajte ponovno.';
program/localization/hu_HU/messages.inc
@@ -51,7 +51,6 @@
$messages['savingresponse'] = 'A válasz szövegének mentése...';
$messages['deleteresponseconfirm'] = 'Biztosan törli ezt a válasz szöveget?';
$messages['addedsuccessfully'] = 'A kapcsolat hozzáadása a címjegyzékhez megtörtént';
$messages['contactexists'] = 'Ezzel az e-mail címmel már létezik kapcsolat';
$messages['contactnameexists'] = 'Ezzel a névvel már létezik kapcsolat';
$messages['blockedimages'] = 'Biztonsági okokból a távoli képek letöltése tiltott';
$messages['encryptedmessage'] = 'Az üzenet titkosított, ezért nem megjeleníthető';
@@ -82,7 +81,6 @@
$messages['noemailwarning'] = 'Adjon meg egy valós e-mail címet';
$messages['nonamewarning']  = 'Adjon meg egy nevet';
$messages['nopagesizewarning'] = 'Adja meg a papír méretét';
$messages['nosenderwarning'] = 'Kérem adja meg a feladó e-mail címét';
$messages['norecipientwarning'] = 'Legalább egy címzettet adjon meg';
$messages['nosubjectwarning']  = 'A Tárgy mező üres. Szeretné most kitölteni?';
$messages['nobodywarning'] = 'Elküldi az üzenetet üresen?';
@@ -139,7 +137,6 @@
$messages['importmessagesuccess'] = 'Sikeresen importálva $nr üzenet';
$messages['importmessageerror'] = 'Sikertelen az importálás. A feltőltött file nem értelmezhető üzenetként vagy postafiók (mailbox) fileként.';
$messages['opnotpermitted'] = 'A művelet nem megengedett!';
$messages['nofromaddress'] = 'A kiválasztott azonosítónál nincs  email beállítva.';
$messages['editorwarning'] = 'A szerkesztő tipusok közötti váltás a szöveg formázásának elveszésével járhat. Biztos szeretnéd folytatni?';
$messages['httpreceivedencrypterror'] = 'Végzetes konfigurációs hiba történt, azonnal lépjen kapcsolatba az üzemeltetővel. <b>Az üzenet nem küldhető el.</b>';
$messages['smtpconnerror'] = 'SMTP hiba ($code): Sikertelen kapcsolódás a szerverhez';
@@ -148,7 +145,6 @@
$messages['smtptoerror'] = 'SMTP hiba ($code): Nem sikerült a következő címzett hozzáadása: "$to" ($msg)';
$messages['smtprecipientserror'] = 'SMTP hiba ($code): A címzettlista feldolgozása sikertelen';
$messages['smtperror'] = 'SMTP hiba ($code): $msg';
$messages['emailformaterror'] = 'Helytelen formátumú e-mail cím: $email';
$messages['toomanyrecipients'] = 'Túl sok a címzett. Csökkentse a címzettek számát maximum $max címre!';
$messages['maxgroupmembersreached'] = 'A csoport létszáma meghaladja a maximum $max főt';
$messages['internalerror'] = 'Belső hiba történt. Kérjük próbálja újra!';
program/localization/hy_AM/messages.inc
@@ -40,7 +40,6 @@
$messages['messagesaved'] = 'Նամակը գրանցվեց որպես սևագիր';
$messages['successfullysaved'] = 'Գրանցված է';
$messages['addedsuccessfully'] = 'Հասցեն ավելացված է';
$messages['contactexists'] = 'Այս հասցեով անձը արդեն գրանցված է';
$messages['contactnameexists'] = 'Նույն անունով արդեն անձ գոյություն ունի։';
$messages['blockedimages'] = 'Ձեր անվտանգության համար, այս նամակի արտաքին նկարներն բեռնված չեն';
$messages['encryptedmessage'] = 'Ներողություն, այս նամակը կոդավորված է';
@@ -68,7 +67,6 @@
$messages['noemailwarning'] = 'Մուտքագրեք ճիշտ էլ. հասցե';
$messages['nonamewarning']  = 'Մուտքագրեք անուն';
$messages['nopagesizewarning'] = 'Մուտքագրեք էջի չափս';
$messages['nosenderwarning'] = 'Մուտքագրեք հասցեատիրոջ հասցեն';
$messages['norecipientwarning'] = 'Մուտքագրեք նվազագույնը մեկ հասցեատեր';
$messages['nosubjectwarning']  = 'Վերնագիր բացակայում է, ցանկանո՞ւմ եք լրացնել';
$messages['nobodywarning'] = 'Ուղարկե՞լ այս նամակը դատարկ';
@@ -114,7 +112,6 @@
$messages['importconfirm'] = '$inserted նոր ներկրված հասցեներ, $skipped արդեն առկա հասցեներ՝ <p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Բաց թողնվեց $skipped առկա գրառում</b>';
$messages['opnotpermitted'] = 'Գործողությունը անթույլատրելի է։';
$messages['nofromaddress'] = 'Նշված անձը հասցե չունի։';
$messages['httpreceivedencrypterror'] = 'Համակարգի լարքի սխալ։ Դիմեք համակարգը սպասարկող անձնակազմին։ <b>Ձեր նամակը ուղարկված չէ։</b>';
$messages['smtpconnerror'] = 'SMTP սխալ ($code)` Սերվերի հետ կապը ձախողվեց։';
$messages['smtpautherror'] = 'SMTP սխալ ($code)` Նույնականացումը ձախողվեց։';
@@ -122,7 +119,6 @@
$messages['smtptoerror'] = 'SMTP սխալ ($code)` Հաղորդագրության ստացող "$to"-ին ($msg) ավելացնելը ձախողվեց։';
$messages['smtprecipientserror'] = 'SMTP սխալ` ստացողների ցուցակի ընթերցման ձախողում։';
$messages['smtperror'] = 'SMTP սխալ` $msg';
$messages['emailformaterror'] = 'Սխալ էլփոստի հասցե` $email';
$messages['toomanyrecipients'] = 'Ստացողների քանակը չափազանց մեծ է։ Նվազեցրեք մինչև $max-ը։';
$messages['maxgroupmembersreached'] = 'Խմբի անդամների քանաքը գերազանցում է թույլատրելի $max-ը։';
$messages['contactdelerror'] = 'Անձանց ջնջումը ձախողվեց։';
program/localization/ia/messages.inc
@@ -52,7 +52,6 @@
$messages['savingresponse'] = 'A salveguardar le texto del responsa...';
$messages['deleteresponseconfirm'] = 'Es vos secur de voler deler iste texto de responsa?';
$messages['addedsuccessfully'] = 'Le contacto ha essite addite al adressario.';
$messages['contactexists'] = 'Un contacto con le mesme adresse de e-mail jam existe.';
$messages['contactnameexists'] = 'Un contacto con le mesme nomine jam existe.';
$messages['blockedimages'] = 'Pro proteger vostre vita private, le imagines a distantia es blocate in iste message.';
$messages['encryptedmessage'] = 'Iste message ha essite cryptate e non pote esser monstrate.';
@@ -90,7 +89,6 @@
$messages['noemailwarning'] = 'Per favor, specifica un adresse de e-mail valide.';
$messages['nonamewarning']  = 'Per favor, specifica un nomine.';
$messages['nopagesizewarning'] = 'Per favor, specifica un dimension de pagina.';
$messages['nosenderwarning'] = 'Per favor, specifica le adresse de e-mail del expeditor.';
$messages['norecipientwarning'] = 'Per favor, specifica al minus un destinatario.';
$messages['nosubjectwarning']  = 'Le campo "Subjecto" es vacue. Vole vos specificar un subjecto ora?';
$messages['nobodywarning'] = 'Inviar iste message sin texto?';
@@ -148,7 +146,6 @@
$messages['importmessagesuccess'] = '$nr messages ha essite importate';
$messages['importmessageerror'] = 'Importation fallite. Le file incargate non es un file de cassa postal o message valide.';
$messages['opnotpermitted'] = 'Operation non permittite.';
$messages['nofromaddress'] = 'Le adresse de e-mail manca in le identitate seligite.';
$messages['editorwarning'] = 'Si vos cambia de typo de editor, le formato del texto pote esser perdite. Desira vos continuar?';
$messages['httpreceivedencrypterror'] = 'Un error fatal de configuration ha occurrite. Contacta immediatemente vostre administrator.<b>Vostre message non pote esser inviate.</b>';
$messages['smtpconnerror'] = 'Error SMTP ($code): Le connexion al servitor ha fallite.';
@@ -157,7 +154,6 @@
$messages['smtptoerror'] = 'Error SMTP ($code): Impossibile adder le destinatario "$to" ($msg).';
$messages['smtprecipientserror'] = 'Error SMTP: Impossibile interpretar le lista de destinatarios.';
$messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'Adresse de e-mail invalide: $email';
$messages['toomanyrecipients'] = 'Troppo de destinatarios. Reduce le numero de destinatarios a $max.';
$messages['maxgroupmembersreached'] = 'Le numero de membros del gruppo excede le maximo de $max.';
$messages['internalerror'] = 'Un error interne ha occurrite. Per favor, essaya lo de novo.';
program/localization/id_ID/messages.inc
@@ -52,7 +52,6 @@
$messages['savingresponse'] = 'Meyimpan pesan tanggapan....';
$messages['deleteresponseconfirm'] = 'Anda yakin ingin menghapus pesan tanggapan ini?';
$messages['addedsuccessfully'] = 'Kontak berhasil ditambahkan ke buku alamat';
$messages['contactexists'] = 'Kontak dengan alamat e-mail ini sudah ada.';
$messages['contactnameexists'] = 'Kontak dengan nama yang sama sudah ada.';
$messages['blockedimages'] = 'Untuk melindungi privasi Anda, gambar-gambar diluar server diblok pada pesan ini.';
$messages['encryptedmessage'] = 'Pesan ini terenkripsi dan tidak bisa ditampilkan. Maaf!';
@@ -90,7 +89,6 @@
$messages['noemailwarning'] = 'Tolong masukkan alamat email yang valid';
$messages['nonamewarning']  = 'Tolong masukkan nama';
$messages['nopagesizewarning'] = 'Tolong masukkan ukuran halaman';
$messages['nosenderwarning'] = 'Mohon memasukkan alamat e-mail pengirim';
$messages['norecipientwarning'] = 'Tolong masukkan sedikitnya satu penerima';
$messages['nosubjectwarning']  = '"Judul" kosong. Isi judul sekarang?';
$messages['nobodywarning'] = 'Kirim pesan ini tanpa teks?';
@@ -148,7 +146,6 @@
$messages['importmessagesuccess'] = 'Berhasil mengimport $nr pesan';
$messages['importmessageerror'] = 'Gagal mengimport! File yang di upload buka pesan yang valid atau file mailbox';
$messages['opnotpermitted'] = 'Operasi tidak diperbolehkan!';
$messages['nofromaddress'] = 'kekurangan alamat e-mail pada identitas terpilih';
$messages['editorwarning'] = 'Mengubah tipe penyunting dapat menyebabkan pemformatan teks hilang. Apakah Anda hendak melanjutkan?';
$messages['httpreceivedencrypterror'] = 'Terjadi sebuah kesalahan pengaturan fatal. Segera hubungi administrator Anda. <b> Pesan Anda tidak bisa terkirim.</b>';
$messages['smtpconnerror'] = 'SMTP Error ($code): Koneksi ke server gagal';
@@ -157,7 +154,6 @@
$messages['smtptoerror'] = 'SMTP Error ($code): Gagal menambah penerima "$to" ($msg)';
$messages['smtprecipientserror'] = 'SMTP Error ($code): Tidak dapat menguraikan daftar penerima';
$messages['smtperror'] = 'SMTP Error : $msg';
$messages['emailformaterror'] = 'Alamat e-mail salah: $email';
$messages['toomanyrecipients'] = 'Terlalu banyak penerima. Batas maksimal penerima adalah $max';
$messages['maxgroupmembersreached'] = 'Jumlah grup melebihi jumlah maksimum $max';
$messages['internalerror'] = 'Terjadi kesalahan dari dalam. Silahkan coba kembali.';
program/localization/is_IS/messages.inc
@@ -51,7 +51,6 @@
$messages['savingresponse'] = 'Vista texta svars...';
$messages['deleteresponseconfirm'] = 'Ertu viss um að þú viljir eyða þessum svartexta?';
$messages['addedsuccessfully'] = 'Netfangi var bætt í netfangaskrá.';
$messages['contactexists'] = 'Tengiliður með sama netfang er þegar skráður í netfangaskrána.';
$messages['contactnameexists'] = 'Tengiliður með sama nafn er þegar skráður í netfangaskrána.';
$messages['blockedimages'] = 'Til verndar hafa allar myndir í þessu skeyti verið blokkaðar.';
$messages['encryptedmessage'] = 'Þetta er dulkóðað skeyti og því miður er ekki hægt að birta það';
@@ -77,7 +76,6 @@
$messages['noemailwarning'] = 'Sláðu inn gildt netfang';
$messages['nonamewarning']  = 'Sláðu inn nafn';
$messages['nopagesizewarning'] = 'Sláðu inn síðustærð';
$messages['nosenderwarning'] = 'Settu inn netfang sendanda.';
$messages['norecipientwarning'] = 'Í það minnsta einn viðtakandi verður að vera';
$messages['nosubjectwarning']  = 'Efnislínan er tóm. Viltu slá eitthvað inn í hana?';
$messages['nobodywarning'] = 'Viltu senda tómt skeyti?';
program/localization/it_IT/messages.inc
@@ -52,7 +52,7 @@
$messages['savingresponse'] = 'Salvataggio della risposta...';
$messages['deleteresponseconfirm'] = 'Sei sicuro di voler eliminare questa risposta?';
$messages['addedsuccessfully'] = 'Contatto aggiunto alla rubrica';
$messages['contactexists'] = 'Esiste già un contatto con questo indirizzo e-mail';
$messages['contactexists'] = 'Esiste già un contatto con questo indirizzo email.';
$messages['contactnameexists'] = 'Esiste già un contatto con questo nome';
$messages['blockedimages'] = 'Per proteggere la tua privacy, le immagini remote di questo messaggio sono state bloccate.';
$messages['encryptedmessage'] = 'Questo messaggio é cifrato e non può essere visualizzato. Spiacenti!';
@@ -90,7 +90,7 @@
$messages['noemailwarning'] = 'Per favore, immetti un indirizzo e-mail valido';
$messages['nonamewarning']  = 'Per favore, immetti un nome';
$messages['nopagesizewarning'] = 'Per favore, immetti il numero di righe per pagina';
$messages['nosenderwarning'] = 'Per favore, inserisci l\'indirizzo e-mail del mittente';
$messages['nosenderwarning'] = 'Per favore, inserisci l\'indirizzo email del mittente.';
$messages['norecipientwarning'] = 'Per favore, immetti almeno un destinatario';
$messages['nosubjectwarning']  = 'L\'oggetto è vuoto. Vuoi inserirlo adesso?';
$messages['nobodywarning'] = 'Inviare il messaggio senza testo?';
@@ -148,7 +148,7 @@
$messages['importmessagesuccess'] = 'Importati correttamente $nr messaggi';
$messages['importmessageerror'] = 'Importazione fallita! Il file caricato non è un messaggio o una casella postale valida.';
$messages['opnotpermitted'] = 'Operazione non consentita!';
$messages['nofromaddress'] = 'Indirizzo e-mail mancante nell\'identità selezionata';
$messages['nofromaddress'] = 'Indirizzo email mancante nell\'identità selezionata.';
$messages['editorwarning'] = 'Cambiare editor potrebbe causare la perdita della formattazione. Si desidera continuare lo stesso?';
$messages['httpreceivedencrypterror'] = 'Fatale errore di configurazione. Per favore contatta l\'amministratore immediatamente. Il tuo messaggio non può essere inviato.';
$messages['smtpconnerror'] = 'Errore SMTP ($code): Connessione al server fallita';
@@ -157,7 +157,7 @@
$messages['smtptoerror'] = 'Errore SMTP ($code): Fallito l\'inserimento del destinatario "$to" ($msg)';
$messages['smtprecipientserror'] = 'Errore SMTP: Impossibile processare la lista dei destinatari';
$messages['smtperror'] = 'Errore SMTP: $msg';
$messages['emailformaterror'] = 'Indirizzo e-mail non corretto: $email';
$messages['emailformaterror'] = 'Indirizzo email non vaiido: $email';
$messages['toomanyrecipients'] = 'Numero eccessivo di destinatari, ridurlo a $max';
$messages['maxgroupmembersreached'] = 'Il numero dei membri del gruppo eccede il massimo di $max';
$messages['internalerror'] = 'Si è verificato un errore interno. Riprovare più tardi.';
program/localization/ja_JP/messages.inc
@@ -52,7 +52,6 @@
$messages['savingresponse'] = '回答の文章を保存中...';
$messages['deleteresponseconfirm'] = 'この回答の文章を本当に削除しますか?';
$messages['addedsuccessfully'] = '連絡先をアドレス帳に追加しました。';
$messages['contactexists'] = '同じメールアドレスの連絡先が既に存在します。';
$messages['contactnameexists'] = '同じ名前の連絡先が既に存在します。';
$messages['blockedimages'] = 'あなたのプライバシーを守るため、このメッセージに含まれる外部画像を遮断しました。';
$messages['encryptedmessage'] = 'このメッセージは暗号化されていて表示できません、ごめんなさい!';
@@ -90,7 +89,6 @@
$messages['noemailwarning'] = '正しい電子メールアドレスを入力してください。';
$messages['nonamewarning']  = '名前を入力してください。';
$messages['nopagesizewarning'] = 'ページのサイズを入力してください。';
$messages['nosenderwarning'] = '送信者の電子メールアドレスを入力してください。';
$messages['norecipientwarning'] = '少なくとも1つ宛先を入力してください。';
$messages['nosubjectwarning']  = '件名(Subject)の欄が空です。今、入力しますか?';
$messages['nobodywarning'] = '本文の無いメッセージを送信しますか?';
@@ -148,7 +146,6 @@
$messages['importmessagesuccess'] = '$nr件のメッセージをインポートしました。';
$messages['importmessageerror'] = 'インポートできませんでした!  アップロードしたファイルは有効なメッセージやメールボックスのファイルではありません。';
$messages['opnotpermitted'] = '許可されていない操作です。';
$messages['nofromaddress'] = '選択している識別情報に電子メールアドレスが抜けています。';
$messages['editorwarning'] = 'エディターの種類を切り替えるとテキストの書式を失うかもしれません。本当に続けますか?';
$messages['httpreceivedencrypterror'] = '致命的な設定エラーが発生しました。システム管理者に至急連絡してください。<b>メッセージを送信できません。</b>';
$messages['smtpconnerror'] = 'SMTP Error ($code): サーバーへの接続に失敗しました。';
@@ -157,7 +154,6 @@
$messages['smtptoerror'] = 'SMTP Error ($code): 宛先 "$to" を追加できません ($msg)';
$messages['smtprecipientserror'] = 'SMTP Error: 宛先の一覧を解析できません。';
$messages['smtperror'] = 'SMTP エラー: $msg';
$messages['emailformaterror'] = '電子メールアドレスが正しくありません: $email';
$messages['toomanyrecipients'] = '宛先が多すぎます。$max件以内にしてください。';
$messages['maxgroupmembersreached'] = 'グループのメンバーが多すぎます。$max 件以内にしてください。';
$messages['internalerror'] = '内部エラーが発生しました。もう一度試してください。';
program/localization/ka_GE/messages.inc
@@ -49,7 +49,6 @@
$messages['messagesaved'] = 'შეტყობინების დროებით შენახვა';
$messages['successfullysaved'] = 'წარმატებით შეინახა';
$messages['addedsuccessfully'] = 'კონტაქტი წარმატებით დაემატა მისამართებში';
$messages['contactexists'] = 'კონტაქტი ამ მისამართზე უკვე არსებობს';
$messages['contactnameexists'] = 'კონტაქტი იგივე სახელით უკვე არსებობს.';
$messages['blockedimages'] = 'უსაფრთხოების მიზნით სურათების ჩვენება შეზღუდულია';
$messages['encryptedmessage'] = 'შეტყობინება დაშიფრულია და სამწუხაროდ ჩვენება შეუძლებელია';
@@ -78,7 +77,6 @@
$messages['noemailwarning'] = 'მიუთითეთ სწორი ელ–ფოსტის მისამართი';
$messages['nonamewarning']  = 'მიუთითეთ სახელი';
$messages['nopagesizewarning'] = 'მიუთითეთ ფურცლის ზომა';
$messages['nosenderwarning'] = 'გთხოვთ შეიტანოთ მგზავნელის ელ–ფოსტის მისამართი';
$messages['norecipientwarning'] = 'მიუთითეთ მიმღები';
$messages['nosubjectwarning']  = 'გსურთ თუ არა შეტყობინების გაგზავნა უსათაუროდ?';
$messages['nobodywarning'] = 'გსურთ თუ არა შეტყობინების გაგზავნა უტექსტოდ?';
@@ -130,7 +128,6 @@
$messages['importwait'] = 'გთხოვთ მოიცადოთ, მიმდინარეობს შემოტანა';
$messages['importconfirm'] = '<b>წარმატებით დასრულდა $inserted კონტაქტების შემოტანა, $skipped არსებულის გამოტოვება</b>:<p><em>$names</em></p>';
$messages['opnotpermitted'] = 'ოპერაცია შეზღუდულია';
$messages['nofromaddress'] = 'ელ–ფოსტის მისამართი გამოტოვებულია';
$messages['httpreceivedencrypterror'] = 'სერვერზე მოხდა შეცდომა. დაუყონებლივ დაუკავშირდით ადმინისტრატორს. <b>თქვენი შეტყობინება შესაძლოა ვერ გაიგზავნა.</b>';
$messages['smtpconnerror'] = 'SMTP Error ($code): სერვერთან დაკავშირება ვერ მოხერხდა';
$messages['smtpautherror'] = 'SMTP Error ($code): ავტორიზაციის შეცდომა';
@@ -138,7 +135,6 @@
$messages['smtptoerror'] = 'SMTP Error ($code): ვერ დაემატა მიმღები "$to" ($msg)';
$messages['smtprecipientserror'] = 'SMTP Error: მიმღებთა ჩამონათვალის დამუშავება ვერ მოხერხდა';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'ელ-ფოსტის მისამართი არასწორია $email';
$messages['maxgroupmembersreached'] = 'ჯგუფის წევრების რაოდენობა მეტია დასაშვებ ($size)-ზე';
$messages['internalerror'] = 'დაფიქსირდა შეცდომა. გთხოვთ სცადოთ მოგვიანებით.';
$messages['contactdelerror'] = 'კონტაქტის წაშლა არ მოხერხდა.';
program/localization/km_KH/messages.inc
@@ -42,7 +42,6 @@
$messages['messagesaved'] = 'សំបុត្រត្រូវបានរក្សាទុកក្នុងថតពង្រៀង';
$messages['successfullysaved'] = 'រក្សាទុកដោយជោគជ័យ';
$messages['addedsuccessfully'] = 'អាសយដ្ឋានត្រូវបានរក្សាទុកដោយជោគជ័យ';
$messages['contactexists'] = 'ព័ត៌មានទាក់ទងដែលមានអ៊ីមែលនេះមានក្នុងសៀវភៅអាសយដ្ឋានរួចហើយ';
$messages['contactnameexists'] = 'មាន​ទំនាក់ទំនង​ដែលមាន​ឈ្មោះ​ដូច​គ្នា​នេះ​រួច​ហើយ។';
$messages['blockedimages'] = 'រូបភាពដែលមានក្នុងសំបុត្រនេះត្រូវបានបិទដើម្បីរក្សាសុវត្ថភាព';
$messages['encryptedmessage'] = 'លោកអ្នកមិនអាចមើលសំបុត្រនេះបានទេពីព្រោះសំបុត្រនេះជាសំបុត្រសំងាត់';
@@ -70,7 +69,6 @@
$messages['noemailwarning'] = 'អ៊ីមែលត្រឹមត្រូវ';
$messages['nonamewarning']  = 'សូមសរសេរឈ្មោះរបស់អ្នក';
$messages['nopagesizewarning'] = 'សូមកំណត់ទំហំទំព័រ';
$messages['nosenderwarning'] = 'សូមសរសេរអ៊ីមែលរបស់អ្នកផ្ញើ';
$messages['norecipientwarning'] = 'សូមសរសេរអ្នកទទួលយ៉ាងហោចណាស់ម្នាក់';
$messages['nosubjectwarning']  = 'សំបុត្រគ្មានចំណងជើងតើអ្នកចង់សរសេរចំណងជើងនៅពេលនេះទេ?';
$messages['nobodywarning'] = 'តើលោកអ្នកចង់ផ្ញើសំបុត្រដែលគ្មានតួអត្ថបទសំបុត្រទេ?';
@@ -116,14 +114,12 @@
$messages['importwait'] = 'សូមមេត្តារង់ចាំកំពុងទាញទិន្នន័យចូល ...';
$messages['importconfirm'] = '<b>ព័ត៌មានទំនាក់ទំនង $insertedបានបញ្ចូលដោយជោគជ័យ,ហើយបានរំលងចោលពត៌មានដែលមានស្រាប់$skipped </b>:<p><em>$names</em></p>';
$messages['opnotpermitted'] = 'ប្រតិ្តបត្តិការត្រូវបានគេហាមឃាត់!';
$messages['nofromaddress'] = 'ខ្វះអាសយដ្ឋានអ៊ីមែលក្នុងអត្តសញ្ណាណមួយនេះ';
$messages['smtpconnerror'] = 'SMTP Error ($code):មិនអាចភ្ជាប់ទៅម៉ាស៊ីនមេ';
$messages['smtpautherror'] = 'SMTP Error ($code):ព័ត៌មានគនីយមិនត្រឹមត្រូវ';
$messages['smtpfromerror'] = 'SMTP Error ($code):មិនអាចកំនត់អ្នកផ្ញើ "$from" ($msg)';
$messages['smtptoerror'] = 'SMTP Error ($code):មិនអាចកំនត់អ្នកទទួល "$to" ($msg)';
$messages['smtprecipientserror'] = 'SMTP Error:មិនអាចបំលែងបញ្ជីអ្នកទទួល';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'អាសយដ្ឋានអ៊ីមែលមិនត្រឹមត្រូវទេ:$email';
$messages['toomanyrecipients'] = 'ចំនួនអ្នកទទួលច្រើនលើសកំនត់!សូមមេត្តាលុបចោលរហូតដល់ $max។';
$messages['maxgroupmembersreached'] = 'ចំនួនក្រុមលើសកំនត់ហើយចំនួនច្រើនបំផុតគឺ $max';
$messages['contactdelerror'] = 'មិនអាចលុបអាសយដ្ឋានទំនាក់ទំនង';
program/localization/kn_IN/messages.inc
@@ -21,7 +21,6 @@
$messages['messagesent'] = 'ಸಂದೇಶ ಯಶಸ್ವಿಯಾಗಿ ಕಳುಹಿಸಲಾಗಿದೆ.';
$messages['savingmessage'] = 'ಸಂದೇಶ ಉಳಿಸಲಾಗುತ್ತಿದೆ...';
$messages['successfullysaved'] = 'ಯಶಸ್ವಿಯಾಗಿ ಉಳಿಸಲಾಗಿದೆ.';
$messages['contactexists'] = 'ಅದೇ ಇಮೇಲ್ ವಿಳಾಸದೊಂದಿಗೆ ಸಂಪರ್ಕ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.';
$messages['contactnameexists'] = 'ಅದೇ ಹೆಸರಿನ ಸಂಪರ್ಕ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.';
$messages['nocontactsfound'] = 'ಯಾವುದೇ ಸಂಪರ್ಕಗಳು ಕಂಡುಬಂದಿಲ್ಲ.';
$messages['contactnotfound'] = 'ವಿನಂತಿಸಿದ ಸಂಪರ್ಕ ಕಂಡುಬಂದಿಲ್ಲ.';
@@ -46,7 +45,6 @@
$messages['filesizeerror'] = 'ಅಪ್ಲೋಡ್ ಮಾಡಿದ ಫೈಲ್ $size ಗರಿಷ್ಠ ಗಾತ್ರವನ್ನು ಮೀರಿದೆ';
$messages['errorsavingcontact'] = 'ಸಂಪರ್ಕ ವಿಳಾಸ ಉಳಿಸಲಾಗಲಿಲ್ಲ.';
$messages['selectimportfile'] = 'ಅಪ್ಲೋಡ್ ಮಾಡಲು ಫೈಲ್ ಆಯ್ಕೆ ಮಾಡಿ.';
$messages['emailformaterror'] = 'ಅಮಾನ್ಯವಾದ ಇಮೇಲ್ ವಿಳಾಸ: $email';
$messages['autocompletechars'] = 'ಸ್ವಯಂಪೂರ್ಣಗೊಳಿಸುವಿಕೆ ಕನಿಷ್ಠ $min ಅಕ್ಷರಗಳನ್ನು ನಮೂದಿಸಿ.';
$messages['namecannotbeempty'] = 'ಹೆಸರು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ.';
$messages['nametoolong'] = 'ಹೆಸರು ತುಂಬಾ ಉದ್ದವಾಗಿದೆ.';
program/localization/ko_KR/messages.inc
@@ -52,7 +52,6 @@
$messages['savingresponse'] = '응답 문구를 저장하는 중...';
$messages['deleteresponseconfirm'] = '정말로 이 응답 문구를 삭제하시겠습니까?';
$messages['addedsuccessfully'] = '연락처가 주소록에 성공적으로 추가되었습니다.';
$messages['contactexists'] = '연락처에 동일한 이메일 주소가 이미 존재합니다.';
$messages['contactnameexists'] = '연락처에 동일한 이름이 이미 존재합니다.';
$messages['blockedimages'] = '개인 정보 보호를 위해, 이 메시지의 외부 이미지가 차단되었습니다.';
$messages['encryptedmessage'] = '이것은 암호화된 메시지며 표시할 수 없습니다. 죄송합니다!';
@@ -90,7 +89,6 @@
$messages['noemailwarning'] = '유효한 이메일 주소를 입력해주십시오.';
$messages['nonamewarning']  = '이름을 입력해주십시오.';
$messages['nopagesizewarning'] = '페이지 크기를 입력해주십시오.';
$messages['nosenderwarning'] = '발송자 이메일 주소를 입력해주십시오.';
$messages['norecipientwarning'] = '최소 하나의 수신자를 입력해주십시오.';
$messages['nosubjectwarning']  = '"제목" 필드가 비어있습니다. 지금 입력하시겠습니까?';
$messages['nobodywarning'] = '내용 없는 메시지를 보내시겠습니까?';
@@ -148,7 +146,6 @@
$messages['importmessagesuccess'] = '$nr개의 메시지를 성공적으로 가져옴';
$messages['importmessageerror'] = '가져오기를 실패했습니다! 업로드한 파일은 잘못된 메시지 또는 메일함 파일입니다.';
$messages['opnotpermitted'] = '작업이 허용되지 않습니다!';
$messages['nofromaddress'] = '선택한 신원에 이메일 주소가 누락되었습니다.';
$messages['editorwarning'] = '편집기 유형을 전환하면 텍스트 서식을 잃게 될 수도 있습니다. 계속하시겠습니까?';
$messages['httpreceivedencrypterror'] = '치명적인 구성 오류가 발생했습니다. 즉시 관리자에게 연락하십시오.
<b>메시지를 보낼 수 없습니다.</b>';
@@ -158,7 +155,6 @@
$messages['smtptoerror'] = 'SMTP 오류 ($code): 수신자를 "$to" ($msg)에 추가하는데 실패했습니다.';
$messages['smtprecipientserror'] = 'SMTP 오류: 수신자 목록을 구문 분석할 수 없습니다.';
$messages['smtperror'] = 'SMTP 오류: $msg';
$messages['emailformaterror'] = '잘못된 이메일 주소: $email';
$messages['toomanyrecipients'] = '수신자가 너무 많습니다. 수신자 인원을 $max명으로 줄이십시오.';
$messages['maxgroupmembersreached'] = '그룹 구성원이 최대 인원인 $max명을 초과합니다.';
$messages['internalerror'] = '내부 오류가 발생했습니다. 다시 시도해주십시오.';
program/localization/ku/messages.inc
@@ -49,7 +49,6 @@
$messages['savingresponse'] = 'Bersiva nivîsê tê tomarkirin...';
$messages['deleteresponseconfirm'] = 'Tu bi rastî dixwazî vê nivîsa bersivê jê bibî?';
$messages['addedsuccessfully'] = 'Têkilî li navnîşanan hat zêdekirin';
$messages['contactexists'] = 'Têkiliyeke bi vê navnîşanê jixwe heye';
$messages['contactnameexists'] = 'Jixwe kesekî bi heman navî heye.';
$messages['blockedimages'] = 'Ji bo ewlekariya te wêneyên cuda yên vê peyamê hatin astenkirin.';
$messages['encryptedmessage'] = 'Ev peyamenek şîfrekirî ye, bibore, nayê vekirin!';
program/localization/lb_LU/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Äntwert-Text gëtt gespäichert...';
$messages['deleteresponseconfirm'] = 'Wëlls du dësen Äntwert-Text wierklech läschen?';
$messages['addedsuccessfully'] = 'Kontakt erfollegräich an d\'Adressbuch gesat.';
$messages['contactexists'] = 'Et existéiert schon e Kontakt mat der selweschter E-Mail-Adress.';
$messages['contactnameexists'] = 'Et existéiert schon e Kontakt mam selweschten Numm.';
$messages['blockedimages'] = 'Fir deng Privatsphär ze schütze, gi Biller vun externe Serveren an dësem Message net gelueden.';
$messages['encryptedmessage'] = 'Dëst ass e verschlësselte Message a kann net ugewise ginn. Et deet eis Leed!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Gëff w.e.gl eng gëlteg Email-Adress an.';
$messages['nonamewarning']  = 'Gëff w.e.gl en Numm an.';
$messages['nopagesizewarning'] = 'Gëff w.e.gl eng Säitegréisst an.';
$messages['nosenderwarning'] = 'Gëff w.e.gl d\'Adress vum Ofsender an.';
$messages['norecipientwarning'] = 'Gëff w.e.gl op mannst een Empfänger an.';
$messages['nosubjectwarning']  = 'D\'Feld "Sujet" ass eidel. Wëlls du elo eent uginn?';
$messages['nobodywarning'] = 'Soll dëse Message ouni Text verschéckt ginn?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = 'Erfollegräich $nr Messagen importéiert';
$messages['importmessageerror'] = 'Import feelgeschloen! Den eropgeluedene Fichier ass kee gëltege Message oder kee Mailbox-Fichier.';
$messages['opnotpermitted'] = 'Operatioun net zougelooss!';
$messages['nofromaddress'] = 'An der ausgewieltener Identitéit feelt d\'E-Mail-Adress.';
$messages['editorwarning'] = 'Den Editor-Typ ze wiessele kann de Verloscht vun Textformatéierunge verursaachen. Wëlls du weidermaachen?';
$messages['httpreceivedencrypterror'] = 'E fatale Konfiguratiouns-Feeler ass opgetrueden. Kontaktéier w.e.gl. den Administrator esou séier ewéi méiglech. <b>Däi Message kann net geschéckt ginn.</b> ';
$messages['smtpconnerror'] = 'SMTP-Feeler ($code): Et konnt keng Verbindung mam Server hirgestallt ginn.';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'SMTP-Feeler ($code): Den Empfänger "$to" konnt net dobäigesat ginn ($msg).';
$messages['smtprecipientserror'] = 'SMTP-Feeler: D\'Empfänger-Lëscht kann net verschafft ginn.';
$messages['smtperror'] = 'SMTP-Feeler: $msg';
$messages['emailformaterror'] = 'Ongëlteg E-Mail-Adress: $email';
$messages['toomanyrecipients'] = 'Zevill Empfänger. Reduzéier d\'Zuel vun den Empfänger op $max.';
$messages['maxgroupmembersreached'] = 'D\'Unzuel vu Gruppememberen iwwersteigt de Maximum vun $max.';
$messages['internalerror'] = 'En interne Feeler ass opgetrueden. Probéier w.e.gl nach eng Kéier.';
program/localization/lv_LV/labels.inc
@@ -122,11 +122,11 @@
$labels['backtolist']       = 'Atpakaļ uz vēstuļu sarakstu';
$labels['viewsource']       = 'Parādīt pirmtekstu';
$labels['mark']             = 'Atzīmēt';
$labels['markmessages']     = 'Atzīmēt vēstules kā:';
$labels['markread']         = 'Kā lasītas';
$labels['markunread']       = 'Kā nelasītas';
$labels['markflagged']      = 'Kā atīmētas';
$labels['markunflagged']    = 'Kā neatzīmētas';
$labels['markmessages']     = 'Atzīmēt vēstules:';
$labels['markread']         = 'kā lasītas';
$labels['markunread']       = 'kā nelasītas';
$labels['markflagged']      = 'kā atīmētas';
$labels['markunflagged']    = 'kā neatzīmētas';
$labels['moreactions']      = 'Papildus darbības...';
$labels['more']             = 'Vairāk';
$labels['back']             = 'Atpakaļ';
program/localization/mk_MK/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Одговорот се снима...';
$messages['deleteresponseconfirm'] = 'Избриши го одговорот?';
$messages['addedsuccessfully'] = 'Името е успешно додадено во Именикот';
$messages['contactexists'] = 'Веќе постои име со зададената Е-поштенска адреса';
$messages['contactnameexists'] = 'Контакт со истото име веќе постои.';
$messages['blockedimages'] = 'За да се заштити вашата приватност, сликите во оваа порака не се прикажани.';
$messages['encryptedmessage'] = 'Оваа порака е кодирана и не може да се прикаже. Жалиме!';
@@ -77,7 +76,6 @@
$messages['noemailwarning'] = 'Внесете валидна е-поштенска адреса';
$messages['nonamewarning']  = 'Внесете име';
$messages['nopagesizewarning'] = 'Внесете големина на страницата';
$messages['nosenderwarning'] = 'Внесете адреса на праќачот';
$messages['norecipientwarning'] = 'Внесете барем еден примач';
$messages['nosubjectwarning']  = 'Немате внесено „Наслов“. Дали сакате да внесете?';
$messages['nobodywarning'] = 'Писмото нема текст во него. Дали сакате да го испратите?';
@@ -108,7 +106,6 @@
$messages['importwait'] = 'Убезувам,, почекајте...';
$messages['importconfirm'] = '<b>Успешно се увезени $inserted имиња, $skipped веќе постојат и се прескокнати</b>:<p><em>$names</em></p>';
$messages['opnotpermitted'] = 'Операцијата не е дозволена';
$messages['nofromaddress'] = 'Не е внесена е-пошта во одберениот идентитет';
$messages['httpreceivedencrypterror'] = 'Се појави фатална конфигурациска грешка. Веднаш контактирајте го администраторот. <b>Вашето писмо не мож.</b>';
$messages['smtpconnerror'] = 'SMTP грешка ($code): Не успеав да се поврзам со серверот';
$messages['smtpautherror'] = 'SMTP грешка: Не успееа потврдувањето';
@@ -116,4 +113,3 @@
$messages['smtptoerror'] = 'SMTP грешка ($code): Не успеав да го поставам примачот „$yo“ ($msg)';
$messages['smtprecipientserror'] = 'SMTP грешка: Не успеав да ја испарсирам листата на примачи';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Неправилна поштенска адреса: $email';
program/localization/mr_IN/messages.inc
@@ -38,7 +38,6 @@
$messages['messagesaved'] = 'संदेश मसुदा फोल्डरमधे ठेवत आहे';
$messages['successfullysaved'] = 'यशस्वीरित्या ठेवला';
$messages['addedsuccessfully'] = 'नवीन नाव पत्तां नोंदवहीत व्यवस्थित ठेवला';
$messages['contactexists'] = 'हा इमेल पत्ता नोंदवहीत आधिच आहे.';
$messages['contactnameexists'] = 'सारख्या नावाची नोंद आधीच आहे';
$messages['blockedimages'] = 'तुमची गोपनीयता पाळण्यासाठी या संदेशातील दुसर्‍या सर्व्हरवरील चित्रे दिसणे थांबवले आहे.';
$messages['encryptedmessage'] = 'हा गुप्त व सांकेतिक संदेश आहे. तो तुम्हाला असा दाखवता येणार नाही.';
@@ -61,7 +60,6 @@
$messages['noemailwarning'] = 'योग्य, बरोबर, आणि वैध इमेल पत्ता द्या.';
$messages['nonamewarning']  = 'नाव द्या';
$messages['nopagesizewarning'] = 'पानाचा आकार द्या';
$messages['nosenderwarning'] = 'पाठवणार्‍याचा इमेल पत्ता द्या';
$messages['norecipientwarning'] = 'किमान एकतरी पत्ता द्या ज्यांना तुम्हाला संदेश पाठवावयाचा आहे.';
$messages['nosubjectwarning']  = 'विषय दिलेला नाही. तुम्हाला विषय द्यायचा आहे का?';
$messages['nobodywarning'] = 'संदेशामधे कोणताही मजकूर नाही. तुम्हाला तसाच संदेश पाठवावयाचा आहे का?';
@@ -98,7 +96,6 @@
$messages['importwait'] = 'आयात करत आहे, कृपया वाट पहा.....';
$messages['importconfirm'] = '<b>$inserted पत्ते यशस्वीरित्या आयात केल, $skipped आधिच असलेल्या नोंदी केल्या नाहीत</b>:<p><em>$names</em></p>';
$messages['opnotpermitted'] = 'ही क्रिया करण्यास परवानगी नाही.';
$messages['nofromaddress'] = 'निवडलेल्या खात्यात इमेल पत्ता दिलेला नाही.';
$messages['httpreceivedencrypterror'] = 'हानीकारक चूक झाली. व्‍यवस्‍थापकाशी तात्‍काळ संपर्क साधा. <b> तुमचा संदेश पाठवला नाही </b>';
$messages['smtpconnerror'] = 'SMTP चूक ($code): सर्व्‍हरशी संपर्क साधता येत नाही';
$messages['smtpautherror'] = 'SMTP चूक ($code): ओळख पटवता येत नाही';
@@ -106,6 +103,5 @@
$messages['smtptoerror'] = 'SMTP चूक ($code): प्राप्‍तकर्ता "$to" टाकता आला नाही';
$messages['smtprecipientserror'] = 'SMTP चूक : प्राप्‍तकर्त्‍यांची यादी चालू करता आली नाही';
$messages['smtperror'] = 'SMTP चूक : $msg';
$messages['emailformaterror'] = 'अवैध ईमेल पत्‍ता : $email';
$messages['toomanyrecipients'] = 'खूप जास्‍त प्राप्‍तकर्ते. प्राप्‍तकर्त्‍यांची संख्‍या $max पर्यंत कमी करा';
$messages['maxgroupmembersreached'] = 'गट सभासद संख्‍या $max पेक्षा जास्‍त झाली आहे';
program/localization/ms_MY/messages.inc
@@ -30,7 +30,6 @@
$messages['messagesaved'] = 'Mesej disimpan dalam Draf';
$messages['successfullysaved'] = 'Berjaya disimpan';
$messages['addedsuccessfully'] = 'Kontek berjaya disimpan ke dalam buku alamat';
$messages['contactexists'] = 'Kontek dengan alamat emel ini sudah wujud';
$messages['blockedimages'] = 'Untuk melindungi kebesasan peribadi anda, imej jauh dihalang dalam mesej ini.';
$messages['encryptedmessage'] = 'Ini adalah mesej yang di\'encrypted\' dan tidak boleh dipamerkan. Maaf!';
$messages['nocontactsfound'] = 'Tiada kontek dijumpai';
program/localization/nb_NO/messages.inc
@@ -48,7 +48,6 @@
$messages['savingresponse'] = 'Lagrer svartekst...';
$messages['deleteresponseconfirm'] = 'Vil du virkelig å slette denne svarteksten?';
$messages['addedsuccessfully'] = 'Kontakten ble lagt til i adresseboken';
$messages['contactexists'] = 'Det finnes allerede en kontakt med denne e-postadressen';
$messages['contactnameexists'] = 'Det finnes allerede en kontakt med dette navnet';
$messages['blockedimages'] = 'Av sikkerhetsgrunner er bilder lagret på eksterne servere blokkert fra denne e-postmeldingen';
$messages['encryptedmessage'] = 'Dette er en kryptert melding som ikke kan vises. Beklager!';
@@ -78,7 +77,6 @@
$messages['noemailwarning'] = 'Vennligst oppgi en gyldig epostadresse.';
$messages['nonamewarning']  = 'Angi et navn';
$messages['nopagesizewarning'] = 'Angi sidestørrelsen';
$messages['nosenderwarning'] = 'Vennligst angi avsenderadresse';
$messages['norecipientwarning'] = 'Skriv inn minst én mottaker';
$messages['nosubjectwarning']  = 'Emnefeltet er tomt. Vil du skrive det inn nå?';
$messages['nobodywarning'] = 'Send denne meldingen uten tekst?';
@@ -134,7 +132,6 @@
$messages['importmessagesuccess'] = 'Kopierte $nr meldinger';
$messages['importmessageerror'] = 'Importeringen var mislykket! Den opplastede filen er ikke en gyldig melding, eller er ikke kompatibel med meldingssystemet.';
$messages['opnotpermitted'] = 'Handling ikke tillatt!';
$messages['nofromaddress'] = 'E-postadresse mangler i valgt identitet';
$messages['httpreceivedencrypterror'] = 'En uopprettelig feil oppsto. Vennligst kontakt systemansvarlig umiddelbart. <b>Din melding kunne ikke sendes.</b>';
$messages['smtpconnerror'] = 'SMTP-feil ($code): Klarte ikke koble til server';
$messages['smtpautherror'] = 'SMTP-feil ($code): Pålogging feilet';
@@ -142,7 +139,6 @@
$messages['smtptoerror'] = 'SMTP-feil ($code): Kunne ikke legge til mottaker "$to" ($msg)';
$messages['smtprecipientserror'] = 'SMTP-feil ($code): Kunne ikke lese mottakerliste';
$messages['smtperror'] = 'SMTP-feil ($code): $msg';
$messages['emailformaterror'] = 'Ukorrekt e-postadresse: $email';
$messages['toomanyrecipients'] = 'For mange mottakere. Reduser antall mottakere til $max.';
$messages['maxgroupmembersreached'] = 'Antall gruppemedlemmer overskrider maksgrensen på $max';
$messages['internalerror'] = 'En intern feil har oppstått, prøv igjen senere.';
program/localization/ne_NP/messages.inc
@@ -30,7 +30,6 @@
$messages['messagesaved'] = 'मेल ड्राफ्ट फोल्डरमा जोगाईयो';
$messages['successfullysaved'] = 'सफल्तापूर्वक जोगाईयो';
$messages['addedsuccessfully'] = 'सम्पर्क पुस्तिकामा सफल्तापूर्वक सम्पर्क प्रविष्ट गारियो';
$messages['contactexists'] = 'यो ई-मेल पहिलै लिईसकिएको छ';
$messages['blockedimages'] = 'तपाईको प्राईवेसी को लागि तथा अन्य स्पामबाट बच्नकोलागि यो मेलमा चित्रहुरु देखाईएका छैनन्।';
$messages['encryptedmessage'] = 'माफ गर्नुहोसे, यो मेल ईन्क्रिफ्ट गरिएको रूपमा छ, त्यसैले देखाउन सकिदैन!';
$messages['nocontactsfound'] = 'कुनै सम्पर्क भेटिएन';
program/localization/nl_BE/messages.inc
@@ -52,7 +52,6 @@
$messages['savingresponse'] = 'Respons tekst wordt bewaard...';
$messages['deleteresponseconfirm'] = 'Bent u zeker dat u deze respons tekst wilt verwijderen?';
$messages['addedsuccessfully'] = 'Contactpersoon is toegevoegd.';
$messages['contactexists'] = 'Er bestaat reeds een contactpersoon met dit e-mailadres.';
$messages['contactnameexists'] = 'Er bestaat al een contactpersoon met deze naam.';
$messages['blockedimages'] = 'Om uw privacy te beschermen worden de afbeeldingen in dit bericht niet getoond.';
$messages['encryptedmessage'] = 'Dit bericht is geëncrypteerd en kan niet worden weergegeven, sorry!';
@@ -85,7 +84,6 @@
$messages['noemailwarning'] = 'Geef een geldig e-mailadres op.';
$messages['nonamewarning']  = 'Geef een naam op.';
$messages['nopagesizewarning'] = 'Geef een geldig aantal berichten per pagina op.';
$messages['nosenderwarning'] = 'Geef een e-mailadres van de afzender op.';
$messages['norecipientwarning'] = 'Geef minstens één bestemmeling op.';
$messages['nosubjectwarning']  = 'Geen onderwerp opgegeven. Wenst u alsnog een onderwerp te geven?';
$messages['nobodywarning'] = 'Wilt u dit lege bericht versturen?';
@@ -142,7 +140,6 @@
$messages['importmessagesuccess'] = '$nr adressen met succes geïmporteerd.';
$messages['importmessageerror'] = 'Importeren mislukt! Het geüploade bestand is geen geldig bericht of mailbox bestand.';
$messages['opnotpermitted'] = 'Deze actie is niet toegestaan!';
$messages['nofromaddress'] = 'De geselecteerde identiteit bevat geen emailadres.';
$messages['httpreceivedencrypterror'] = 'Er is een fatale fout opgetreden. Neem direct contact op met uw systeembeheerder. <b>Uw bericht kon niet worden verzonden.</b>';
$messages['smtpconnerror'] = 'SMTP Fout ($code): Verbinding met server mislukt.';
$messages['smtpautherror'] = 'SMTP Fout ($code): Authenticatie mislukt.';
@@ -150,7 +147,6 @@
$messages['smtptoerror'] = 'SMTP Fout ($code): Kon ontvanger "$to" niet toevoegen ($msg).';
$messages['smtprecipientserror'] = 'SMTP Fout: Kon lijst van ontvangers niet verwerken.';
$messages['smtperror'] = 'SMTP Fout: $msg';
$messages['emailformaterror'] = 'Ongeldig e-mailadres: $email';
$messages['toomanyrecipients'] = 'Te veel geadresseerden. Verminder de hoeveelheid geadresseerden tot $max.';
$messages['maxgroupmembersreached'] = 'Het aantal leden van de groep groter is dan de maximale van $max.';
$messages['internalerror'] = 'Er is een interne fout opgetreden. Probeer het later opnieuw.';
program/localization/nl_NL/labels.inc
@@ -200,7 +200,7 @@
$labels['searchinterval-1Y'] = 'ouder dan een jaar';
$labels['searchinterval1W'] = 'nieuwer dan een week';
$labels['searchinterval1M'] = 'nieuwer dan een maand';
$labels['searchinterval1Y'] = 'jonger dan een jaar';
$labels['searchinterval1Y'] = 'nieuwer dan een jaar';
$labels['openinextwin'] = 'Openen in een nieuw venster';
$labels['emlsave'] = 'Opslaan (.eml)';
$labels['changeformattext'] = 'Weergeven als platte tekst';
program/localization/nl_NL/messages.inc
@@ -52,7 +52,7 @@
$messages['savingresponse'] = 'Reactie wordt opgeslagen...';
$messages['deleteresponseconfirm'] = 'Weet u zeker dat u deze reactie wilt verwijderen?';
$messages['addedsuccessfully'] = 'Contactpersoon succesvol toegevoegd aan het adresboek.';
$messages['contactexists'] = 'Er bestaat al een contactpersoon met dit e-mailadres.';
$messages['contactexists'] = 'Er bestaat al een contactpersoon met hetzelfde e-mailadres.';
$messages['contactnameexists'] = 'Er bestaat al een contactpersoon met deze naam.';
$messages['blockedimages'] = 'Om uw privacy te beschermen zijn externe afbeeldingen geblokkeerd in dit bericht.';
$messages['encryptedmessage'] = 'Dit is een versleuteld bericht en kan niet weergegeven worden. Excuses!';
@@ -90,7 +90,7 @@
$messages['noemailwarning'] = 'Geef een geldig e-mailadres op.';
$messages['nonamewarning']  = 'Vul een naam in.';
$messages['nopagesizewarning'] = 'Geef een paginagrootte op.';
$messages['nosenderwarning'] = 'Geef een e-mailadres van de afzender op.';
$messages['nosenderwarning'] = 'Voer een e-mailadres van de afzender in.';
$messages['norecipientwarning'] = 'Geef tenminste één ontvanger op.';
$messages['nosubjectwarning']  = 'U heeft geen onderwerp ingevoerd. Wilt u nu een onderwerp opgeven?';
$messages['nobodywarning'] = 'Dit bericht zonder inhoud versturen?';
@@ -148,7 +148,7 @@
$messages['importmessagesuccess'] = '$nr berichten succesvol geïmporteerd';
$messages['importmessageerror'] = 'Importeren mislukt! Het verstuurde bestand is geen geldig bericht of mailboxbestand';
$messages['opnotpermitted'] = 'Deze bewerking is niet toegestaan!';
$messages['nofromaddress'] = 'Het e-mailadres ontbreekt in de geselecteerde identiteit.';
$messages['nofromaddress'] = 'E-mailadres ontbreekt in geselecteerde identiteit.';
$messages['editorwarning'] = 'Door te wisselen van type tekstverwerker kan er opmaak verloren gaan. Weet u zeker dat u verder wilt gaan?';
$messages['httpreceivedencrypterror'] = 'Er is een onherstelbare configuratiefout opgetreden. Neem direct contact op met uw systeembeheerder. <b>Uw bericht kon niet worden verzonden.</b>';
$messages['smtpconnerror'] = 'SMTP-fout ($code): Verbinding met server mislukt.';
program/localization/nn_NO/messages.inc
@@ -42,7 +42,6 @@
$messages['messagesaved'] = 'Melding lagra som kladd.';
$messages['successfullysaved'] = 'Meldinga vart lagra.';
$messages['addedsuccessfully'] = 'Kontakta vart lagt til i adresseboka.';
$messages['contactexists'] = 'Ei kontakt med denne e-postadressa finst frå før.';
$messages['contactnameexists'] = 'Det finst allereie en kontakt med dette namnet.';
$messages['blockedimages'] = 'Av omsyn til personvernet ditt er eksterne bilete blokkerte i denne meldinga.';
$messages['encryptedmessage'] = 'Dette er ei kryptert melding og kan ikkje visast. Orsak!';
@@ -70,7 +69,6 @@
$messages['noemailwarning'] = 'Skriv ei gyldig e-postadresse.';
$messages['nonamewarning']  = 'Skriv eit namn.';
$messages['nopagesizewarning'] = 'Oppgje sidestorleik.';
$messages['nosenderwarning'] = 'Skriv inn avsendar si e-postadresse';
$messages['norecipientwarning'] = 'Skriv minst ein mottakar.';
$messages['nosubjectwarning']  = 'Emnefeltet er tomt. Vil du skriva eitt emne no?';
$messages['nobodywarning'] = 'Senda meldinga utan tekst?';
@@ -118,7 +116,6 @@
$messages['importconfirm'] = '<b>Importerte $inserted kontaktar</b>';
$messages['importconfirmskipped'] = '<b>Hoppa over $skipped oppføringar som fanst frå før</b>';
$messages['opnotpermitted'] = 'Ulovleg operasjon.';
$messages['nofromaddress'] = 'Manglar e-postadresse i denne identiteten.';
$messages['httpreceivedencrypterror'] = 'En uopprettelig feil oppstod knytta til innstillingane. Kontakt systemansvarleg umiddelbart. <b>Meldinga kunne ikkje sendast.</b>';
$messages['smtpconnerror'] = 'SMTP-feil ($code): Tilkopling til tenar feila.';
$messages['smtpautherror'] = 'SMTP-feil ($code): Autentisering feila.';
@@ -126,7 +123,6 @@
$messages['smtptoerror'] = 'SMTP-feil ($code): Klarte ikkje å leggja til mottakar «$to» ($msg).';
$messages['smtprecipientserror'] = 'SMTP-feil: Klarte ikkje tolka mottakarlista.';
$messages['smtperror'] = 'SMTP-feil: $msg';
$messages['emailformaterror'] = 'Ugyldig e-postadresse: $email';
$messages['toomanyrecipients'] = 'For mange mottakarar. Senk talet til $max.';
$messages['maxgroupmembersreached'] = 'Ei gruppe kan ikkje ha fleire enn $max medlemmer.';
$messages['contactdelerror'] = 'Klarte ikkje sletta kontakt(ar).';
program/localization/pl_PL/labels.inc
@@ -198,9 +198,9 @@
$labels['searchinterval-1W'] = 'starsza niż tydzień';
$labels['searchinterval-1M'] = 'starsza niż miesiąc';
$labels['searchinterval-1Y'] = 'starsza niż rok';
$labels['searchinterval1W'] = 'wcześniejsza niż tydzień';
$labels['searchinterval1M'] = 'wcześniejsza niż miesiąc';
$labels['searchinterval1Y'] = 'wcześniejsza niż rok';
$labels['searchinterval1W'] = 'młodsza niż tydzień';
$labels['searchinterval1M'] = 'młodsza niż miesiąc';
$labels['searchinterval1Y'] = 'młodsza niż rok';
$labels['openinextwin'] = 'Otwórz w nowym oknie';
$labels['emlsave'] = 'Pobierz (.eml)';
$labels['changeformattext'] = 'Wyświetl w formacie tekstowym';
program/localization/pl_PL/messages.inc
@@ -90,7 +90,7 @@
$messages['noemailwarning'] = 'Podaj poprawny adres e-mail!';
$messages['nonamewarning']  = 'Podaj nazwę!';
$messages['nopagesizewarning'] = 'Podaj poprawną wartość!';
$messages['nosenderwarning'] = 'Podaj adres nadawcy!';
$messages['nosenderwarning'] = 'Podaj adres e-mail nadawcy!';
$messages['norecipientwarning'] = 'Podaj co najmniej jednego odbiorcę!';
$messages['nosubjectwarning']  = 'Nie podano tematu wiadomości. Czy chcesz go teraz uzupełnić?';
$messages['nobodywarning'] = 'Ta wiadomość jest pusta, czy mimo to chcesz ją wysłać?';
program/localization/ps/messages.inc
@@ -30,7 +30,6 @@
$messages['messagesaved'] = 'استوزه په بارليک کې خوندي شوه';
$messages['successfullysaved'] = 'په بري‌سره خوندي شوه';
$messages['addedsuccessfully'] = 'اړيکلوری په بري سره پتې کتاب ته ور زيات شو';
$messages['contactexists'] = 'يو اړيکلوری له دې برېښناليک پتې سره شتون لري';
$messages['blockedimages'] = 'ستاسو د پټتيآ خوندي کېدو لپاره ، له لري انځورنه په دې استوزي‌کې بند کړئ';
$messages['encryptedmessage'] = 'دا يوه پټه استوزه ده او نه څرګندېږي. بښنه غواړو';
$messages['nocontactsfound'] = 'هېڅ اړيکلوری يې ونه موند';
@@ -49,7 +48,6 @@
$messages['noemailwarning'] = 'مهرباني وکړئ د يوه شته برېښناليک پته ورځای کړئ';
$messages['nonamewarning']  = 'مهرباني‌وکړئ يو نوم وليکئ';
$messages['nopagesizewarning'] = 'مهرباني‌وکړئ د پاڼې کچه ورکړئ';
$messages['nosenderwarning'] = 'مهرباني وکړئ د استول شوي برېښناليک پته وليکئ';
$messages['norecipientwarning'] = 'مهرباني‌وکړئ لږ تر لږه يو ترلاسه کوونکی وليکئ';
$messages['nosubjectwarning']  = 'د مضمون ډګر تش دی يا تاسو غواړئ چې همدا اوس يو له هغو څخه وليکئ';
$messages['nobodywarning'] = 'دا استوزه پرته له متن څخه استوئ؟';
@@ -79,4 +77,3 @@
$messages['importwait'] = 'نقلوي...صبر وکړئ';
$messages['importconfirm'] = '<b>په بشپړه توګه نقل شو $اړيکلوري داخل شول, $شته تيرشوي انټاير څخه تيرشول</b>:<p><em>$نومونه</em></p>';
$messages['opnotpermitted'] = 'چار اجازه نه لري';
$messages['nofromaddress'] = 'په ټاکل شوي پيژندنه کې برېښناليک پتې له لاسه ورکړي';
program/localization/ro_RO/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Se salvează textul pentru răspuns...';
$messages['deleteresponseconfirm'] = 'Chiar vrei să ștergi acest text pentru răspuns?';
$messages['addedsuccessfully'] = 'Contactul a fost adăugat cu succes în agendă';
$messages['contactexists'] = 'Un contact cu această adresă de e-mail există deja.';
$messages['contactnameexists'] = 'Există deja un contact cu acelaşi nume.';
$messages['blockedimages'] = 'Pentru a vă proteja intimitatea, imaginile externe au fost blocate.';
$messages['encryptedmessage'] = 'Acesta este un mesaj criptat şi nu poate fi afişat. Ne pare rău.';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Vă rugăm să introduceţi o adresă de e-mail validă';
$messages['nonamewarning']  = 'Vă rugăm să introduceţi un nume';
$messages['nopagesizewarning'] = 'Vă rugăm să introduceţi mărimea paginii';
$messages['nosenderwarning'] = 'Vă rugăm să introduceţi adresa expeditorului';
$messages['norecipientwarning'] = 'Vă rugăm să introduceţi cel puţin un destinatar';
$messages['nosubjectwarning']  = 'Mesajul nu are subiect. Vreţi să introduceţi unul acum?';
$messages['nobodywarning'] = 'Trimiteţi acest mesaj fără text?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = 'Am importat cu succes $nr mesaje.';
$messages['importmessageerror'] = 'Importarea a esuat. Fisierul incarca nu este un mesaj valid pentru email.';
$messages['opnotpermitted'] = 'Operaţiunea nu este permisă!';
$messages['nofromaddress'] = 'Nu există o adresă de e-mail în identitatea selectată';
$messages['editorwarning'] = 'Trecerea în mod text a editorului va cauza pierderea formatării textului. Doriţi să continuaţi?';
$messages['httpreceivedencrypterror'] = 'Vă rugăm să luaţi legătura cu administratorul serverului de mail, deoarece există o eroare în configuraţia acestuia. <b>Mesajul d-voastră nu a fost trimis.</b>';
$messages['smtpconnerror'] = 'Eroare SMTP ($code): Conexiunea cu serverul a eşuat';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Eroare SMTP ($code): Nu s-a putut adăuga destinatarul "$to" ($msg)';
$messages['smtprecipientserror'] = 'Eroare SMTP: Nu s-a putut procesa lista cu destinatari';
$messages['smtperror'] = 'Eroare SMTP: $msg';
$messages['emailformaterror'] = 'Adresă de e-mail incorectă: $email';
$messages['toomanyrecipients'] = 'Prea mulţi destinatari. Reduceţi numărul de destinatari la $max.';
$messages['maxgroupmembersreached'] = 'Numărul de membri ai grupului depăşeşte maximul de $max.';
$messages['internalerror'] = 'A avut loc o eroare internă. Te rog încearcă din nou.';
program/localization/si_LK/messages.inc
@@ -31,7 +31,6 @@
$messages['messagesaved'] = 'පනිවුඩය කටු සටහනේ තැන්පත් විය';
$messages['successfullysaved'] = 'සුරැකීම සාර්ථකයි.';
$messages['addedsuccessfully'] = 'ලිපිනය සාර්ථකව ලිපින පොතට එකතු කරන ලදී.';
$messages['contactexists'] = 'ඉහත ලිපිනය සහිත විද්යුත් තැපැල් ලිපිනයක් ලිපින පොතේ ඇත.';
$messages['blockedimages'] = 'ඔබගෙ පොද්ගලිකත්වය හේතුවෙන්, දුරස්ථ රූප අවහිර කර ඇත.';
$messages['encryptedmessage'] = 'මෙම පනිවුඩය රහස් කේතනය කර ඇති බැවින් පෙන්විය නොහැක. සමාවන්න!';
$messages['nocontactsfound'] = 'ලිපින සොයා ගත නොහැක';
@@ -77,7 +76,6 @@
$messages['errorsendingreceipt'] = 'කියවීම් භාර ගැනීම යැවීමට නොහැක';
$messages['nodeletelastidentity'] = 'අවසාන අනන්‍යතාවය මකා දැමිය නොහැක';
$messages['importwait'] = 'ආනයනය කරමින්, කරුණාකර රැදී සිටින්න...';
$messages['emailformaterror'] = 'අවලංගු විද්‍යුත් තැපැල් ලිපිනය: $email';
$messages['messagedeleted'] = 'පණිවිඩ(ය) මකා දැමීම සාර්ථකයි.';
$messages['messagemoved'] = 'පණිවිඩ(ය) ගෙනයෑම සාර්ථකයි.';
$messages['messagecopied'] = 'පණිවිඩ(ය) පිටපත් කිරීම සාර්ථකයි.';
program/localization/sk_SK/messages.inc
@@ -52,7 +52,7 @@
$messages['savingresponse'] = 'Ukladanie textu odpovede...';
$messages['deleteresponseconfirm'] = 'Naozaj chcete vymazať text odpovede?';
$messages['addedsuccessfully'] = 'Kontakt bol pridaný do adresára.';
$messages['contactexists'] = 'Kontakt s touto e-mailovou adresou už existuje.';
$messages['contactexists'] = 'Kontakt s takouto e-mailovou adresou už existuje.';
$messages['contactnameexists'] = 'Kontakt s takýmto menom už existuje.';
$messages['blockedimages'] = 'Kvôli ochrane vášho súkromia boli v tejto správe zablokované vzdialené obrázky.';
$messages['encryptedmessage'] = 'Táto správa je zašifrovaná, a nie je možné ju zobraziť. Prepáčte!';
@@ -90,7 +90,7 @@
$messages['noemailwarning'] = 'Prosím zadajte platnú e-mailovú adresu.';
$messages['nonamewarning']  = 'Prosím zadajte meno.';
$messages['nopagesizewarning'] = 'Prosím zadajte počet záznamov na stranu.';
$messages['nosenderwarning'] = 'Prosím zadajte adresu odosielateľa.';
$messages['nosenderwarning'] = 'Prosím zadajte e-mailovú adresu odosielateľa.';
$messages['norecipientwarning'] = 'Prosím zadajte aspoň jedného príjemcu.';
$messages['nosubjectwarning']  = '"Predmet" správy je prázdny. Chcete ho teraz zadať?';
$messages['nobodywarning'] = 'Chcete odoslať správu bez textu?';
@@ -148,7 +148,7 @@
$messages['importmessagesuccess'] = 'Počet úspešne naimportovaných správ: $nr';
$messages['importmessageerror'] = 'Importovanie bolo neúspešné! Odoslaný súbor nie je platným súborom pre importovanie';
$messages['opnotpermitted'] = 'Táto operácia nie je povolená!';
$messages['nofromaddress'] = 'Pri vybranej identite chýba e-mailová adresa.';
$messages['nofromaddress'] = 'Vo vybranej identite chýba e-mailová adresa.';
$messages['editorwarning'] = 'Prepnutie druhu editora môže spôsobiť stratu formátovania. Naozaj chcete pokračovať?';
$messages['httpreceivedencrypterror'] = 'Vyskytla sa vážna chyba v konfigurácii. Ihneď kontaktujte administrátora. <b>Vašu správu nemožno odoslať.</b>';
$messages['smtpconnerror'] = 'Chyba SMTP ($code): Neúspešné pripojenie k serveru.';
program/localization/sl_SI/messages.inc
@@ -48,7 +48,6 @@
$messages['savingresponse'] = 'Shranjevanje odgovora...';
$messages['deleteresponseconfirm'] = 'Ste prepričani, da želite izbrisati ta odgovor?';
$messages['addedsuccessfully'] = 'Stik je bil uspešno dodan v imenik.';
$messages['contactexists'] = 'Stik s tem elektronskim naslovom že obstaja.';
$messages['contactnameexists'] = 'Stik s tem imenom že obstaja';
$messages['blockedimages'] = 'Zaradi zaščite zasebnosti je prikaz slik v sporočilu onemogočen.';
$messages['encryptedmessage'] = 'Sporočilo je šifrirano in ne more biti prikazano.';
@@ -78,7 +77,6 @@
$messages['noemailwarning'] = 'Vnesite veljaven elektronski naslov';
$messages['nonamewarning']  = 'Vnesite ime';
$messages['nopagesizewarning'] = 'Vnesite velikost strani';
$messages['nosenderwarning'] = 'Vnesite elektronski naslov pošiljatelja';
$messages['norecipientwarning'] = 'Vnesite vsaj enega prejemnika sporočila';
$messages['nosubjectwarning']  = 'Polje "Zadeva" je prazno. Želite dodati tekst v to polje?';
$messages['nobodywarning'] = 'Želite poslati sporočilo brez vsebine?';
@@ -134,7 +132,6 @@
$messages['importmessagesuccess'] = 'Upešno ste uvozili $nr sporočil.';
$messages['importmessageerror'] = 'Uvoz je spodletel. Naložena datoteka ni veljavno sporočilo ali poštna datoteka';
$messages['opnotpermitted'] = 'Operacija ni dovoljena.';
$messages['nofromaddress'] = 'V izbrani identiteti manjka elektronski naslov.';
$messages['httpreceivedencrypterror'] = 'Prišlo je do večje napake v konfiguraciji.Obrnite se na skrbnika sistema.  <b>Sporočila ni bilo mogoče poslati.</b>';
$messages['smtpconnerror'] = 'Napaka pri pošiljanju ($code): Povezava s strežnikom je spodletela';
$messages['smtpautherror'] = 'Napaka pri pošiljanju($code): Avtentikacija je spodletela';
@@ -142,7 +139,6 @@
$messages['smtptoerror'] = 'Napaka pri pošiljanju ($code): Neveljaven elektronski naslov prejemnika "$to" ($msg)';
$messages['smtprecipientserror'] = 'Napaka pri pošiljanju: Seznama prejemnikov ni bilo mogoče razčleniti';
$messages['smtperror'] = 'Napaka pri pošiljanju:$msg';
$messages['emailformaterror'] = 'Nepravilen elektronski naslov: $email';
$messages['toomanyrecipients'] = 'Navedli ste preveč prejemnikov. Zmanjšajte število prejemnikov na $max';
$messages['maxgroupmembersreached'] = 'Število članov skupine presega največje dovoljeno število $max.';
$messages['internalerror'] = 'Prišlo je do napake. Poskusite znova.';
program/localization/sq_AL/messages.inc
@@ -34,7 +34,6 @@
$messages['messagesaved'] = 'Mesazhi u ruajt te kutia Drafte';
$messages['successfullysaved'] = 'U ruajt me sukses';
$messages['addedsuccessfully'] = 'Kontakti u shtua me sukses në librin e adresave';
$messages['contactexists'] = 'Këtë adresë e-mail e ka një kontakt tjetër';
$messages['contactnameexists'] = 'Një kontakt me emrin e njëjtë tashmë ekziston.';
$messages['blockedimages'] = 'Për të mbrojtur fshehtësinë tuaj, imazhet e largëta të këtij mesazhi janë bllokuar.';
$messages['encryptedmessage'] = 'Ky është një mesazh i koduar dhe nuk mund te shfaqet. Më vjen keq!';
program/localization/sr_CS/messages.inc
@@ -51,7 +51,6 @@
$messages['savingresponse'] = 'Снимам текст одговора...';
$messages['deleteresponseconfirm'] = 'Заиста желите да обришете овај текст одговора?';
$messages['addedsuccessfully'] = 'Контакт успешно додат у адресар.';
$messages['contactexists'] = 'Контакт са истом е-адресом већ постоји.';
$messages['contactnameexists'] = 'Контакт са истим именом већ постоји.';
$messages['blockedimages'] = 'Због заштите приватности, слике са удаљених сервера су блокиране у овој поруци.';
$messages['encryptedmessage'] = 'Ова порука је шифрована и не може се приказати. Жао нам је!';
@@ -81,7 +80,6 @@
$messages['noemailwarning'] = 'Унесите исправну адресу е-поште.';
$messages['nonamewarning']  = 'Унесите име.';
$messages['nopagesizewarning'] = 'Унесите величину странице.';
$messages['nosenderwarning'] = 'Унесите е-адресу пошиљаоца.';
$messages['norecipientwarning'] = 'Унесите бар једног примаоца.';
$messages['nosubjectwarning']  = 'Поље „Наслов“ је празно. Желите ли да унесете наслов?';
$messages['nobodywarning'] = 'Да ли желите да пошаљете поруку без текста?';
@@ -139,7 +137,6 @@
$messages['importmessagesuccess'] = 'Успешно увезено $nr порука';
$messages['importmessageerror'] = 'Увоз није успео! Отпремљени фајл није исправан фајл порука или поштанског сандучета';
$messages['opnotpermitted'] = 'Радња није дозвољена!';
$messages['nofromaddress'] = 'У изабраном идентитету недостаје адреса е-поште.';
$messages['editorwarning'] = 'Пребацивање типа уређивача може узроковати губитак форматирања текста. Желите ли да наставите?';
$messages['httpreceivedencrypterror'] = 'Кобна грешка у постави. Контактирајте одмах вашег администратора. <b>Ваша порука се не може послати.</b>';
$messages['smtpconnerror'] = 'СМТП грешка ($code): неуспешно повезивање на сервер.';
@@ -148,7 +145,6 @@
$messages['smtptoerror'] = 'СМТП грешка ($code): неуспешно додавање примаоца "$to" ($msg)';
$messages['smtprecipientserror'] = 'СМТП грешка ($code): није могуће рашчланити листу прималаца.';
$messages['smtperror'] = 'СМТП грешка ($code): $msg';
$messages['emailformaterror'] = 'Неисправна е-адреса: $email';
$messages['toomanyrecipients'] = 'Превише прималаца. Смањите број прималаца на $max.';
$messages['maxgroupmembersreached'] = 'Број чланова групе прелази максимум од $max.';
$messages['internalerror'] = 'Десила се унутрашња грешка. ';
program/localization/sv_SE/messages.inc
@@ -148,7 +148,7 @@
$messages['importmessagesuccess'] = '$nr meddelanden har importerats';
$messages['importmessageerror'] = 'Importen misslyckades! Filen är inte ett giltigt meddelande eller en brevlåda';
$messages['opnotpermitted'] = 'Otillåten operation!';
$messages['nofromaddress'] = 'Adress saknas i den valda identiteten.';
$messages['nofromaddress'] = 'Vald identitet saknar adress.';
$messages['editorwarning'] = 'Genom att byta textredigerare kan formateringen av texten gå förlorad. Vill du fortsätta?';
$messages['httpreceivedencrypterror'] = 'Ett irreparabelt fel har uppstått. Kontakta administratören omgående. <b>Meddelandet kan inte skickas.</b>';
$messages['smtpconnerror'] = 'SMTP-fel ($code): Anslutning till servern misslyckades.';
@@ -157,7 +157,7 @@
$messages['smtptoerror'] = 'SMTP-fel ($code): Kan inte lägga till mottagaradress "$to" ($msg).';
$messages['smtprecipientserror'] = 'SMTP-fel: Felaktigt formaterad lista med mottagaradresser.';
$messages['smtperror'] = 'SMTP-fel: $msg';
$messages['emailformaterror'] = 'Felaktig adress: $email';
$messages['emailformaterror'] = 'Ogiltig adress: $email';
$messages['toomanyrecipients'] = 'Förmånga mottagare. Minska antalet till högst $max.';
$messages['maxgroupmembersreached'] = 'Antalet gruppmedlemmar får inte överstiga $max.';
$messages['internalerror'] = 'Ett internt fel uppstod. Försök igen.';
program/localization/ta_IN/messages.inc
@@ -36,7 +36,6 @@
$messages['messagesaved'] = 'செய்தி வரைவில் சேமிக்கப்பட்டது';
$messages['successfullysaved'] = 'வெற்றிகரமாக சேமிக்கப்பட்டது';
$messages['addedsuccessfully'] = 'தொடர்பு சேமிக்கப்பட்டது';
$messages['contactexists'] = 'இந்த மின்னஞ்சல் முகவரியுடன் ஒரு தொடர்பு ஏற்கனவே உள்ளது';
$messages['blockedimages'] = 'உங்கள் தனிப்பட்ட தகவலை பாதுகாக்க, தொலை தூரப் படங்கள் இந்த செய்தியில் தடுக்கப்பட்டது';
$messages['encryptedmessage'] = 'மன்னிக்கவும்! இந்த செய்தி குறிமுறையாக்கப்பட்டது அதனால் காட்ட முடியாது.';
$messages['nocontactsfound'] = 'எந்த தொடர்புகளும் காணப்படவில்லை';
@@ -56,7 +55,6 @@
$messages['noemailwarning'] = 'தயவு செய்து உண்மையான மின்னஞ்சலை எழுதுங்கள்';
$messages['nonamewarning']  = 'தயவு செய்து பெயரை எழுதுங்கள்';
$messages['nopagesizewarning'] = 'தயவு செய்து தாழின் அளவை எழுதுங்கள்';
$messages['nosenderwarning'] = 'தயவு செய்து ஒரு அனுப்புனரின் மின்னஞ்சல் முகவரியாவது எழுதுங்கள்';
$messages['norecipientwarning'] = 'தயவு செய்து ஒரு பெறுனரையாவது எழுதுங்கள்';
$messages['nosubjectwarning']  = 'தலைப்பு காலியாக உள்ளது. இப்போது எழுத விரும்புகிறீர்களா?';
$messages['nobodywarning'] = 'உரையில்லாமல் இந்த செய்தியை அனுப்ப வேண்டுமா?';
@@ -87,7 +85,6 @@
$messages['importwait'] = 'ஏற்றுகிறது, தயவு செய்து காத்திருங்கள்...';
$messages['importconfirm'] = '<b>வெற்றிகரமாக $inserted தொடர்புகள் ஏற்றப்பட்டது, ஏற்கனவே உள்ள $skipped தொடர்புகள் தவிர்க்கப்பட்டது</b>: <p><em>$names</em></p>';
$messages['opnotpermitted'] = 'பணி அனுமதிக்கப்படவில்லை!';
$messages['nofromaddress'] = 'நீங்கள் தேர்ந்தெடுத்த அடையாளத்தில் மின்னஞ்சல் இல்லை';
$messages['httpreceivedencrypterror'] = 'அமைப்பில் பெரிய பிழை ஏற்பட்டது. உங்கள் நிர்வாகியை உடனே தொடர்பு கொள்ளவும். <b>உங்கள் செய்தியை அனுப்ப முடியாது.</b>';
$messages['smtpconnerror'] = 'SMTP பிழை ($code): சேவையகத்தின் இணைப்பு தோல்வியடைந்தது';
$messages['smtpautherror'] = 'SMTP பிழை ($code): நம்பகத்தன்மை தோல்வியடைந்தது';
@@ -95,4 +92,3 @@
$messages['smtptoerror'] = 'SMTP பிழை ($code): "$to" பெறுனரை சேர்பதில் தோல்வி';
$messages['smtprecipientserror'] = 'SMTP பிழை : பெறுனர் பட்டியலை பிரிக்க முடியவில்லை';
$messages['smtperror'] = 'SMTP பிழை: $msg';
$messages['emailformaterror'] = 'தவறான மின்னஞ்சல் முகவரி: $email';
program/localization/th_TH/messages.inc
@@ -37,7 +37,6 @@
$messages['messagesaved'] = 'จดหมายถูกบันทึกเป็นจดหมายร่าง';
$messages['successfullysaved'] = 'บันทึกเรียบร้อยแล้ว';
$messages['addedsuccessfully'] = 'รายชื่อถูกบันทึกเรียบร้อยแล้ว';
$messages['contactexists'] = 'อีเมล์นี้มีอยู่แล้ว';
$messages['blockedimages'] = 'เพื่อปกป้องความส่วนตัว รูปจากภายนอกในจดหมายนี้จะถูกปิดบังไว้';
$messages['encryptedmessage'] = 'จดหมายถูกเข้ารหัสไม่สามารถแสดงผลได้';
$messages['nocontactsfound'] = 'ไม่พบรายชื่อที่ค้นหา';
program/localization/tr_TR/messages.inc
@@ -52,7 +52,7 @@
$messages['savingresponse'] = 'Yanıt metni kaydediliyor...';
$messages['deleteresponseconfirm'] = 'Yanıt metnini gerçekten silmek istiyor musunuz?';
$messages['addedsuccessfully'] = 'Kişi adres defterine eklendi';
$messages['contactexists'] = 'Rehberde bu e-posta adresine sahip biri zaten var';
$messages['contactexists'] = 'Rehberde bu e-posta adresine sahip biri zaten var.';
$messages['contactnameexists'] = 'Rehberde bu ada sahip biri zaten var.';
$messages['blockedimages'] = 'Kişisel gizliliğinizi korumak amacıyla postadaki resimler engellendi';
$messages['encryptedmessage'] = 'Bu şifrelenmiş bir posta olduğu için gösterilemiyor. Özür dilerim!';
@@ -90,7 +90,7 @@
$messages['noemailwarning'] = 'Lütfen geçerli bir e-posta adresi girin';
$messages['nonamewarning']  = 'Lütfen bir isim girin';
$messages['nopagesizewarning'] = 'Lütfen bir sayfa boyutu girin';
$messages['nosenderwarning'] = 'Lütfen gönderici e-posta adresini girin';
$messages['nosenderwarning'] = 'Lütfen gönderici e-posta adresi girin.';
$messages['norecipientwarning'] = 'Lütfen en az bir alıcı belirtin';
$messages['nosubjectwarning']  = '"Konu" kutusu boş bırakılmış. Şimdi bir konu belirtmek ister misiniz?';
$messages['nobodywarning'] = 'Postayı boş olarak gönder?';
@@ -148,7 +148,7 @@
$messages['importmessagesuccess'] = '$nr adet mesaj başarıyla içe aktarıldı';
$messages['importmessageerror'] = 'İçe aktarım başarısız. Yüklenen dosya geçerli bir içe aktarım dosyası değil.';
$messages['opnotpermitted'] = 'Bu işleme izin verilmedi!';
$messages['nofromaddress'] = 'Seçili kimlikte e-posta adresi yok';
$messages['nofromaddress'] = 'Seçilen kimliğin e-posta adresi yok.';
$messages['editorwarning'] = 'Editör tipini değiştirmek, metin biçimlendirmeyi kaybetmenize sebep olabilir. Devam etmek istiyor musunuz?';
$messages['httpreceivedencrypterror'] = 'Ayarlarda bir hata oluştu. Sistem yöneticinize haber verin. <b>Postanız gönderilemedi</b>';
$messages['smtpconnerror'] = 'SMTP Hatası ($code): Sunucuya bağlanılamadı';
@@ -157,7 +157,7 @@
$messages['smtptoerror'] = 'SMTP Hatası ($code): "$to" alıcısı eklenemedi ($msg)';
$messages['smtprecipientserror'] = 'SMTP Hatası: Posta alıcılarının listesi ayrıştırılamadı';
$messages['smtperror'] = 'SMTP Hatası: $msg';
$messages['emailformaterror'] = 'Hatalı e-posta adresi: $email';
$messages['emailformaterror'] = 'Geçersiz e-posta adresi: $email';
$messages['toomanyrecipients'] = 'Çok fazla alıcı. En fazla $max alıcı girebilirsiniz.';
$messages['maxgroupmembersreached'] = 'Grup üyelerinin sayısı $max sınırını aşıyor.';
$messages['internalerror'] = 'Dahili bir hata oluştu. Lütfen tekrar deneyin.';
program/localization/uk_UA/messages.inc
@@ -52,7 +52,6 @@
$messages['savingresponse'] = 'Збереження тексту відповіді...';
$messages['deleteresponseconfirm'] = 'Справді бажаєте видалити цей текст відповіді?';
$messages['addedsuccessfully'] = 'Контакт успішно доданий до адресної книги.';
$messages['contactexists'] = 'Контакт з такою електронною адресою вже існує';
$messages['contactnameexists'] = 'Контакт з таким самим іменем вже існує.';
$messages['blockedimages'] = 'Задля захисту Вашої приватності, зображення з зовнішніх джерел заблоковано у цьому листі.';
$messages['encryptedmessage'] = 'Лист зашифровано і не може бути відображено. Перепрошуємо!';
@@ -90,7 +89,6 @@
$messages['noemailwarning'] = 'Будь ласка, введіть коректну адресу електронної пошти';
$messages['nonamewarning']  = 'Будь ласка, введіть ім\'я';
$messages['nopagesizewarning'] = 'Будь ласка, введіть розмір сторінки';
$messages['nosenderwarning'] = 'Будь ласка, введіть адресу електронної пошти відправника';
$messages['norecipientwarning'] = 'Будь ласка, вкажіть принаймні одного отримувача';
$messages['nosubjectwarning']  = 'Не вказано тему листа. Бажаєте вказати її зараз?';
$messages['nobodywarning'] = 'Відправити листа без тексту?';
@@ -148,7 +146,6 @@
$messages['importmessagesuccess'] = 'Успішно імпортовано $nr повідомлень';
$messages['importmessageerror'] = 'Імпорт не вдався! Завантажений файл не є припустимим повідомленням чи файлом поштової скриньки';
$messages['opnotpermitted'] = 'Дія заборонена!';
$messages['nofromaddress'] = 'В обраному профілі не вистачає адреси електронної пошти';
$messages['editorwarning'] = 'Перемикання типу редактора може призвести до втрати форматування тексту. Хочете продовжити?';
$messages['httpreceivedencrypterror'] = 'Помилка конфігурації. Негайно зверніться до адміністратора. <b>Ваше повідомлення може бути відправлено.</b>';
$messages['smtpconnerror'] = 'Помилка SMTP-сервера ($code): Не вдалося з\'єднатися з сервером';
@@ -157,7 +154,6 @@
$messages['smtptoerror'] = 'Помилка SMTP-сервера ($code): Не вдалося додати отримувача "$to" ($msg)';
$messages['smtprecipientserror'] = 'Помилка SMTP: Не вдалося обробити список отримувачів';
$messages['smtperror'] = 'Помилка SMTP: $msg';
$messages['emailformaterror'] = 'Недійсна електронна адреса: $email';
$messages['toomanyrecipients'] = 'Забагато отримувачів. Зменшіть їх число до $max.';
$messages['maxgroupmembersreached'] = 'Число адрес у групі перевищило максимальні $max.';
$messages['internalerror'] = 'Виникла внутрішня помилка. Будь ласка, спробуйте ще раз.';
program/localization/vi_VN/messages.inc
@@ -50,7 +50,6 @@
$messages['savingresponse'] = 'Đang lưu thông tin...';
$messages['deleteresponseconfirm'] = 'Bạn có thực sự muốn xoá thông tin này?';
$messages['addedsuccessfully'] = 'Liên hệ đã được thêm vào sổ địa chỉ thành công.';
$messages['contactexists'] = 'Đã có một địa chỉ email này trong sổ địa chỉ.';
$messages['contactnameexists'] = 'Đã có một liên hệ có tên như thế này.';
$messages['blockedimages'] = 'Để bảo vệ tính riêng tư, chức năng hiện ảnh từ xa bị cấm trong thư này.';
$messages['encryptedmessage'] = 'Thư này được mã hóa, không thể xem. Rất tiếc!';
@@ -80,7 +79,6 @@
$messages['noemailwarning'] = 'Xin nhập địa chỉ email hợp lệ.';
$messages['nonamewarning']  = 'Xin nhập tên.';
$messages['nopagesizewarning'] = 'Xin nhập kích cỡ của trang.';
$messages['nosenderwarning'] = 'Xin nhập địa chỉ email người gửi';
$messages['norecipientwarning'] = 'Xin nhập it nhất 1 người nhận.';
$messages['nosubjectwarning']  = 'Mục "Tiêu đề" vẫn còn trống. Bạn có muốn nhập tiêu đề bây giờ không?';
$messages['nobodywarning'] = 'Gửi thư không có nội dung?';
@@ -137,7 +135,6 @@
$messages['importmessagesuccess'] = 'Đã nhập thành công $nr thư.';
$messages['importmessageerror'] = 'Nhập dữ liệu bị lỗi. Tệp tin vừa tải lên không có định dạng chính xác của tệp cấu hình hòm thư hoặc một thư đơn lẻ.';
$messages['opnotpermitted'] = 'Thao tác không được cho phép!';
$messages['nofromaddress'] = 'Địa chỉ email mất ở trong nhận dạng đã chọn';
$messages['editorwarning'] = 'Việc chuyển công cụ soạn thảo có thể làm mất định dạng dữ liệu. Bạn có muốn tiếp tục không?';
$messages['httpreceivedencrypterror'] = 'Xuất hiện một lỗi cấu hình  tai hại. Hãy liên hệ với người quản trị ngay. <b> Thư của bạn không thể gửi được </b>';
$messages['smtpconnerror'] = 'Lỗi SMTP ($code): Kết nỗi tới máy chủ bị lỗi.';
@@ -146,7 +143,6 @@
$messages['smtptoerror'] = 'Lỗi SMTP ($code):  Không thể bố trí người nhận "$to" ($msg).';
$messages['smtprecipientserror'] = 'Lỗi SMTP: không thể phân loại danh sách người nhận';
$messages['smtperror'] = 'Lỗi SMTP: $msg';
$messages['emailformaterror'] = 'Địa chỉ email không hợp lệ';
$messages['toomanyrecipients'] = 'Quá nhiều người nhận. Hãy giảm số lượng người nhận xuống tối đa là $max.';
$messages['maxgroupmembersreached'] = 'Số lượng thành viên trong nhóm vượt quá mức tối đa là $max.';
$messages['internalerror'] = 'Xuất hiện một lỗi nội bộ. Xin hãy thử lại';
program/localization/zh_CN/labels.inc
@@ -195,6 +195,12 @@
$labels['currentfolder'] = '当前文件夹';
$labels['subfolders'] = '当前文件夹及其子文件夹';
$labels['allfolders'] = '所有文件夹';
$labels['searchinterval-1W'] = '早于一周';
$labels['searchinterval-1M'] = '早于一个月';
$labels['searchinterval-1Y'] = '早于一年';
$labels['searchinterval1W'] = '不到一周';
$labels['searchinterval1M'] = '不到一个月';
$labels['searchinterval1Y'] = '不到一年';
$labels['openinextwin'] = '在新窗口中打开';
$labels['emlsave'] = '下载(.eml)';
$labels['changeformattext'] = '以文本格式显示';
@@ -214,6 +220,15 @@
$labels['addimage']       = '添加图片';
$labels['selectmedia']    = '选择影片';
$labels['addmedia']       = '添加影片';
$labels['encrypt']        = '加密';
$labels['encryptmessage'] = '加密邮件';
$labels['encryptmessagemailvelope'] = '用 Mailvelope 加密邮件';
$labels['importpubkeys']  = '导入公钥';
$labels['encryptedsendialog'] = '正在发送加密的邮件';
$labels['keyid']          = '密钥 ID';
$labels['keylength']      = '位';
$labels['keyexpired']     = '已过期';
$labels['keyrevoked']     = '已废除';
$labels['editidents']    = '编辑身份';
$labels['spellcheck']    = '拼写';
$labels['checkspelling'] = '拼写检查';
@@ -417,6 +432,7 @@
$labels['showremoteimages'] = '显示内嵌的图片';
$labels['fromknownsenders'] = '来自已知发件人';
$labels['always'] = '总是';
$labels['alwaysbutplain'] = '始终,除了回复纯文本';
$labels['showinlineimages'] = '在邮件下方显示附件中的图片';
$labels['autosavedraft']  = '自动保存到草稿箱';
$labels['everynminutes']  = '每隔 $n 分钟';
@@ -430,6 +446,7 @@
$labels['miscfolding'] = 'RFC 2047/2232(MS Outlook)';
$labels['2047folding'] = '完整的 RFC 2047(其它)';
$labels['force7bit'] = '对 8 位字符使用 MIME 编码';
$labels['savelocalstorage'] = "保存到浏览器的本地存储(临时)";
$labels['advancedoptions'] = '高级选项';
$labels['toggleadvancedoptions'] = '切换高级选项';
$labels['focusonnewmessage'] = '新邮件到达时将窗口提升为焦点窗口';
@@ -451,6 +468,8 @@
$labels['newmessageonly'] = '仅新邮件';
$labels['replyandforwardonly'] = '仅回复和转发邮件';
$labels['insertsignature'] = '插入签名';
$labels['sigbelow'] = '在引文的下方放置签名';
$labels['sigseparator'] = '强制标准的签名分隔符';
$labels['previewpanemarkread']  = '标记预览邮件为已读';
$labels['afternseconds']  = '$n 秒之后';
$labels['reqmdn'] = '总是要求回执';
@@ -494,6 +513,7 @@
$labels['otherfolder'] = '他人文件夹';
$labels['sharedfolder'] = '共享文件夹';
$labels['findfolders'] = '查找文件夹';
$labels['namespace.personal'] = '个人';
$labels['namespace.other'] = '其他用户';
$labels['namespace.shared'] = '已共享';
$labels['sortby'] = '排序';
@@ -537,6 +557,8 @@
$labels['arialabelcontactsearchform'] = '联系人查询表单';
$labels['arialabelmailquicksearchbox'] = '邮件查询条件';
$labels['arialabelquicksearchbox'] = '查询条件';
$labels['arialabelfoldersearchfilter'] = '文件夹列出过滤器';
$labels['arialabelfoldersearchform'] = '文件夹搜索自';
$labels['arialabelfolderlist'] = '邮件文件夹选择';
$labels['arialabelmessagelist'] = '邮件信息列表';
$labels['arialabelmailpreviewframe'] = '邮件预览';
@@ -565,6 +587,7 @@
$labels['arialabelpreferencesform'] = '偏好设置表单';
$labels['arialabelidentityeditfrom'] = '标识编辑表单';
$labels['arialabelresonseeditfrom'] = '回复编辑表单';
$labels['arialabelsearchterms'] = '搜索关键词';
$labels['helplistnavigation'] = '列表键盘导航';
$labels['helplistkeyboardnavcontacts'] = "回车:打开选中的联系人";
?>
program/localization/zh_CN/messages.inc
@@ -22,6 +22,7 @@
$messages['storageerror'] = '连接至 IMAP 服务器失败。';
$messages['servererror'] = '服务器错误!';
$messages['servererrormsg'] = '服务器错误:$msg';
$messages['accountlocked'] = '登录失败太多次。请稍后再试。';
$messages['connerror'] = '连接错误(连接服务器失败)!';
$messages['dberror'] = '数据库错误!';
$messages['windowopenerror'] = '弹出窗口被屏蔽!';
@@ -39,6 +40,7 @@
$messages['refreshing'] = '正在刷新...';
$messages['loading'] = '正在载入...';
$messages['uploading'] = '正在上传文件...';
$messages['attaching'] = '正在附加文件...';
$messages['uploadingmany'] = '正在上传文件...';
$messages['loadingdata'] = '正在载入数据...';
$messages['checkingmail'] = '正在检查新邮件...';
@@ -50,10 +52,18 @@
$messages['savingresponse'] = '正在保存响应文本...';
$messages['deleteresponseconfirm'] = '是否确认删除响应文本?';
$messages['addedsuccessfully'] = '联系人已添加。';
$messages['contactexists'] = '当前联系人的电子邮件地址已存在。';
$messages['contactexists'] = '已经具有此电子邮件地址的联系人已经存在。';
$messages['contactnameexists'] = '已存在同名联系人。';
$messages['blockedimages'] = '由于保护隐私,此邮件中的远程图片未予显示。';
$messages['encryptedmessage'] = '抱歉!该邮件已被加密,无法显示。';
$messages['externalmessagedecryption'] = '这是一封已加密的邮件,并且不能用您的浏览器扩展解密。';
$messages['nopubkeyfor'] = '没有找到 $email 的有效公钥';
$messages['nopubkeyforsender'] = '在您的发件人身份中没有找到有效公钥。您想只对收件人加密此邮件吗?';
$messages['encryptnoattachments'] = '已经上传的附件不能加密。请在加密编辑器中重新添加它们。';
$messages['searchpubkeyservers'] = '您想在公钥服务器搜索缺失的密钥吗?';
$messages['encryptpubkeysfound'] = '下列公钥已被找到:';
$messages['keyservererror'] = '从密钥服务器获取密钥失败';
$messages['keyimportsuccess'] = '公钥 $key 成功导入您的钥匙环';
$messages['nocontactsfound'] = '未找到联系人。';
$messages['contactnotfound'] = '未找到指定的联系人。';
$messages['contactsearchonly'] = '请输入联系人的搜索条件';
@@ -80,7 +90,7 @@
$messages['noemailwarning'] = '请输入一个有效的邮件地址。';
$messages['nonamewarning']  = '请输入名称。';
$messages['nopagesizewarning'] = '请输入每页显示的邮件数量。';
$messages['nosenderwarning'] = '请输入发件人地址。';
$messages['nosenderwarning'] = '请输入发件人的电子邮件地址。';
$messages['norecipientwarning'] = '至少输入一个收件人。';
$messages['nosubjectwarning']  = '主题为空。您要输入一个主题吗?';
$messages['nobodywarning'] = '要发送没有正文的邮件吗?';
@@ -104,6 +114,7 @@
$messages['deletedsuccessfully'] = '删除成功。';
$messages['converting'] = '格式转换中...';
$messages['messageopenerror'] = '无法从服务器加载邮件内容。';
$messages['filelinkerror'] = '附加文件失败。';
$messages['fileuploaderror'] = '文件上传失败。';
$messages['filesizeerror'] = '上传的文件超过了 $size 的大小限制。';
$messages['copysuccess'] = '成功复制 $nr 个联系人。';
@@ -137,7 +148,7 @@
$messages['importmessagesuccess'] = '成功导入 $nr 条信息';
$messages['importmessageerror'] = '导入失败!文件无效';
$messages['opnotpermitted'] = '不允许的操作!';
$messages['nofromaddress'] = '选中的身份没有邮件地址。';
$messages['nofromaddress'] = '选定身份中缺少电子邮件地址。';
$messages['editorwarning'] = '切换编辑模式可能导致文本格式丢失。是否继续?';
$messages['httpreceivedencrypterror'] = '<b>您的邮件无法发送</b>,因为发生了一个严重的配置错误,请立即联系管理员。';
$messages['smtpconnerror'] = 'SMTP 错误 ($code):连接服务器失败。';
@@ -146,7 +157,7 @@
$messages['smtptoerror'] = 'SMTP 错误 ($code): 添加收件人失败 "$to" ($msg)。';
$messages['smtprecipientserror'] = 'SMTP 错误: 无法解析收件人列表。';
$messages['smtperror'] = 'SMTP 错误: $msg';
$messages['emailformaterror'] = '无效的邮件地址:$email';
$messages['emailformaterror'] = '无效的电子邮件地址:$email';
$messages['toomanyrecipients'] = '收件人太多,请减少人数至 $max。';
$messages['maxgroupmembersreached'] = '组员数量超过最大值 $max。';
$messages['internalerror'] = '遇到一个内部错误,请重试。';
@@ -169,6 +180,7 @@
$messages['autocompletemore'] = '找到太多的结果。请输入更多字符。';
$messages['namecannotbeempty'] = '必须输入名字';
$messages['nametoolong'] = '名字太长';
$messages['namedotforbidden'] = '文件夹名称不能以“点”开头。';
$messages['folderupdated'] = '成功更新文件夹';
$messages['foldercreated'] = '成功创建文件夹';
$messages['invalidimageformat'] = '非法的图像类型。';
@@ -187,3 +199,6 @@
$messages['errcsrfprotectionexplain'] = "访问此资源是保护你避免被CSRF攻击。\nlf 看到此信息,你可能在关闭web应用程序时并未登出服务。\n\n现在需要人机交互才能继续。";
$messages['errcontactserveradmin'] = '请联系你的服务器管理员。';
$messages['clicktoresumesession'] = '点击此处恢复你之前的会话';
$messages['errcomposesession'] = '撰写会话错误';
$messages['errcomposesessionexplain'] = '请求的撰写会话未找到。';
$messages['clicktocompose'] = '点击这里撰写新邮件';
program/localization/zh_TW/messages.inc
@@ -49,7 +49,6 @@
$messages['savingresponse'] = '儲存預設回應中...';
$messages['deleteresponseconfirm'] = '你確定要刪除這個預設回應嗎?';
$messages['addedsuccessfully'] = '聯絡人已經成功地新增至通訊錄';
$messages['contactexists'] = '此聯絡人的電子郵件位址已存在';
$messages['contactnameexists'] = '已存在相同名稱的連絡人';
$messages['blockedimages'] = '為了保護你的隱私,此郵件中的遠端圖片已經被阻擋。';
$messages['encryptedmessage'] = '此郵件經過加密,因此無法顯示。抱歉!';
@@ -79,7 +78,6 @@
$messages['noemailwarning'] = '請輸入一個有效的電子郵件位址';
$messages['nonamewarning']  = '請輸入名字';
$messages['nopagesizewarning'] = '請輸入一頁顯示多少郵件';
$messages['nosenderwarning'] = '請輸入寄件者的電子郵件位址';
$messages['norecipientwarning'] = '請輸入至少一位收信者';
$messages['nosubjectwarning']  = '「主旨」欄是空的。你要輸入一個主旨嗎?';
$messages['nobodywarning'] = '要傳送沒有內文的郵件嗎?';
@@ -136,7 +134,6 @@
$messages['importmessagesuccess'] = '成功匯入 $nr 封郵件';
$messages['importmessageerror'] = '匯入失敗!上載的檔案不是有效的郵件或資料夾檔案。';
$messages['opnotpermitted'] = '不允許的操作';
$messages['nofromaddress'] = '在選擇的身分中遺失了電子郵件位址';
$messages['editorwarning'] = '切換編輯器模式將會遺失所有設定的樣式。您確定要繼續嗎?';
$messages['httpreceivedencrypterror'] = '發生嚴重錯誤。請立即聯絡管理者。<b>您的郵件無法送出。</b>';
$messages['smtpconnerror'] = 'SMTP 錯誤($code):與伺服器連線失敗';
@@ -145,7 +142,6 @@
$messages['smtptoerror'] = 'SMTP 錯誤($code):無法加收件者「$to」($msg)';
$messages['smtprecipientserror'] = 'SMTP 錯誤:無法分析收件者';
$messages['smtperror'] = 'SMTP 錯誤:$msg';
$messages['emailformaterror'] = '錯誤電子郵件:$email';
$messages['toomanyrecipients'] = '太多收件人。請減少至 $max 人';
$messages['maxgroupmembersreached'] = '太多群組成員,超過最大人數 $max 人';
$messages['internalerror'] = '發生內部錯誤。請再次嘗試。';
program/steps/addressbook/edit.inc
@@ -151,7 +151,7 @@
        'contact' => array(
            'name'    => $RCMAIL->gettext('properties'),
            'content' => array(
                'email' => array('size' => $i_size, 'visible' => true),
                'email' => array('size' => $i_size, 'maxlength' => 254, 'visible' => true),
                'phone' => array('size' => $i_size, 'visible' => true),
                'address' => array('visible' => true),
                'website' => array('size' => $i_size),
program/steps/mail/compose.inc
@@ -5,7 +5,7 @@
 | program/steps/mail/compose.inc                                        |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2013, The Roundcube Dev Team                       |
 | Copyright (C) 2005-2016, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -179,7 +179,7 @@
    $MESSAGE = new rcube_message($msg_uid);
    // make sure message is marked as read
    if ($MESSAGE->headers && empty($MESSAGE->headers->flags['SEEN'])) {
    if ($MESSAGE->headers && $MESSAGE->context === null && empty($MESSAGE->headers->flags['SEEN'])) {
        $RCMAIL->storage->set_flag($msg_uid, 'SEEN');
    }
@@ -192,7 +192,7 @@
    }
    else if ($compose_mode == RCUBE_COMPOSE_FORWARD || $compose_mode == RCUBE_COMPOSE_REPLY) {
        if ($compose_mode == RCUBE_COMPOSE_REPLY) {
            $COMPOSE['reply_uid'] = $msg_uid;
            $COMPOSE['reply_uid'] = $MESSAGE->context === null ? $msg_uid : null;
            if (!empty($COMPOSE['param']['all'])) {
                $MESSAGE->reply_all = $COMPOSE['param']['all'];
@@ -285,6 +285,7 @@
// process $MESSAGE body/attachments, set $MESSAGE_BODY/$HTML_MODE vars and some session data
$MESSAGE_BODY = rcmail_prepare_message_body();
$OUTPUT->include_script('publickey.js');
// register UI objects
$OUTPUT->add_handlers(array(
@@ -780,7 +781,7 @@
        if (!empty($MESSAGE->parts)) {
            // collect IDs of message/rfc822 parts
            foreach ($MESSAGE->mime_parts as $part) {
            foreach ($MESSAGE->mime_parts() as $part) {
                if ($part->mimetype == 'message/rfc822') {
                    $messages[] = $part->mime_id;
                }
@@ -1058,9 +1059,6 @@
    $reply_mode = intval($RCMAIL->config->get('reply_mode'));
    if (!$bodyIsHtml) {
        $body = preg_replace('/\r?\n/', "\n", $body);
        $body = trim($body, "\n");
        // soft-wrap and quote message text
        $body = rcmail_wrap_and_quote($body, $LINE_LENGTH);
@@ -1258,7 +1256,7 @@
        return $cid_map;
    }
    foreach ((array)$message->mime_parts as $pid => $part) {
    foreach ((array) $message->mime_parts() as $pid => $part) {
        if ($part->mimetype == 'message/rfc822') {
            $messages[] = $part->mime_id;
        }
@@ -1324,7 +1322,7 @@
        return $cid_map;
    }
    foreach ((array)$message->mime_parts as $pid => $part) {
    foreach ((array) $message->mime_parts() as $pid => $part) {
        if ($part->mimetype == 'message/rfc822') {
            $messages[] = $part->mime_id;
        }
program/steps/mail/func.inc
@@ -331,8 +331,9 @@
    $OUTPUT->add_label('from', 'to');
    // add id to message list table if not specified
    if (!strlen($attrib['id']))
    if (!strlen($attrib['id'])) {
        $attrib['id'] = 'rcubemessagelist';
    }
    // define list of cols to be displayed based on parameter or config
    if (empty($attrib['columns'])) {
@@ -517,6 +518,8 @@
            $a_msg_flags['has_children'] = $header->has_children;
        if ($header->unread_children)
            $a_msg_flags['unread_children'] = $header->unread_children;
        if ($header->flagged_children)
            $a_msg_flags['flagged_children'] = $header->flagged_children;
        if ($header->others['list-post'])
            $a_msg_flags['ml'] = 1;
        if ($header->priority)
@@ -531,11 +534,7 @@
        if (!empty($header->list_cols) && is_array($header->list_cols))
            $a_msg_cols = array_merge($a_msg_cols, $header->list_cols);
        $OUTPUT->command('add_message_row',
            $header->uid,
            $a_msg_cols,
            $a_msg_flags,
            $insert_top);
        $OUTPUT->command('add_message_row', $header->uid, $a_msg_cols, $a_msg_flags, $insert_top);
    }
    if ($RCMAIL->storage->get_threading()) {
@@ -655,8 +654,9 @@
{
    global $OUTPUT;
    if (empty($attrib['id']))
    if (empty($attrib['id'])) {
        $attrib['id'] = 'rcmailcontentwindow';
    }
    return $OUTPUT->frame($attrib, true);
}
@@ -665,8 +665,9 @@
{
    global $RCMAIL;
    if (!$attrib['id'])
    if (!$attrib['id']) {
        $attrib['id'] = 'rcmcountdisplay';
    }
    $RCMAIL->output->add_gui_object('countdisplay', $attrib['id']);
@@ -685,19 +686,21 @@
    $page_size = $RCMAIL->storage->get_pagesize();
    $start_msg = ($page-1) * $page_size + 1;
    $max       = $count;
    if ($count !== null)
        $max = $count;
    else if ($RCMAIL->action)
        $max = $RCMAIL->storage->count(NULL, $RCMAIL->storage->get_threading() ? 'THREADS' : 'ALL');
    if ($max === null && $RCMAIL->action) {
        $max = $RCMAIL->storage->count(null, $RCMAIL->storage->get_threading() ? 'THREADS' : 'ALL');
    }
    if ($max == 0)
    if (!$max) {
        $out = $RCMAIL->storage->get_search_set() ? $RCMAIL->gettext('nomessages') : $RCMAIL->gettext('mailboxempty');
    else
    }
    else {
        $out = $RCMAIL->gettext(array('name' => $RCMAIL->storage->get_threading() ? 'threadsfromto' : 'messagesfromto',
            'vars' => array('from'  => $start_msg,
            'to'    => min($max, $start_msg + $page_size - 1),
            'count' => $max)));
    }
    return rcube::Q($out);
}
@@ -706,8 +709,9 @@
{
    global $RCMAIL;
    if (!$attrib['id'])
    if (!$attrib['id']) {
        $attrib['id'] = 'rcmmailboxname';
    }
    $RCMAIL->output->add_gui_object('mailboxname', $attrib['id']);
@@ -725,15 +729,16 @@
    global $RCMAIL;
    $old_unseen = rcmail_get_unseen_count($mbox_name);
    $unseen     = $count;
    if ($count === null)
    if ($unseen === null) {
        $unseen = $RCMAIL->storage->count($mbox_name, 'UNSEEN', $force);
    else
        $unseen = $count;
    }
    if ($unseen != $old_unseen || ($mbox_name == 'INBOX'))
    if ($unseen != $old_unseen || ($mbox_name == 'INBOX')) {
        $RCMAIL->output->command('set_unread_count', $mbox_name, $unseen,
            ($mbox_name == 'INBOX'), $unseen && $mark ? $mark : '');
    }
    rcmail_set_unseen_count($mbox_name, $unseen);
@@ -966,10 +971,12 @@
        // now check for evil strings like expression, behavior or url()
        if (!preg_match('/expression|behavior|javascript:|import[^a]/i', $stripped)) {
            if (!$washtml->get_config('allow_remote') && stripos($stripped, 'url('))
            if (!$washtml->get_config('allow_remote') && stripos($stripped, 'url(')) {
                $washtml->extlinks = true;
            else
            }
            else {
                $out = html::tag('style', array('type' => 'text/css'), $content);
            }
            break;
        }
@@ -1020,8 +1027,6 @@
    $output_headers  = array();
    foreach ($standard_headers as $hkey) {
        $ishtml = false;
        if ($headers[$hkey])
            $value = $headers[$hkey];
        else if ($headers['others'][$hkey])
@@ -1032,6 +1037,7 @@
        if (in_array($hkey, $exclude_headers))
            continue;
        $ishtml       = false;
        $header_title = $RCMAIL->gettext(preg_replace('/(^mail-|-)/', '', $hkey));
        if ($hkey == 'date') {
@@ -1060,8 +1066,8 @@
            }
        }
        else if ($hkey == 'mail-reply-to') {
            if ($headers['mail-replyto'] != $headers['reply-to']
                && $headers['reply-to'] != $headers['from']
            if ($headers['mail-replyto'] != $headers['replyto']
                && $headers['replyto'] != $headers['from']
            ) {
                $header_value = rcmail_address_string($value, $attrib['max'], true,
                    $attrib['addicon'], $headers['charset'], $header_title);
@@ -1091,8 +1097,9 @@
                $attrib['addicon'], $headers['charset'], $header_title);
            $ishtml = true;
        }
        else if ($hkey == 'subject' && empty($value))
        else if ($hkey == 'subject' && empty($value)) {
            $header_value = $RCMAIL->gettext('nosubject');
        }
        else {
            $value        = is_array($value) ? implode(' ', $value) : $value;
            $header_value = trim(rcube_mime::decode_header($value, $headers['charset']));
@@ -1722,9 +1729,9 @@
function rcmail_wrap_and_quote($text, $length = 72)
{
    // Rebuild the message body with a maximum of $max chars, while keeping quoted message.
    $max = max(75, $length + 8);
    $max   = max(75, $length + 8);
    $lines = preg_split('/\r?\n/', trim($text));
    $out = '';
    $out   = '';
    foreach ($lines as $line) {
        // don't wrap already quoted lines
@@ -1735,10 +1742,7 @@
            $newline = '';
            foreach (explode("\n", rcube_mime::wordwrap($line, $length - 2)) as $l) {
                if (strlen($l))
                    $newline .= '> ' . $l . "\n";
                else
                    $newline .= ">\n";
                $newline .= strlen($l) ? "> $l\n" : ">\n";
            }
            $line = rtrim($newline);
@@ -1758,7 +1762,7 @@
{
    $parts = array();
    foreach ($p as $key => $val) {
        $encode = $key == 'folder' || strpos($val, ';') !== false;
        $encode  = $key == 'folder' || strpos($val, ';') !== false;
        $parts[] = $key . '=' . ($encode ? 'B::' . base64_encode($val) : $val);
    }
@@ -1985,7 +1989,9 @@
        'image/x-ms-bmp' => 'image/bmp', // #1490282
    );
    if ($alias = $map[strtolower($name)]) {
    $name = strtolower($name);
    if ($alias = $map[$name]) {
        $name = $alias;
    }
    // Some versions of Outlook create garbage Content-Type:
program/steps/mail/get.inc
@@ -62,10 +62,22 @@
        'messagepartcontrols' => 'rcmail_message_part_controls',
    ));
    $mimetype = $part ? rcmail_fix_mimetype($part->mimetype) : '';
    // message/rfc822 preview (Note: handle also multipart/ parts, they can
    // come from Enigma, which replaces message/rfc822 with real mimetype)
    if ($part_id && ($mimetype == 'message/rfc822' || strpos($mimetype, 'multipart/') === 0)) {
        $uid = preg_replace('/\.[0-9.]+/', '', $uid);
        $uid .= '.' . $part_id;
        $OUTPUT->set_env('is_message', true);
    }
    $OUTPUT->set_env('mailbox', $RCMAIL->storage->get_folder());
    $OUTPUT->set_env('uid', $uid);
    $OUTPUT->set_env('part', $part_id);
    $OUTPUT->set_env('filename', $filename);
    $OUTPUT->set_env('mimetype', $mimetype);
    $OUTPUT->send('messagepart');
    exit;
@@ -449,12 +461,23 @@
 */
function rcmail_message_part_frame($attrib)
{
    global $MESSAGE, $RCMAIL;
    global $RCMAIL;
    $part = $MESSAGE->mime_parts[asciiwords(rcube_utils::get_input_value('_part', rcube_utils::INPUT_GPC))];
    $ctype_primary = strtolower($part->ctype_primary);
    $attrib['src'] = './?' . str_replace('_frame=', ($ctype_primary=='text' ? '_embed=' : '_preload='), $_SERVER['QUERY_STRING']);
    if ($RCMAIL->output->get_env('is_message')) {
        $attrib['src'] = $RCMAIL->url(array(
                'task'   => 'mail',
                'action' => 'preview',
                'uid'    => $RCMAIL->output->get_env('uid'),
                'mbox'   => $RCMAIL->output->get_env('mailbox'),
                'framed' => 1,
        ));
    }
    else {
        $mimetype      = $RCMAIL->output->get_env('mimetype');
        $frame_replace = strpos($mimetype, 'text/') === 0 ? '_embed=' : '_preload=';
        $attrib['src'] = './?' . str_replace('_frame=', $frame_replace, $_SERVER['QUERY_STRING']);
    }
    $RCMAIL->output->add_gui_object('messagepartframe', $attrib['id']);
program/steps/mail/headers.inc
@@ -5,7 +5,7 @@
 | program/steps/mail/headers.inc                                        |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2007, The Roundcube Dev Team                       |
 | Copyright (C) 2005-2016, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -20,7 +20,14 @@
*/
if ($uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST)) {
    $source = $RCMAIL->storage->get_raw_headers($uid);
    if ($pos = strpos($uid, '.')) {
        $message = new rcube_message($uid);
        $source  = $message->get_part_body(substr($uid, $pos + 1));
        $source  = substr($source, 0, strpos($source, "\r\n\r\n"));
    }
    else {
        $source = $RCMAIL->storage->get_raw_headers($uid);
    }
    if ($source !== false) {
        $source = trim(rcube_charset::clean($source));
program/steps/mail/move_del.inc
@@ -56,7 +56,7 @@
        $OUTPUT->send();
    }
    else {
        $OUTPUT->show_message('messagemoved', 'confirmation');
        $OUTPUT->show_message($target == $trash ? 'messagemovedtotrash' : 'messagemoved', 'confirmation');
    }
    if (!empty($_POST['_refresh'])) {
program/steps/mail/sendmail.inc
@@ -189,11 +189,17 @@
}
// remember reply/forward UIDs in special headers
if (!empty($COMPOSE['reply_uid']) && $savedraft) {
    $headers['X-Draft-Info'] = array('type' => 'reply', 'uid' => $COMPOSE['reply_uid']);
}
else if (!empty($COMPOSE['forward_uid']) && $savedraft) {
    $headers['X-Draft-Info'] = array('type' => 'forward', 'uid' => rcube_imap_generic::compressMessageSet($COMPOSE['forward_uid']));
if ($savedraft) {
    // Note: We ignore <UID>.<PART> forwards/replies here
    if (($uid = $COMPOSE['reply_uid']) && !preg_match('/^\d+\.[0-9.]+$/', $uid)) {
        $headers['X-Draft-Info'] = array('type' => 'reply', 'uid' => $uid);
    }
    else if (!empty($COMPOSE['forward_uid'])
        && ($uid = rcube_imap_generic::compressMessageSet($COMPOSE['forward_uid']))
        && !preg_match('/^\d+[0-9.]+$/', $uid)
    ) {
        $headers['X-Draft-Info'] = array('type' => 'forward', 'uid' => $uid);
    }
}
if (!empty($COMPOSE['reply_msgid'])) {
@@ -550,12 +556,18 @@
    // set replied/forwarded flag
    if ($COMPOSE['reply_uid']) {
        foreach (rcmail::get_uids($COMPOSE['reply_uid'], $COMPOSE['mailbox']) as $mbox => $uids) {
            $RCMAIL->storage->set_flag($uids, 'ANSWERED', $mbox);
            // skip <UID>.<PART> replies
            if (!preg_match('/^\d+\.[0-9.]+$/', implode(',', (array) $uids))) {
                $RCMAIL->storage->set_flag($uids, 'ANSWERED', $mbox);
            }
        }
    }
    else if ($COMPOSE['forward_uid']) {
        foreach (rcmail::get_uids($COMPOSE['forward_uid'], $COMPOSE['mailbox']) as $mbox => $uids) {
            $RCMAIL->storage->set_flag($uids, 'FORWARDED', $mbox);
            // skip <UID>.<PART> forwards
            if (!preg_match('/^\d+\.[0-9.]+$/', implode(',', (array) $uids))) {
                $RCMAIL->storage->set_flag($uids, 'FORWARDED', $mbox);
            }
        }
    }
}
program/steps/mail/show.inc
@@ -31,7 +31,8 @@
    $_SESSION['browser_caps'] = $browser_caps;
}
$uid       = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET);
$msg_id    = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET);
$uid       = preg_replace('/\.[0-9.]+$/', '', $msg_id);
$mbox_name = $RCMAIL->storage->get_folder();
// similar code as in program/steps/mail/get.inc
@@ -46,7 +47,7 @@
        $RCMAIL->config->set('prefer_html', $_SESSION['msg_formats'][$mbox_name.':'.$uid]);
    }
    $MESSAGE = new rcube_message($uid, $mbox_name, intval($_GET['_safe']));
    $MESSAGE = new rcube_message($msg_id, $mbox_name, intval($_GET['_safe']));
    // if message not found (wrong UID)...
    if (empty($MESSAGE->headers)) {
@@ -64,12 +65,13 @@
    $OUTPUT->set_pagetitle(abbreviate_string($MESSAGE->subject, 128, '...', true));
    // set message environment
    $OUTPUT->set_env('uid', $MESSAGE->uid);
    $OUTPUT->set_env('uid', $msg_id);
    $OUTPUT->set_env('safemode', $MESSAGE->is_safe);
    $OUTPUT->set_env('message_context', $MESSAGE->context);
    $OUTPUT->set_env('sender', $MESSAGE->sender['string']);
    $OUTPUT->set_env('mailbox', $mbox_name);
    $OUTPUT->set_env('username', $RCMAIL->get_user_name());
    $OUTPUT->set_env('permaurl', $RCMAIL->url(array('_action' => 'show', '_uid' => $MESSAGE->uid, '_mbox' => $mbox_name)));
    $OUTPUT->set_env('permaurl', $RCMAIL->url(array('_action' => 'show', '_uid' => $msg_id, '_mbox' => $mbox_name)));
    if ($MESSAGE->headers->get('list-post', false)) {
        $OUTPUT->set_env('list_post', true);
@@ -106,6 +108,9 @@
            unset($mimetypes[$key]);
        }
    }
    if (!in_array('message/rfc822', $mimetypes)) {
        $mimetypes[] = 'message/rfc822';
    }
    $OUTPUT->set_env('mimetypes', array_values($mimetypes));
@@ -121,6 +126,7 @@
    // check for unset disposition notification
    if ($MESSAGE->headers->mdn_to
        && $MESSAGE->context === null
        && empty($MESSAGE->headers->flags['MDNSENT'])
        && empty($MESSAGE->headers->flags['SEEN'])
        && ($RCMAIL->storage->check_permflag('MDNSENT') || $RCMAIL->storage->check_permflag('*'))
@@ -146,6 +152,7 @@
    }
    if (empty($MESSAGE->headers->flags['SEEN'])
        && $MESSAGE->context === null
        && ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($RCMAIL->config->get('preview_pane_mark_read')) == 0))
    ) {
        $RCMAIL->output->command('set_unread_message', $MESSAGE->uid, $mbox_name);
program/steps/mail/viewsource.inc
@@ -5,7 +5,7 @@
 | program/steps/mail/viewsource.inc                                     |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2013, The Roundcube Dev Team                       |
 | Copyright (C) 2005-2016, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -27,7 +27,15 @@
// similar code as in program/steps/mail/get.inc
if ($uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET)) {
    $headers = $RCMAIL->storage->get_message_headers($uid);
    if ($pos = strpos($uid, '.')) {
        $message = new rcube_message($uid);
        $headers = $message->headers;
        $part_id = substr($uid, $pos + 1);
    }
    else {
        $headers = $RCMAIL->storage->get_message_headers($uid);
    }
    $charset = $headers->charset ?: $RCMAIL->config->get('default_charset');
    header("Content-Type: text/plain; charset={$charset}");
@@ -46,7 +54,12 @@
        header("Content-Disposition: attachment; filename=\"$filename\"");
    }
    $RCMAIL->storage->print_raw_body($uid, empty($_GET['_save']));
    if (isset($message)) {
        $message->get_part_body($part_id, empty($_GET['_save']), 0, -1);
    }
    else {
        $RCMAIL->storage->print_raw_body($uid, empty($_GET['_save']));
    }
}
else {
    rcube::raise_error(array(
skins/classic/addressbook.css
@@ -14,8 +14,7 @@
}
#abooktoolbar a.button,
#abooktoolbar a.buttonPas,
#abooktoolbar span.separator {
#abooktoolbar a.buttonPas {
  display: block;
  float: left;
  width: 32px;
@@ -83,11 +82,6 @@
#abooktoolbar a.exportAllSel {
  background-position: -128px -32px;
}
#abooktoolbar span.separator {
  width: 5px;
  background-position: -162px 0;
}
#abooktoolbar a.search {
skins/classic/common.css
@@ -507,6 +507,18 @@
  font-size: 10px;
}
.toolbarseparator {
  display: block;
  float: left;
  width: 5px;
  height: 32px;
  padding: 0;
  margin: 0 5px;
  overflow: hidden;
  background: url(images/abook_toolbar.png) -162px 0 no-repeat transparent;
  opacity: 0.99; /* this is needed to make buttons appear correctly in Chrome */
}
.splitter
{
  user-select: none;
skins/classic/mail.css
@@ -746,6 +746,11 @@
  background-position: 0 -290px;
}
.messagelist tr.flaggedroot td.flag span
{
  background-position: 0 -136px;
}
.messagelist tr > .flag span.flagged
{
  background-position: 0 -153px;
skins/classic/templates/addressbook.html
@@ -23,7 +23,7 @@
<roundcube:button command="compose" type="link" class="buttonPas compose" classAct="button compose" classSel="button composeSel" title="composeto" content=" " />
<roundcube:button command="print" type="link" class="buttonPas print" classAct="button print" classSel="button printSel" label="print" title="printcontact" content=" " />
<roundcube:button command="delete" type="link" class="buttonPas delete" classAct="button delete" classSel="button deleteSel" title="deletecontact" content=" " />
<span class="separator">&nbsp;</span>
<span class="toolbarseparator">&nbsp;</span>
<roundcube:button command="import" type="link" class="buttonPas import" classAct="button import" classSel="button importSel" title="importcontacts" content=" " />
<span class="dropbutton">
<roundcube:button command="export" type="link" class="buttonPas export" classAct="button export" classSel="button exportSel" title="exportvcards" content=" " />
skins/classic/templates/messagepart.html
@@ -17,6 +17,19 @@
    <roundcube:button command="download" type="link" class="button download" classAct="button download" classSel="button downloadSel" title="download" content=" " />
    <roundcube:button command="print" type="link" class="button print" classAct="button print" classSel="button printSel" title="print" content=" " />
    <roundcube:container name="toolbar" id="messagetoolbar" />
    <roundcube:if condition="env:is_message" />
    <span class="toolbarseparator">&nbsp;</span>
    <roundcube:button command="reply" type="link" class="buttonPas reply" classAct="button reply" classSel="button replySel" title="replytomessage" content=" " />
    <span class="dropbutton">
        <roundcube:button command="reply-all" type="link" class="buttonPas replyAll" classAct="button replyAll" classSel="button replyAllSel" title="replytoallmessage" content=" " />
        <span id="replyallmenulink" onclick="rcmail_ui.show_popup('replyallmenu');return false"></span>
    </span>
    <span class="dropbutton">
        <roundcube:button command="forward" type="link" class="buttonPas forward" classAct="button forward" classSel="button forwardSel" title="forwardmessage" content=" " />
        <span id="forwardmenulink" onclick="rcmail_ui.show_popup('forwardmenu');return false"></span>
    </span>
    <roundcube:button name="messagemenulink" id="messagemenulink" type="link" class="button messagemenu" title="moreactions" onclick="rcmail_ui.show_popup('messagemenu');return false" content=" " />
    <roundcube:endif />
</div>
<div id="mainscreen">
@@ -30,9 +43,37 @@
        <roundcube:object name="messagePartFrame" id="messagepartframe" width="100%" height="100%" />
    </div>
</div>
<roundcube:if condition="env:is_message" />
<div id="forwardmenu" class="popupmenu">
    <ul id="forwardmenumenu">
        <roundcube:button type="link-menuitem" command="forward-inline" label="forwardinline" prop="sub" classAct="forwardlink active" class="forwardlink" />
        <roundcube:button type="link-menuitem" command="forward-attachment" label="forwardattachment" prop="sub" classAct="forwardattachmentlink active" class="forwardattachmentlink" />
        <roundcube:container name="forwardmenu" id="forwardmenumenu" />
    </ul>
</div>
<div id="replyallmenu" class="popupmenu">
    <ul id="replyallmenumenu">
        <roundcube:button type="link-menuitem" command="reply-all" label="replyall" prop="sub" classAct="replyalllink active" class="replyalllink" />
        <roundcube:button type="link-menuitem" command="reply-list" label="replylist" prop="sub" classAct="replylistlink active" class="replylistlink" />
        <roundcube:container name="replyallmenu" id="replyallmenumenu" />
    </ul>
</div>
<div id="messagemenu" class="popupmenu">
  <ul class="toolbarmenu" id="messagemenumenu">
    <roundcube:button type="link-menuitem" class="editlink" command="edit" prop="new" label="editasnew" classAct="editlink active" />
    <roundcube:button type="link-menuitem" class="sourcelink" command="viewsource" label="viewsource" classAct="sourcelink active" />
    <roundcube:container name="messagemenu" id="messagemenumenu" />
  </ul>
</div>
<roundcube:endif />
<script type="text/javascript">
var mailpartsplit = new rcube_splitter({id:'mailpartsplitter', p1: 'messagepartheader', p2: 'messagepartcontainer', orientation: 'v', relative: true, start: 165});
rcmail.add_onload('mailpartsplit.init()');
rcube_init_mail_ui();
</script>
</body>
skins/classic/templates/messagepreview.html
@@ -16,7 +16,9 @@
    <roundcube:if condition="env:optional_format=='html'" />
      <roundcube:button command="change-format" prop="html" image="/images/icons/html.png" width="15" height="15" title="changeformathtml" id="changeformathtml" />
    <roundcube:endif />
    <roundcube:button command="extwin" image="/images/icons/extwin.png" width="15" height="15" title="openinextwin" id="openextwinlink" />
    <roundcube:if condition="!env:message_context">
      <roundcube:button command="extwin" image="/images/icons/extwin.png" width="15" height="15" title="openinextwin" id="openextwinlink" />
    <roundcube:endif />
  </div>
<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" addicon="/images/icons/silhouette.png" summary="Message headers" />
<roundcube:object name="messageFullHeaders" id="full-headers" />
skins/larry/mail.css
@@ -426,19 +426,24 @@
}
.messagelist tr td.priority span.prio5 {
    background-position: 0 -1905px;
    background-position: -2px -1905px;
}
.messagelist tr td.priority span.prio4 {
    background-position: 0 -1885px;
    background-position: -2px -1885px;
}
.messagelist tr td.priority span.prio2 {
    background-position: 0 -1865px;
    background-position: -2px -1865px;
}
.messagelist tr td.priority span.prio1 {
    background-position: 0 -1845px;
    background-position: -2px -1845px;
}
/* thread parent message with flagged children */
.messagelist tbody tr.flaggedroot td.flag span {
    background-position: -23px -1076px;
}
.messagelist tbody tr td.flag span.flagged {
skins/larry/templates/messagepart.html
@@ -17,6 +17,19 @@
    <roundcube:button command="download" type="link" class="button download disabled" classAct="button download" classSel="button download pressed" label="download" title="download" />
    <roundcube:button command="print" type="link" class="button print disabled" classAct="button print" classSel="button print pressed" label="print" title="print" />
    <roundcube:container name="toolbar" id="messagetoolbar" />
    <roundcube:if condition="env:is_message" />
    <span class="spacer"></span>
    <roundcube:button command="reply" type="link" class="button reply disabled" classAct="button reply" classSel="button reply pressed" label="reply" title="replytomessage" />
    <span class="dropbutton">
        <roundcube:button command="reply-all" type="link" class="button reply-all disabled" classAct="button reply-all" classSel="button reply-all pressed" label="replyall" title="replytoallmessage" />
        <a href="#reply-all" class="dropbuttontip" id="replyallmenulink" onclick="UI.toggle_popup('replyallmenu',event);return false" aria-haspopup="true" aria-expanded="false" aria-owns="replyallmenu-menu" tabindex="0">Reply-all options</a>
    </span>
    <span class="dropbutton">
        <roundcube:button command="forward" type="link" class="button forward disabled" classAct="button forward" classSel="button forward pressed" label="forward" title="forwardmessage" />
        <a href="#forward" class="dropbuttontip" id="forwardmenulink" onclick="UI.toggle_popup('forwardmenu',event);return false" aria-haspopup="true" aria-expanded="false" aria-owns="forwardmenu-menu" tabindex="0">Forwarding options</a>
    </span>
    <roundcube:button name="messagemenulink" id="messagemenulink" type="link" class="button more" label="more" title="moreactions" onclick="UI.toggle_popup('messagemenu',event);return false" aria-haspopup="true" aria-expanded="false" aria-owns="messagemenu-menu" />
    <roundcube:endif />
</div>
<div id="mainscreencontent">
@@ -38,6 +51,35 @@
</div>
</div>
<roundcube:if condition="env:is_message" />
<div id="forwardmenu" class="popupmenu" aria-hidden="true">
    <h3 id="aria-label-forwardmenu" class="voice"><roundcube:label name="arialabelforwardingoptions" /></h3>
    <ul id="forwardmenu-menu" class="toolbarmenu" role="menu" aria-labelledby="aria-label-forwardmenu">
        <roundcube:button type="link-menuitem" command="forward-inline" label="forwardinline" prop="sub" classAct="forwardlink active" class="forwardlink" />
        <roundcube:button type="link-menuitem" command="forward-attachment" label="forwardattachment" prop="sub" classAct="forwardattachmentlink active" class="forwardattachmentlink" />
        <roundcube:container name="forwardmenu" id="forwardmenu-menu" />
    </ul>
</div>
<div id="replyallmenu" class="popupmenu" aria-hidden="true">
    <h3 id="aria-label-replyallmenu" class="voice"><roundcube:label name="arialabelreplyalloptions" /></h3>
    <ul id="replyallmenu-menu" class="toolbarmenu" role="menu" aria-labelledby="aria-label-replyallmenu">
        <roundcube:button type="link-menuitem" command="reply-all" label="replyall" prop="sub" class="replyalllink" classAct="replyalllink active" />
        <roundcube:button type="link-menuitem" command="reply-list" label="replylist" prop="sub" class="replylistlink" classAct="replylistlink active" />
        <roundcube:container name="replyallmenu" id="replyallmenu-menu" />
    </ul>
</div>
<div id="messagemenu" class="popupmenu" aria-hidden="true">
    <h3 id="aria-label-messagemenu" class="voice"><roundcube:label name="arialabelmoremessageactions" /></h3>
    <ul id="messagemenu-menu" class="toolbarmenu iconized" role="menu" aria-labelledby="aria-label-messagemenu">
        <roundcube:button type="link-menuitem" command="edit" prop="new" label="editasnew" class="icon" classAct="icon active" innerclass="icon edit" />
        <roundcube:button type="link-menuitem" command="viewsource" label="viewsource" class="icon" classAct="icon active" innerclass="icon viewsource" />
        <roundcube:container name="messagemenu" id="messagemenu-menu" />
    </ul>
</div>
<roundcube:endif />
<roundcube:include file="/includes/footer.html" />
</body>
skins/larry/templates/messagepreview.html
@@ -15,20 +15,22 @@
    <span class="buttongroup">
        <roundcube:button command="change-format" prop="html" type="link" class="button first changeformat html selected" innerClass="icon" title="changeformathtml" content="HTML" /><roundcube:button command="change-format" prop="text" type="link" class="button last changeformat text" classSel="button changeformat text pressed" innerClass="icon" title="changeformattext" content="Text" />
    </span>
    &nbsp;
<roundcube:elseif condition="env:optional_format=='html'" />
    &nbsp;
    <span class="buttongroup">
        <roundcube:button command="change-format" prop="html" type="link" class="button first changeformat html" classSel="button changeformat html pressed" innerClass="icon" title="changeformathtml" content="HTML" /><roundcube:button command="change-format" prop="text" type="link" class="button last changeformat text selected" innerClass="icon" title="changeformattext" content="Text" />
    </span>
    &nbsp;
<roundcube:endif />
<roundcube:if condition="env:mailbox != config:drafts_mbox">
<roundcube:if condition="env:mailbox != config:drafts_mbox || env:message_context">
    &nbsp;
    <roundcube:button command="reply" type="link" class="button reply" classSel="button reply pressed" innerClass="icon" title="replytomessage" label="replytomessage" />
    <roundcube:button command="reply-all" type="link" class="button replyall" classSel="button replyall pressed" innerClass="icon" title="replytoallmessage" label="replytoallmessage" />
    <roundcube:button command="forward" type="link" class="button forward" classSel="button forward pressed" innerClass="icon" title="forwardmessage" label="forwardmessage" />
    &nbsp;
<roundcube:endif />
<roundcube:if condition="!env:message_context">
    &nbsp;
    <roundcube:button command="extwin" type="link" class="button extwin" classSel="button extwin pressed" innerClass="icon" title="openinextwin" label="openinextwin" />
<roundcube:endif />
</div>
<h3 class="subject"><span class="voice"><roundcube:label name="subject" />: </span><roundcube:object name="messageHeaders" valueOf="subject" /></h3>
skins/larry/ui.js
@@ -172,6 +172,10 @@
        if (get_pref('previewheaders') == '1') {
          toggle_preview_headers();
        }
        if (rcmail.env.action == 'show') {
            $('#messagecontent').focus()
        }
      }
      else if (rcmail.env.action == 'compose') {
        rcmail.addEventListener('aftersend-attachment', show_uploadform)
@@ -305,7 +309,9 @@
    else if (rcmail.env.task == 'addressbook') {
      rcmail.addEventListener('afterupload-photo', show_uploadform)
        .addEventListener('beforepushgroup', push_contactgroup)
        .addEventListener('beforepopgroup', pop_contactgroup);
        .addEventListener('beforepopgroup', pop_contactgroup)
        .addEventListener('menu-open', menu_toggle)
        .addEventListener('menu-close', menu_toggle);
      if (rcmail.env.action == '') {
        new rcube_splitter({ id:'addressviewsplitterd', p1:'#addressview-left', p2:'#addressview-right',
tests/Framework/Text2Html.php
@@ -46,6 +46,7 @@
        $data[] = array(">aaaa\n>aaaa", "<blockquote>aaaa<br>aaaa</blockquote>", $options);
        $data[] = array(">aaaa \n>bbbb\ncccc dddd", "<blockquote>>aaaa_<<br>bbbb</blockquote>>cccc_dddd<", $options);
        $data[] = array("aaaa-bbbb/cccc", ">aaaa-bbbb/cccc<", $options);
        $data[] = array("aaaa-bbbb\r\tcccc", ">aaaa-bbbb____cccc<", $options);
        $options['flowed'] = true;
tests/Framework/Washtml.php
@@ -15,7 +15,9 @@
    {
        // #1488850
        $html = '<p><a href="data:text/html,&lt;script&gt;alert(document.cookie)&lt;/script&gt;">Firefox</a>'
            .'<a href="vbscript:alert(document.cookie)">Internet Explorer</a></p>';
            .'<a href="vbscript:alert(document.cookie)">Internet Explorer</a></p>'
            .'<p><A href="data:text/html,&lt;script&gt;alert(document.cookie)&lt;/script&gt;">Firefox</a>'
            .'<A HREF="vbscript:alert(document.cookie)">Internet Explorer</a></p>';
        $washer = new rcube_washtml;
        $washed = $washer->wash($html);
@@ -38,6 +40,26 @@
    }
    /**
     * Test XSS in area's href (#5240)
     */
    function test_href_area()
    {
        $html = '<p><area href="data:text/html,&lt;script&gt;alert(document.cookie)&lt;/script&gt;">'
            . '<area href="vbscript:alert(document.cookie)">Internet Explorer</p>'
            . '<area href="javascript:alert(document.domain)" shape=default>'
            . '<p><AREA HREF="data:text/html,&lt;script&gt;alert(document.cookie)&lt;/script&gt;">'
            . '<Area href="vbscript:alert(document.cookie)">Internet Explorer</p>'
            . '<area HREF="javascript:alert(document.domain)" shape=default>';
        $washer = new rcube_washtml;
        $washed = $washer->wash($html);
        $this->assertNotRegExp('/data:text/', $washed, "data:text/html in area href");
        $this->assertNotRegExp('/vbscript:/', $washed, "vbscript: in area href");
        $this->assertNotRegExp('/javascript:/', $washed, "javascript: in area href");
    }
    /**
     * Test handling HTML comments
     */
    function test_comments()