From df8e8ec9eee72743d0f14a8409aacf66c4a80d89 Mon Sep 17 00:00:00 2001 From: yllar <yllar.pajus@gmail.com> Date: Mon, 11 Dec 2006 12:09:34 -0500 Subject: [PATCH] updated da, de_DE, pt_BR, bs_BA, fr, pl, et_EE translations --- program/include/rcube_shared.inc | 159 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 132 insertions(+), 27 deletions(-) diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc index da56651..2ac3f3c 100644 --- a/program/include/rcube_shared.inc +++ b/program/include/rcube_shared.inc @@ -28,12 +28,15 @@ var $scripts_path = ''; var $script_files = array(); + var $external_scripts = array(); var $scripts = array(); var $charset = 'ISO-8859-1'; var $script_tag_file = "<script type=\"text/javascript\" src=\"%s%s\"></script>\n"; var $script_tag = "<script type=\"text/javascript\">\n<!--\n%s\n\n//-->\n</script>\n"; - + var $default_template = "<html>\n<head><title></title></head>\n<body></body>\n</html>"; + var $tag_format_external_script = "<script type=\"text/javascript\" src=\"%s\"></script>\n"; + var $title = ''; var $header = ''; var $footer = ''; @@ -68,20 +71,30 @@ $this->script_files[$position][] = $file; } - + function include_external_script($script_location, $position='head') + { + if (!is_array($this->external_scripts[$position])) + { + $this->external_scripts[$position] = array(); + } + + $this->external_scripts[$position][] = $script_location; + } + function add_script($script, $position='head') { if (!isset($this->scripts[$position])) - $this->scripts[$position] = ''; - - $this->scripts[$position] .= "\n$script"; + $this->scripts[$position] = "\n$script"; + else + $this->scripts[$position] .= "\n$script"; } - function set_title() + function set_title($t) { - + $this->title = $t; } + function set_charset($charset) { @@ -95,20 +108,29 @@ $MBSTRING = FALSE; } } - + function get_charset() { return $this->charset; } + function reset() + { + $this->css = new rcube_css(); + $this->script_files = array(); + $this->scripts = array(); + $this->title = ''; + } + + function write($templ='', $base_path='') { - $output = trim($templ); - + $output = empty($templ) ? $this->default_template : trim($templ); + // set default page title if (!strlen($this->title)) - $this->title = 'RoundCube|Mail'; + $this->title = 'RoundCube Mail'; // replace specialchars in content $__page_title = rep_specialchars_output($this->title, 'html', 'show', FALSE); @@ -117,7 +139,10 @@ // include meta tag with charset if (!empty($this->charset)) - $__page_header = '<meta http-equiv="content-type" content="text/html; charset='.$this->charset.'" />'."\n";; + { + header('Content-Type: text/html; charset='.$this->charset); + $__page_header = '<meta http-equiv="content-type" content="text/html; charset='.$this->charset.'" />'."\n"; + } // definition of the code to be placed in the document header and footer @@ -125,19 +150,30 @@ foreach ($this->script_files['head'] as $file) $__page_header .= sprintf($this->script_tag_file, $this->scripts_path, $file); + if (is_array($this->external_scripts['head'])) + { + foreach ($this->external_scripts['head'] as $xscript) + { + $__page_header .= sprintf($this->tag_format_external_script, $xscript); + } + } + if (strlen($this->scripts['head'])) $__page_header .= sprintf($this->script_tag, $this->scripts['head']); if (is_array($this->script_files['foot'])) + { foreach ($this->script_files['foot'] as $file) $__page_footer .= sprintf($this->script_tag_file, $this->scripts_path, $file); + } if (strlen($this->scripts['foot'])) $__page_footer .= sprintf($this->script_tag, $this->scripts['foot']); - + + if ($this->footer) + $__page_footer .= "\n" . $this->footer; $__page_header .= $this->css->show(); - // find page header if($hpos = strpos(strtolower($output), '</head>')) @@ -178,8 +214,10 @@ // find and add page footer - if(($fpos = strpos(strtolower($output), '</body>')) || ($fpos = strpos(strtolower($output), '</html>'))) - $output = substr($output,0,$fpos) . "$__page_footer\n" . substr($output,$fpos,strlen($output)); + $output_lc = strtolower($output); + if(($fpos = strrstr($output_lc, '</body>')) || + ($fpos = strrstr($output_lc, '</html>'))) + $output = substr($output,0,$fpos) . "$__page_footer\n" . substr($output,$fpos); else $output .= "\n$__page_footer"; @@ -188,8 +226,9 @@ $__page_header = $__page_footer = ''; - // correct absolute pathes in images and other tags + // correct absolute paths in images and other tags $output = preg_replace('/(src|href|background)=(["\']?)(\/[a-z0-9_\-]+)/Ui', "\\1=\\2$base_path\\3", $output); + $output = str_replace('$__skin_path', $base_path, $output); print rcube_charset_convert($output, 'UTF-8', $this->charset); } @@ -839,9 +878,9 @@ if (isset($this->attrib['value'])) unset($this->attrib['value']); - if (strlen($value)) + if (strlen($value) && !isset($this->attrib['mce_editable'])) $value = rep_specialchars_output($value, 'html', 'replace', FALSE); - + // return final tag return sprintf('<%s%s>%s</%s>%s', $this->_conv_case('textarea', 'tag'), @@ -1179,8 +1218,12 @@ // send header with expire date 30 days in future function send_future_expire_header() { - if (!headers_sent()) - header("Expires: ".gmdate("D, d M Y H:i:s", mktime()+2600000)." GMT"); + if (headers_sent()) + return; + + header("Expires: ".gmdate("D, d M Y H:i:s", mktime()+2600000)." GMT"); + header("Cache-Control: "); + header("Pragma: "); } @@ -1218,7 +1261,7 @@ if (!ereg("^[_a-zA-Z]{1}[_a-zA-Z0-9]*$", $key) /* || is_js_reserved_word($key) */) $key = "'$key'"; - if (!is_array($value)) + if (!is_array($value) && is_string($value)) { $value = str_replace("\r\n", '\n', $value); $value = str_replace("\n", '\n', $value); @@ -1229,6 +1272,11 @@ { if ($type=='string') $is_string = true; + else if (($type == 'mixed' && is_bool($value)) || $type == 'bool') + { + $is_string = false; + $value = $value ? "true" : "false"; + } else if ((($type=='mixed' && is_numeric($value)) || $type=='int') && strlen($value)<16) // js interprets numbers with digits >15 as ...e+... $is_string = FALSE; else @@ -1255,7 +1303,9 @@ } } else + { return $arr; + } } @@ -1284,12 +1334,25 @@ } -function show_bytes($numbytes) +// create a human readable string for a number of bytes +function show_bytes($bytes) { - if ($numbytes > 1024) - return sprintf('%d KB', round($numbytes/1024)); + if ($bytes > 1073741824) + { + $gb = $bytes/1073741824; + $str = sprintf($gb>=10 ? "%d GB" : "%.1f GB", $gb); + } + else if ($bytes > 1048576) + { + $mb = $bytes/1048576; + $str = sprintf($mb>=10 ? "%d MB" : "%.1f MB", $mb); + } + else if ($bytes > 1024) + $str = sprintf("%d KB", round($bytes/1024)); else - return sprintf('%d B', $numbytes); + $str = sprintf('%d B', $bytes); + + return $str; } @@ -1330,7 +1393,8 @@ } - +// replace the middle part of a string with ... +// if it is longer than the allowed length function abbrevate_string($str, $maxlength, $place_holder='...') { $length = strlen($str); @@ -1345,6 +1409,20 @@ return $str; } + +// make sure the string ends with a slash +function slashify($str) + { + return unslashify($str).'/'; + } + + +// remove slash at the end of the string +function unslashify($str) + { + return preg_replace('/\/$/', '', $str); + } + // delete all files within a folder function clear_directory($dir_path) @@ -1394,4 +1472,31 @@ } +/** + * strrstr + * + * return the last occurence of a string in another string + * @param haystack string string in which to search + * @param needle string string for which to search + * @return index of needle within haystack, or false if not found + */ +function strrstr($haystack, $needle) + { + $pver = phpversion(); + if ($pver[0] >= 5) + { + return strrpos($haystack, $needle); + } + else + { + $index = strpos(strrev($haystack), strrev($needle)); + if($index === false) { + return false; + } + $index = strlen($haystack) - strlen($needle) - $index; + return $index; + } + } + + ?> -- Gitblit v1.9.1