- Add 'default_charset' option to user preferences (#1485451)

release-0.6
alecpl 15 years ago
parent b7f952248e
commit e55ab02682

@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
- Add 'default_charset' option to user preferences (#1485451)
- Add 'delete_always' option to user preferences
- Support/Require tls:// prefix in 'smtp_server' option for TLS connections
- Fix inconsistent behaviour of 'delete_always' option (#1486299)

@ -296,9 +296,6 @@ $rcmail_config['quota_zero_as_unlimited'] = false;
// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask)
$rcmail_config['mdn_requests'] = 0;
// Use this charset as fallback for message decoding
$rcmail_config['default_charset'] = 'ISO-8859-1';
// Make use of the built-in spell checker. It is based on GoogieSpell.
// Since Google only accepts connections over https your PHP installatation
// requires to be compiled with Open SSL support
@ -397,6 +394,9 @@ $rcmail_config['autocomplete_addressbooks'] = array('sql');
// USER PREFERENCES
// ----------------------------------
// Use this charset as fallback for message decoding
$rcmail_config['default_charset'] = 'ISO-8859-1';
// skin name: folder from skins/
$rcmail_config['skin'] = 'default';

@ -1134,39 +1134,67 @@ class rcube_template extends rcube_html_page
* @param array Named parameters for the select tag
* @return string HTML code for the gui object
*/
static function charset_selector($attrib)
function charset_selector($attrib)
{
// pass the following attributes to the form class
$field_attrib = array('name' => '_charset');
foreach ($attrib as $attr => $value) {
if (in_array($attr, array('id', 'class', 'style', 'size', 'tabindex'))) {
if (in_array($attr, array('id', 'name', 'class', 'style', 'size', 'tabindex'))) {
$field_attrib[$attr] = $value;
}
}
$charsets = array(
'US-ASCII' => 'ASCII (English)',
'EUC-JP' => 'EUC-JP (Japanese)',
'EUC-KR' => 'EUC-KR (Korean)',
'BIG5' => 'BIG5 (Chinese)',
'GB2312' => 'GB2312 (Chinese)',
'ISO-2022-JP' => 'ISO-2022-JP (Japanese)',
'ISO-8859-1' => 'ISO-8859-1 (Latin-1)',
'ISO-8859-2' => 'ISO-8895-2 (Central European)',
'ISO-8859-7' => 'ISO-8859-7 (Greek)',
'ISO-8859-9' => 'ISO-8859-9 (Turkish)',
'Windows-1251' => 'Windows-1251 (Cyrillic)',
'Windows-1252' => 'Windows-1252 (Western)',
'Windows-1255' => 'Windows-1255 (Hebrew)',
'Windows-1256' => 'Windows-1256 (Arabic)',
'Windows-1257' => 'Windows-1257 (Baltic)',
'UTF-8' => 'UTF-8'
);
$select = new html_select($field_attrib);
$select->add(array_values($charsets), array_keys($charsets));
$set = $_POST['_charset'] ? $_POST['_charset'] : $this->get_charset();
return $select->show($set);
$charsets = array(
'UTF-8' => 'UTF-8 ('.rcube_label('unicode').')',
'US-ASCII' => 'ASCII ('.rcube_label('english').')',
'ISO-8859-1' => 'ISO-8859-1 ('.rcube_label('westerneuropean').')',
'ISO-8859-2' => 'ISO-8895-2 ('.rcube_label('easterneuropean').')',
'ISO-8859-4' => 'ISO-8895-4 ('.rcube_label('baltic').')',
'ISO-8859-5' => 'ISO-8859-5 ('.rcube_label('cyrillic').')',
'ISO-8859-6' => 'ISO-8859-6 ('.rcube_label('arabic').')',
'ISO-8859-7' => 'ISO-8859-7 ('.rcube_label('greek').')',
'ISO-8859-8' => 'ISO-8859-8 ('.rcube_label('hebrew').')',
'ISO-8859-9' => 'ISO-8859-9 ('.rcube_label('turkish').')',
'ISO-8859-10' => 'ISO-8859-10 ('.rcube_label('nordic').')',
'ISO-8859-11' => 'ISO-8859-11 ('.rcube_label('thai').')',
'ISO-8859-13' => 'ISO-8859-13 ('.rcube_label('baltic').')',
'ISO-8859-14' => 'ISO-8859-14 ('.rcube_label('celtic').')',
'ISO-8859-15' => 'ISO-8859-15 ('.rcube_label('westerneuropean').')',
'ISO-8859-16' => 'ISO-8859-16 ('.rcube_label('southeasterneuropean').')',
'WINDOWS-1250' => 'Windows-1250 ('.rcube_label('easterneuropean').')',
'WINDOWS-1251' => 'Windows-1251 ('.rcube_label('cyrillic').')',
'WINDOWS-1252' => 'Windows-1252 ('.rcube_label('westerneuropean').')',
'WINDOWS-1253' => 'Windows-1253 ('.rcube_label('greek').')',
'WINDOWS-1254' => 'Windows-1254 ('.rcube_label('turkish').')',
'WINDOWS-1255' => 'Windows-1255 ('.rcube_label('hebrew').')',
'WINDOWS-1256' => 'Windows-1256 ('.rcube_label('arabic').')',
'WINDOWS-1257' => 'Windows-1257 ('.rcube_label('baltic').')',
'WINDOWS-1258' => 'Windows-1258 ('.rcube_label('vietnamese').')',
'ISO-2022-JP' => 'ISO-2022-JP ('.rcube_label('japanese').')',
'ISO-2022-KR' => 'ISO-2022-KR ('.rcube_label('korean').')',
'ISO-2022-CN' => 'ISO-2022-CN ('.rcube_label('chinese').')',
'EUC-JP' => 'EUC-JP ('.rcube_label('japanese').')',
'EUC-KR' => 'EUC-KR ('.rcube_label('korean').')',
'EUC-CN' => 'EUC-CN ('.rcube_label('chinese').')',
'BIG5' => 'BIG5 ('.rcube_label('chinese').')',
'GB2312' => 'GB2312 ('.rcube_label('chinese').')',
);
if (!empty($_POST['_charset']))
$set = $_POST['_charset'];
else if (!empty($attrib['selected']))
$set = $attrib['selected'];
else
$set = $this->get_charset();
$set = strtoupper($set);
if (!isset($charsets[$set]))
$charsets[$set] = $set;
$select = new html_select($field_attrib);
$select->add(array_values($charsets), array_keys($charsets));
return $select->show($set);
}
} // end class rcube_template

@ -64,10 +64,6 @@ $labels['download'] = 'Download';
$labels['filename'] = 'File name';
$labels['filesize'] = 'File size';
$labels['preferhtml'] = 'Display HTML';
$labels['htmlmessage'] = 'HTML Message';
$labels['prettydate'] = 'Pretty dates';
$labels['addtoaddressbook'] = 'Add to address book';
// weekdays short
@ -265,6 +261,10 @@ $labels['newidentity'] = 'New identity';
$labels['newitem'] = 'New item';
$labels['edititem'] = 'Edit item';
$labels['preferhtml'] = 'Display HTML';
$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML Message';
$labels['prettydate'] = 'Pretty dates';
$labels['setdefault'] = 'Set default';
$labels['autodetect'] = 'Auto';
$labels['language'] = 'Language';
@ -350,4 +350,24 @@ $labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'English';
$labels['westerneuropean'] = 'Western European';
$labels['easterneuropean'] = 'Eastern European';
$labels['southeasterneuropean'] = 'South-Eastern European';
$labels['baltic'] = 'Baltic';
$labels['cyrillic'] = 'Cyrillic';
$labels['arabic'] = 'Arabic';
$labels['greek'] = 'Greek';
$labels['hebrew'] = 'Hebrew';
$labels['turkish'] = 'Turkish';
$labels['nordic'] = 'Nordic';
$labels['thai'] = 'Thai';
$labels['celtic'] = 'Celtic';
$labels['vietnamese'] = 'Vietnamese';
$labels['japanese'] = 'Japanese';
$labels['korean'] = 'Korean';
$labels['chinese'] = 'Chinese';
?>

@ -218,6 +218,7 @@ $labels['language'] = 'Język';
$labels['timezone'] = 'Strefa czasowa';
$labels['pagesize'] = 'Liczba wierszy na stronie';
$labels['signature'] = 'Podpis';
$labels['defaultcharset'] = 'Domyślny zestaw znaków';
$labels['dstactive'] = 'Czas letni';
$labels['htmleditor'] = 'Twórz wiadomości HTML';
$labels['htmlsignature'] = 'Podpis w HTML';
@ -296,5 +297,23 @@ $labels['replysignaturepos'] = 'Podczas odpowiedzi wstaw podpis';
$labels['belowquote'] = 'poniżej cytowanej treści';
$labels['abovequote'] = 'ponad cytowaną treścią';
$labels['unicode'] = 'uniwersalny';
$labels['english'] = 'angielski';
$labels['westerneuropean'] = 'zachodnioeuropejski';
$labels['easterneuropean'] = 'wschodnioeuropejski';
$labels['southeasterneuropean'] = 'południowo-wschodnioeuropejski';
$labels['baltic'] = 'bałtycki';
$labels['cyrillic'] = 'cyrylica';
$labels['arabic'] = 'arabski';
$labels['greek'] = 'grecki';
$labels['hebrew'] = 'hebrajski';
$labels['turkish'] = 'turecki';
$labels['nordic'] = 'nordycki';
$labels['thai'] = 'tajski';
$labels['celtic'] = 'celtycki';
$labels['vietnamese'] = 'wietnamski';
$labels['japanese'] = 'japoński';
$labels['korean'] = 'koreański';
$labels['chinese'] = 'chiński';
?>

@ -368,6 +368,17 @@ function rcmail_user_prefs($current=null)
);
}
if (!isset($no_override['default_charset'])) {
$field_id = 'rcmfd_default_charset';
$blocks['main']['options']['default_charset'] = array(
'title' => html::label($field_id, Q(rcube_label('defaultcharset'))),
'content' => $RCMAIL->output->charset_selector(array(
'name' => '_default_charset', 'selected' => $config['default_charset']
))
);
}
if (!isset($no_override['show_images'])) {
$field_id = 'rcmfd_show_images';
$input_show_images = new html_select(array('name' => '_show_images', 'id' => $field_id));

@ -54,8 +54,10 @@ switch ($CURR_SECTION)
'inline_images' => isset($_POST['_inline_images']) ? TRUE : FALSE,
'show_images' => isset($_POST['_show_images']) ? intval($_POST['_show_images']) : 0,
'display_next' => isset($_POST['_display_next']) ? TRUE : FALSE,
'default_charset' => get_input_value('_default_charset', RCUBE_INPUT_POST),
);
break;
case 'compose':
$a_user_prefs = array(
@ -92,7 +94,6 @@ switch ($CURR_SECTION)
break;
}
$data = rcmail::get_instance()->plugins->exec_hook('save_preferences',
array('prefs' => $a_user_prefs, 'section' => $CURR_SECTION));

Loading…
Cancel
Save