From: Angryziber <ang...@an...> - 2003-03-29 22:19:45
|
Hi! I have a few suggestions to improve SquirrelMail internationalization support. I live in Estonia, but I am Russian. I write letters in both Russian and Estonian languages, sometimes a letter must contain both cyrillic and estonian-specific letters (umlauts). These letter do interfere when using a 8-bit encoding (they have same codes). I use one of Cyrillic charsets as a default one, and some browsers (MSIE, maybe others too) allow typing both types of letters in a TEXTAREA. When submitted, the data are sent unmodified for the charset of the html page, but other characters (of another charset) are converted to HTML entities, like "ä", "õ", etc. Email is then sent as "plain/text", but it contains these HTML entities. SquirrelMail calls htmlspecialchars() function on the message body before outputting it to the browser, so all these entities become visible instead of corresponding characters. What I see is something like: -------------------------------------------------------- This is cyrillic text: COH, AHTOH This is estonian text: Tänan vastuse eest -------------------------------------------------------- Not only these encodings and languages are affected. Browsers can include entities in plain/text emails when any charset is used. So, I suggest a solution (maybe it is not that elegant, but you get the idea): In file i18n.php: Function charset_decode(): After the line: --------------------------------------------------------- $string = htmlspecialchars ($string); --------------------------------------------------------- You can insert these lines: ---------------------------------------------------------------------- // Fix possible bad consequences of htmlcpecialchars() $string = ereg_replace ("&([A-Za-z0-9]{1,8};", "&\\1", $string); ---------------------------------------------------------------------- This will help us, multilanguage people, a lot! All the characters will be displayed as they should. I realize that this is a dirty workaround, but buggy browsers force us to do such things... And MSIE is not the least popular browser nowadays. Another good thing would be to include an option to force using $default_charset. Some users, who want to use, eg Cyrillic charset, like the English UI better that, eg Russian. Hope you will listen to me! Waiting for replies! Anton |