diff options
author | Hugues Hiegel <root@paranoid> | 2014-08-05 16:46:22 +0200 |
---|---|---|
committer | Hugues Hiegel <root@paranoid> | 2014-08-05 16:46:22 +0200 |
commit | 59478e06c25303a790a0840ab2ac30662c4ef781 (patch) | |
tree | 8d5e964a8f94adaef41efebb0597629f11495c42 /plugins/sauserprefs | |
parent | 7c494b677f9e470ee0d32e62cfa8dc709f39e748 (diff) |
c'est la merde..working
Diffstat (limited to 'plugins/sauserprefs')
40 files changed, 3892 insertions, 0 deletions
diff --git a/plugins/sauserprefs/config.inc.php.dist b/plugins/sauserprefs/config.inc.php.dist new file mode 100644 index 000000000..81b85507f --- /dev/null +++ b/plugins/sauserprefs/config.inc.php.dist @@ -0,0 +1,160 @@ +<?php + +/** + * SAUserPrefs configuration file + */ + +// spamassassin database settings +$rcmail_config['sauserprefs_db_dsnw'] = 'mysql://username:password@localhost/database'; + +// PEAR database DSN for read only operations (if empty write database will be used) +// useful for database replication +$rcmail_config['sauserprefs_db_dsnr'] = ''; + +// use persistent db-connections +// beware this will not "always" work as expected +// see: http://www.php.net/manual/en/features.persistent-connections.php +$rcmail_config['sauserprefs_db_persistent'] = FALSE; + +// table that holds user prefs +$rcmail_config['sauserprefs_sql_table_name'] = "userpref"; + +// name of the username field in the user prefs table +$rcmail_config['sauserprefs_sql_username_field'] = "username"; + +// name of the preference field in the user prefs table, holds the name of the preference +$rcmail_config['sauserprefs_sql_preference_field'] = "preference"; + +// name of the value field in the user prefs table, holds the value of the preference +$rcmail_config['sauserprefs_sql_value_field'] = "value"; + +// username of the current user in the database, normaly %u (username from the session info) +// %u is replaced with the username (from the session info) +// %l is replaced with the local part of the username (if the username is an email address) +// %d is replaced with the domain part of the username (if the username is an email address or default mail domain if not) +// %i is replaced with the email address from the user's default identity +$rcmail_config['sauserprefs_userid'] = "%u"; + +// username of the "global" or default settings user in the database, normaly $GLOBAL or @GLOBAL +$rcmail_config['sauserprefs_global_userid'] = "\$GLOBAL"; + +// enable the whitelists synchronisation, check README for more information +$rcmail_config['sauserprefs_whitelist_sync'] = FALSE; + +// id of the address book to synchronise the whitelist with, null for default Roundcube address book +$rcmail_config['sauserprefs_whitelist_abook_id'] = null; + +// don't allow these settings to be overriden by the user +// eg. $rcmail_config['sauserprefs_dont_override'] = array('required_score','rewrite_header Subject'); +// to disable entire sections enter the secion name surrounded by braces. Sections are: general,tests,bayes,headers,report,addresses +// eg. $rcmail_config['sauserprefs_dont_override'] = array('{tests}'); +$rcmail_config['sauserprefs_dont_override'] = array(); + +// default settings +// these are overridden by $GLOBAL and user settings from the database +$rcmail_config['sauserprefs_default_prefs'] = array( + "required_score" => "5", + "rewrite_header Subject" => "*****SPAM*****", + "ok_languages" => "all", + "ok_locales" => "all", + "fold_headers" => "1", + "add_header all Level" => "_STARS(*)_", + "use_razor1" => "0", + "use_razor2" => "1", + "use_pyzor" => "1", + "use_dcc" => "1", + "use_bayes" => "1", + "skip_rbl_checks" => "0", + "report_safe" => "1", + "bayes_auto_learn" => "1", + "bayes_auto_learn_threshold_nonspam" => "0.1", + "bayes_auto_learn_threshold_spam" => "12.0", + "use_bayes_rules" => "1" + ); + +// spam score increment - increment values in the the score threshold drop down by this, from 0 to 10 +$rcmail_config['sauserprefs_score_inc'] = 1; + +// allow the user to delete bayesian data +// please also see sauserprefs_bayes_delete_query option +$rcmail_config['sauserprefs_bayes_delete'] = false; + +// delete user bayesian data stored in database +// the query can contain the following macros that will be expanded as follows: +// %u is replaced with the username from the sauserprefs_userid setting above +// use an array to run multiple queries +// eg. $rcmail_config['sauserprefs_bayes_delete_query'] = array( +// 'DELETE FROM bayes_seen WHERE id IN (SELECT id FROM bayes_vars WHERE username = %u);', +// 'DELETE FROM bayes_token WHERE id IN (SELECT id FROM bayes_vars WHERE username = %u);', +// 'DELETE FROM bayes_vars WHERE username = %u;', +// ); +$rcmail_config['sauserprefs_bayes_delete_query'] = ''; + +// define languages +$rcmail_config['sauserprefs_languages'] = array( + "af" => "Afrikaans", + "sq" => "Albanian", + "am" => "Amharic", + "ar" => "Arabic", + "hy" => "Armenian", + "eu" => "Basque", + "bs" => "Bosnian", + "bg" => "Bulgarian", + "be" => "Byelorussian", + "ca" => "Catalan", + "zh" => "Chinese", + "hr" => "Croatian", + "cs" => "Czech", + "da" => "Danish", + "nl" => "Dutch", + "en" => "English", + "eo" => "Esperanto", + "et" => "Estonian", + "fi" => "Finnish", + "fr" => "French", + "fy" => "Frisian", + "ka" => "Georgian", + "de" => "German", + "el" => "Greek", + "he" => "Hebrew", + "hi" => "Hindi", + "hu" => "Hungarian", + "is" => "Icelandic", + "id" => "Indonesian", + "ga" => "Irish Gaelic", + "it" => "Italian", + "ja" => "Japanese", + "ko" => "Korean", + "la" => "Latin", + "lv" => "Latvian", + "lt" => "Lithuanian", + "ms" => "Malay", + "mr" => "Marathi", + "ne" => "Nepali", + "no" => "Norwegian", + "fa" => "Persian", + "pl" => "Polish", + "pt" => "Portuguese", + "qu" => "Quechua", + "rm" => "Rhaeto-Romance", + "ro" => "Romanian", + "ru" => "Russian", + "sa" => "Sanskrit", + "sco" => "Scots", + "gd" => "Scottish Gaelic", + "sr" => "Serbian", + "sk" => "Slovak", + "sl" => "Slovenian", + "es" => "Spanish", + "sw" => "Swahili", + "sv" => "Swedish", + "tl" => "Tagalog", + "ta" => "Tamil", + "th" => "Thai", + "tr" => "Turkish", + "uk" => "Ukrainian", + "vi" => "Vietnamese", + "cy" => "Welsh", + "yi" => "Yiddish" + ); +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/include/rcube_sauserprefs_storage.php b/plugins/sauserprefs/include/rcube_sauserprefs_storage.php new file mode 100644 index 000000000..0819d5cf4 --- /dev/null +++ b/plugins/sauserprefs/include/rcube_sauserprefs_storage.php @@ -0,0 +1,268 @@ +<?php + +/** + * SAUserPrefs storage class + * + * Class to handle the SQL work for SAUserPrefs + * + * @author Philip Weir + */ +class rcube_sauserprefs_storage +{ + private $db; + private $db_dsnw; + private $db_dsnr; + private $db_persistent; + private $sa_user; + private $table_name; + private $username_field; + private $preference_field; + private $value_field; + private $bayes_delete_query; + + function __construct($db_dsnw, $db_dsnr, $db_persistent, $sa_user, $table_name, $username_field, $preference_field, $value_field, $bayes_delete_query) + { + $this->db_dsnw = $db_dsnw; + $this->db_dsnr = $db_dsnr; + $this->db_persistent = $db_persistent; + $this->sa_user = $sa_user; + $this->table_name = $table_name; + $this->username_field = $username_field; + $this->preference_field = $preference_field; + $this->value_field = $value_field; + $this->bayes_delete_query = $bayes_delete_query; + } + + function load_prefs($user) + { + $this->_db_connect('r'); + $prefs = array(); + + $sql_result = $this->db->query( + "SELECT ". $this->preference_field. + ", ". $this->value_field. + " FROM ". $this->table_name. + " WHERE ". $this->username_field ." = ?;", + $user); + + while ($sql_result && ($sql_arr = $this->db->fetch_assoc($sql_result))) { + $pref_name = $sql_arr[$this->preference_field]; + $pref_name = sauserprefs::map_pref_name($pref_name, true); + $pref_value = $sql_arr[$this->value_field]; + + if ($pref_name == 'whitelist_from' || $pref_name == 'blacklist_from' || $pref_name == 'whitelist_to') + $prefs['addresses'][] = array('field' => $pref_name, 'value' => $pref_value); + else + $prefs[$pref_name] = $pref_value; + + // update deprecated prefs in db + if ($sql_arr[$this->preference_field] != sauserprefs::map_pref_name($pref_name)) { + $this->_db_connect('w'); + + $this->db->query( + "UPDATE ". $this->table_name. + " SET ". $this->preference_field ." = ?". + " WHERE ". $this->username_field ." = ?". + " AND ". $this->preference_field ." = ?;", + sauserprefs::map_pref_name($pref_name), + $user, + $sql_arr[$this->preference_field]); + } + } + + return $prefs; + } + + function save_prefs($new_prefs, $cur_prefs, $global_prefs) + { + $this->_db_connect('w'); + $result = true; + + // save prefs + foreach ($new_prefs as $preference => $value) { + if ($preference == 'addresses') { + foreach ($value as $address) { + if ($address['action'] == "DELETE") { + $result = false; + + $this->db->query( + "DELETE FROM ". $this->table_name. + " WHERE ". $this->username_field ." = ?". + " AND ". $this->preference_field ." = ?". + " AND ". $this->value_field ." = ?;", + $this->sa_user, + sauserprefs::map_pref_name($address['field']), + $address['value']); + + $result = $this->db->affected_rows(); + + if (!$result) { + rcube::write_log('errors', 'sauserprefs error: cannot delete "' . sauserprefs::map_pref_name($prefs[$idx]) . '" = "' . $vals[$idx] . '" for ' . $this->sa_user); + break; + } + } + elseif ($address['action'] == "INSERT") { + $result = false; + + $this->db->query( + "INSERT INTO ". $this->table_name. + " (". $this->username_field. + ", ". $this->preference_field. + ", ". $this->value_field. + ") VALUES (?, ?, ?);", + $this->sa_user, + sauserprefs::map_pref_name($address['field']), + $address['value']); + + $result = $this->db->affected_rows(); + + if (!$result) { + rcube::write_log('errors', 'sauserprefs error: cannot insert "' . sauserprefs::map_pref_name($prefs[$idx]) . '" = "' . $vals[$idx] . '" for ' . $this->sa_user); + break; + } + } + } + } + elseif (array_key_exists($preference, $cur_prefs) && ($value == "" || $value == $global_prefs[$preference])) { + $result = false; + + $this->db->query( + "DELETE FROM ". $this->table_name. + " WHERE ". $this->username_field ." = ?". + " AND ". $this->preference_field ." = ?;", + $this->sa_user, + sauserprefs::map_pref_name($preference)); + + $result = $this->db->affected_rows(); + + if (!$result) { + rcube::write_log('errors', 'sauserprefs error: cannot delete "' . sauserprefs::map_pref_name($preference) . '" for "' . $this->sa_user); + break; + } + } + elseif (array_key_exists($preference, $cur_prefs) && $value != $cur_prefs[$preference]) { + $result = false; + + $this->db->query( + "UPDATE ". $this->table_name. + " SET ". $this->value_field ." = ?". + " WHERE ". $this->username_field ." = ?". + " AND ". $this->preference_field ." = ?;", + $value, + $this->sa_user, + sauserprefs::map_pref_name($preference)); + + $result = $this->db->affected_rows(); + + if (!$result) { + rcube::write_log('errors', 'sauserprefs error: cannot update "' . sauserprefs::map_pref_name($preference) . '" = "' . $value . '" for ' . $this->sa_user); + break; + } + } + elseif (!array_key_exists($preference, $cur_prefs) && $value != $global_prefs[$preference]) { + $result = false; + + $this->db->query( + "INSERT INTO ". $this->table_name. + " (". $this->username_field. + ", ". $this->preference_field. + ", ". $this->value_field. + ") VALUES (?, ?, ?);", + $this->sa_user, + sauserprefs::map_pref_name($preference), + $value); + + $result = $this->db->affected_rows(); + + if (!$result) { + rcube::write_log('errors', 'sauserprefs error: cannot insert "' . sauserprefs::map_pref_name($preference) . '" = "' . $value . '" for ' . $this->sa_user); + break; + } + } + } + + return $result; + } + + function whitelist_add($emails) + { + $this->_db_connect('w'); + + foreach ($emails as $email) { + // check address is not already whitelisted + $sql_result = $this->db->query( + "SELECT ". $this->value_field. + " FROM ". $this->table_name. + " WHERE ". $this->username_field ." = ?". + " AND ". $this->preference_field ." = ?". + " AND ". $this->value_field ." = ?;", + $this->sa_user, + sauserprefs::map_pref_name('whitelist_from'), + $email); + + if (!$this->db->fetch_array($sql_result)) + $this->db->query( + "INSERT INTO ". $this->table_name. + " (". $this->username_field. + ", ". $this->preference_field. + ", ". $this->value_field. + ") VALUES (?, ?, ?);", + $this->sa_user, + sauserprefs::map_pref_name('whitelist_from'), + $email); + } + } + + function whitelist_delete($emails) + { + $this->_db_connect('w'); + + foreach ($emails as $email) + $this->db->query( + "DELETE FROM ". $this->table_name. + " WHERE ". $this->username_field ." = ?". + " AND ". $this->preference_field ." = ?". + " AND ". $this->value_field ." = ?;", + $this->sa_user, + sauserprefs::map_pref_name('whitelist_from'), + $email); + + } + + function purge_bayes() + { + $this->_db_connect('w'); + $queries = !is_array($this->bayes_delete_query) ? array($this->bayes_delete_query) : $this->bayes_delete_query; + + foreach ($queries as $sql) { + $sql = str_replace('%u', $this->db->quote($this->sa_user, 'text'), $sql); + $this->db->query($sql); + + if ($this->db->is_error()) + break; + } + + if (!$this->db->is_error()) + return true; + else + return false; + } + + private function _db_connect($mode) + { + if (!$this->db) + $this->db = rcube_db::factory($this->db_dsnw, $this->db_dsnr, $this->db_persistent); + + $this->db->db_connect($mode); + + // check DB connections and exit on failure + if ($err_str = $this->db->is_error()) { + raise_error(array( + 'code' => 603, + 'type' => 'db', + 'message' => $err_str), false, true); + } + } +} + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/cs_CZ.inc b/plugins/sauserprefs/localization/cs_CZ.inc new file mode 100644 index 000000000..53be0e691 --- /dev/null +++ b/plugins/sauserprefs/localization/cs_CZ.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Tomáš Bezděk */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['managespam'] = 'Spravovat nastavení detekce spamu'; +$labels['sauserprefssettings'] = 'Nastavení Spam-u'; +$labels['spamgeneralsettings'] = 'Všeobecné nastavení'; +$labels['spamthres'] = 'Hranice skóre'; +$labels['spamsubject'] = 'Značka v předmětu'; +$labels['spamsubjectblank'] = '(nechajte prázdne pre žádnou)'; +$labels['spamlang'] = 'Jazyky zprávy'; +$labels['enabled'] = 'Povoleno'; +$labels['disabled'] = 'Zakázáno'; +$labels['headers'] = 'Hlavičky zpráv'; +$labels['foldheaders'] = 'Povolit víceřádkové v hlavičky'; +$labels['spamlevelstars'] = 'Pouzít \'Spam Level\' hlavičku (úroveň spamu)'; +$labels['spamlevelchar'] = 'Znak úrovně spamu'; +$labels['spamtests'] = 'Internetové spam testy'; +$labels['userazor1'] = 'Použít Razor v1'; +$labels['userazor2'] = 'Použít Razor v2'; +$labels['usepyzor'] = 'Použít Pyzor'; +$labels['usebayes'] = 'Použít Bayesiánský klasifikátor'; +$labels['usedcc'] = 'Použít DCC'; +$labels['skiprblchecks'] = 'Použít RBL'; +$labels['spamreportsettings'] = 'Nastavení reportu'; +$labels['spamreport0'] = 'Zahrnout oznámení do hlavičky originální zprávy'; +$labels['spamreport1'] = 'Zahrnout originál jako MIME přílohu k oznámení'; +$labels['spamreport2'] = 'Zahrnout originál jako textovou přílohu k oznámení'; +$labels['spamaddressrules'] = 'Pravidla adres'; +$labels['whitelist_from'] = 'Příjmout zprávu od'; +$labels['blacklist_from'] = 'Odmítnout zprávu od'; +$labels['whitelist_to'] = 'Příjmat zprávy zaslané pro'; +$labels['addrule'] = 'Přidat'; +$labels['rule'] = 'Pravidlo'; +$labels['importfromaddressbook'] = 'Importovat adresy z adresáře'; +$labels['deleteall'] = 'Odstranit vše'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Výchozí hodnocení'; +$labels['otherscore'] = 'Ostatní (%s)'; +$labels['usedefault'] = 'Obnovit výchozí nastavení'; +$labels['langoptions'] = 'Jazyková nastavení'; +$labels['bayes'] = 'Nastaveni Bayes filtru'; +$labels['purgingbayes'] = 'Odstraňuji Bayesiánské data'; +$labels['purgebayes'] = 'Odstranit vlastní Bayesiánské data'; +$labels['bayesautolearn'] = 'Použít automatické učení Bayesiánského filtru'; +$labels['bayesautooptions'] = 'Nastavení automatického učení'; +$labels['bayesnonspam'] = 'Hranice pro be-spam'; +$labels['bayesspam'] = 'Hranice pro spam'; +$labels['bayesrules'] = 'Použít Bayesiánská pravidla'; +$labels['help'] = 'Nápověda'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Nastavení spamu bylo úspěšně změněno'; +$messages['sauserpreffailed'] = 'Chyba: Nastavení spamu se nepodařilo změnit'; +$messages['spamthresexp'] = 'Všechny maily se skóre vyšším, jako určená hranice budou označeny jako spam. Zvýšením této hranice sa zvýší počet nerozpoznaných spamů, na druhé straně sa sníží počet mailův chybně označených jako spam.'; +$messages['spamlangexp'] = 'Vyberte všechny jazyky ve kterých předpokladáte příjem e-mailů. Všetky přijaté zprávy napsané v jiných jazycích budou brány jako pravděpodobný spam.'; +$messages['headersexp'] = 'SpamAssassin přidává do kontrolovaných e-mailů hlavičky s informacemi o výsledcích kontroly. Použijte nasledující volby na jejich přizpůsobení.'; +$messages['spamtestssexp'] = 'Některé testy pri detekci spamu používají externí služby na internetu. Vyberte ty, které chcete využívat:'; +$messages['spamreport'] = 'Pokud je e-mail identifikovaný jako spam, vytvoří se report o všech testech a jejich dosáhnutém skóre...'; +$messages['autowhitelist'] = 'E-mailové adresy ve vašem Addresáři jsou automaticky přidány do listu "Příjmout zprávu od".'; +$messages['whitelistexp'] = 'V e-mailových adresách může byť použitý zástupný znak hvězdička (*). Např.: *@domena.cz or *@*.domena.cz.'; +$messages['spamaddressexists'] = 'Previdlo pro tuto adresu již existuje'; +$messages['spamenteraddress'] = 'Prosím zadajte adresu, kterou chcete přidat'; +$messages['spamaddresserror'] = 'Chyba: Adresa se jeví neplatná'; +$messages['spamaddressdelete'] = 'Jste si jisti, že chcete vymazat toto pravidlo?'; +$messages['spamaddressdeleteall'] = 'Jste si jisti, že chcete vymazae všechny pravidla?'; +$messages['noaddressrules'] = 'Nebyly nalezeny žádné pravidla adries.'; +$messages['importingaddresses'] = 'Importuji adresy ....'; +$messages['usedefaultconfirm'] = 'Jste si jisti, že chcete doopravdy obnovit předvolené nastavení? To vymaže všechny Vaše nastavení, včetně pravidel adres.'; +$messages['purgebayesexp'] = 'Vymaže osobní Bayesiánskou databázi vytvořenou z Vašich e-mailoů'; +$messages['bayesnonspamexp'] = 'E-maily s nižším skóre jak uvedená hranice budou použité na zlepšení detekce (naučení) nespamových zpráv.'; +$messages['bayesspamexp'] = 'E-maily s vyšším skóre jak uvedená hranice budou použité na zlepšení detekce (naučení) nespamových zpráv.'; +$messages['bayesautohelp'] = 'Pokud je automatické učení zapnuto, systém použije zprávy které s velkou jistotou prohlásí za spam/nespam na zlepšení detekčných filtrů.'; +$messages['bayeshelp'] = 'Bayesianský klasifikátor se snaží identifikovat spam podle slov, alebo shluku znaků, které sa obvykle vyskytují v spamových, alebo nespamových e-mailech.'; +$messages['rblhelp'] = 'IP adresy serverů v hlavičkách, nebo v odkazech v e-mailu budou vyhledané na něktorých blacklistech. Blacklisty jsou seznamy známých adres spammerů, které se aktualizují v reálném čase.'; +$messages['dcchelp'] = 'DCC, aneb distribuované výměnné centrum kontrolních součtů, je systém serverů sbírajících a vypočítavajících kontrolní součty (či podpisy) milionů e-mailů denně. Podle podobnosti kontrolního součtu příchozí zprávy vůči seznamu evidovaných se určuje pravděpodobnost spamu.'; +$messages['pyzhelp'] = 'Pyzor je síťový systém na detekci a blokování spamu pomocí přehledu zpráv. Přehledy sa vypočítavají několika způsoby tak, aby dokázaly tolerovat malou změnu v obsahu zprávy.'; +$messages['raz2help'] = 'Vipul\'s Razor je distribuovaná spolupracující síť na detekci a blokování spamu, pracující na základě užívateli zaslaných spamových vzorků. Tyto vzorky jsou zohledňovány podle reputace užívatele, který je poskytl. Detekcie se tvoří pomocí charakteristik, které efektívně zachytávají i měníací se obsah spamu.'; +$messages['raz1help'] = 'Vipul\'s Razor je distribuovaná spolupracující síť na detekci a blokování spamu, pracující na základě uživateľ zaslaných spamových vzorků. Tyto vzorky jsou zohledňovány podle reputace uživatele, který je poskytl. Detekcie sa tvoří pomocí charakteristík, které efektivně zachytávají i měnící se obsah spamu. Verzie 1 byla nahrzena verzí 2 a není už nadále podporována.'; +$messages['levelhelp'] = 'Hlavička \'Spam Level\' zobrazuje opakovaním znaku (např. hvezdičky) skóre, které kontrolovaný e-mail získal. To může být užitečné při dalším zpracování e-mailu.'; +$messages['foldhelp'] = 'Mohou být hlavičky přidané do e-mailu SpamAssassinem rozdělené na víc řádků, namísto toho, aby byly na jednom velmi dlouhém řádku? Pokud je řádek rozdělený, jeho pokračování je označeno odsazením.'; +$messages['bayesruleshlp'] = 'Předtím, než může byt Bayesovský klasifikátor efektívně použit, musí se natrénovat správně rozeznávat spam od nespamu. Vypnutím Bayesiánskych pravidel umožníte systému učit se z přicházejícich e-mailů, ale nebude se používat na detekci spamu..'; +$messages['purgebayesconfirm'] = 'Jste si jisti, že chcete doopravdy vymazat celou Vaši Bayesiánskou databázi?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/de_CH.inc b/plugins/sauserprefs/localization/de_CH.inc new file mode 100644 index 000000000..00cd54ffb --- /dev/null +++ b/plugins/sauserprefs/localization/de_CH.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Simon Tauber */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['managespam'] = 'Verwalten der Spamfilter-Einstellungen'; +$labels['sauserprefssettings'] = 'Spam Einstellungen'; +$labels['spamgeneralsettings'] = 'Generelle Einstellugen'; +$labels['spamthres'] = 'Schwellenwert'; +$labels['spamsubject'] = 'Spam Betreff'; +$labels['spamsubjectblank'] = '(Leer lassen um zu deaktivieren)'; +$labels['spamlang'] = 'Mitteilungssprache'; +$labels['enabled'] = 'Aktiviert'; +$labels['disabled'] = 'Deaktiviert'; +$labels['headers'] = 'Mitteilungsheaders'; +$labels['foldheaders'] = 'Mehrzeilige Header erlauben'; +$labels['spamlevelstars'] = '\'Spam Level\' Header verwenden'; +$labels['spamlevelchar'] = 'Spam Level Symbol'; +$labels['spamtests'] = 'Internet basierter Spam Test'; +$labels['userazor1'] = 'Razor v1 verwenden'; +$labels['userazor2'] = 'Razor v2 verwenden'; +$labels['usepyzor'] = 'Pyzor verwenden'; +$labels['usebayes'] = 'Naive Bayesische Stil Klassifizierung'; +$labels['usedcc'] = 'DCC verwenden'; +$labels['skiprblchecks'] = 'Echtzeit Blackhole Liste verwenden'; +$labels['spamreportsettings'] = 'Berichtseinstellungen'; +$labels['spamreport0'] = 'Bericht in den Header der Orginalnachricht einfügen'; +$labels['spamreport1'] = 'Orginalmeldung dem Bericht als MIME Anhang hinzufügen'; +$labels['spamreport2'] = 'Orginalmeldung dem Bericht als Text Anhang hinzufügen'; +$labels['spamaddressrules'] = 'Addressregeln'; +$labels['whitelist_from'] = 'Mails akzeptieren von'; +$labels['blacklist_from'] = 'Mails ablehnen von'; +$labels['whitelist_to'] = 'Akzeptiere Mails gesendet an'; +$labels['addrule'] = 'Regel hinzufügen'; +$labels['rule'] = 'Regel'; +$labels['importfromaddressbook'] = 'Adressen aus dem Adressbuch importieren'; +$labels['deleteall'] = 'Alle löschen'; +$labels['autoscore'] = 'Automatisch'; +$labels['defaultscore'] = 'Standardscore'; +$labels['otherscore'] = 'Andere (%s)'; +$labels['usedefault'] = 'Standardscore wiederherstellen'; +$labels['langoptions'] = 'Sprachoptionen'; +$labels['bayes'] = 'Bayes Einstellungen'; +$labels['purgingbayes'] = 'Lösche bayesische Daten...'; +$labels['purgebayes'] = 'Lösche persönliche bayesische Daten'; +$labels['bayesautolearn'] = 'Bayes auto-lernen verwenden'; +$labels['bayesautooptions'] = 'Auto-lernen Optionen'; +$labels['bayesnonspam'] = '"Kein Spam" Schwellenwert'; +$labels['bayesspam'] = '"Spam" Schwellenwert'; +$labels['bayesrules'] = 'Bayesische Regeln verwenden'; +$labels['help'] = 'Hilfe'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Spam Einstellungen erfolgreich geändert'; +$messages['sauserpreffailed'] = 'Fehler: Spam-Einstellungen konnten nicht geändert werden'; +$messages['spamthresexp'] = 'Alles über dem Schwellenwert wird als Spam markiert. Erhöhen des Schwellenwerts minimiert die verpassten Meldungen, aber erhöht die Möglichkeit der falschen Einstufung.'; +$messages['spamlangexp'] = 'Wählen Sie alle Sprachen in denen Mails empfangen werden sollen. Alle nicht ausgewählten Sprachen werden als möglicher Spam markiert.'; +$messages['headersexp'] = 'SpamAssassin fügt den verarbeiteten Mitteilungen Header mit Informationen über das Ergebnis zu. Verwende folgende Optionen um diese Header zu konfigurieren.'; +$messages['spamtestssexp'] = 'Einige Checks verwenden Internet-baiserte Dienste um Spam besser identifizieren zu können. Wählen Sie, welche verwendet werden sollen:'; +$messages['spamreport'] = 'Wird eine Mail als Spam identifiziert werden Berichte aller zugewiesenen Tests und Scores hinzugefügt...'; +$messages['autowhitelist'] = 'Email Adressen aus dem Adressbuch werden automatisch zu der "Whitelist" hinzugefügt.'; +$messages['whitelistexp'] = 'Ein (*) kann als Wildcard verwendet werden. Zum Beispiel: *@example.com oder *@*.example.com.'; +$messages['spamaddressexists'] = 'Es existiert bereits eine Regel für diese Adresse'; +$messages['spamenteraddress'] = 'Bitte eine hinzuzufügende Adresse eingeben'; +$messages['spamaddresserror'] = 'Fehler: Die Adresse scheint ungültig zu sein'; +$messages['spamaddressdelete'] = 'Sind Sie sicher, dass Sie diese Regel löschen möchten?'; +$messages['spamaddressdeleteall'] = 'Sind Sie sicher, dass Sie alle Adressregeln löschen möchten?'; +$messages['noaddressrules'] = 'Keine Adressregel gefunden.'; +$messages['importingaddresses'] = 'Adressen werden importiert...'; +$messages['usedefaultconfirm'] = 'Sind Sie sicher, dass Sie die Standardeinstellungen wiederherstellen möchten? Alle Einstellungen inklusive Adressregeln werden gelöscht.'; +$messages['purgebayesexp'] = 'Gesammelte persönliche Bayesische Daten Ihrer Mails löschen.'; +$messages['bayesnonspamexp'] = 'Mittelungen, deren Score unter diesem Schwellenwert liegen, werden verwendet um die "Ham" Erkennung zu verbessern.'; +$messages['bayesspamexp'] = 'Mittelungen, deren Score über diesem Schwellenwert liegen, werden verwendet um die Spam-Erkennung zu verbessern.'; +$messages['bayesautohelp'] = 'Wenn Bayes auto-lernen aktiviert ist, verwendet das System Mitteilungen die höchstwarscheinlich Spam/Ham sind um die Erkennungsfilter zu verbessern..'; +$messages['bayeshelp'] = 'Die bayesische Klassifizierung versucht Spam anhand bekannter Wortfolgen zu identifizieren, die in Spam/Ham Mitteilungen gefunden wurde.'; +$messages['rblhelp'] = 'Die Serveradressen der hypertext links einer Mitteilung werden mit Blacklists oder Listen bekannter Spamquellen verglichen.'; +$messages['dcchelp'] = 'DCC (Distributed Checksum Clearinghouse) ist ein System aus Servern die Cheksummen von millionen von Mails sammeln und zählen. Dies Werte können verwendet werden um Spam zu erkennen.'; +$messages['pyzhelp'] = 'Pyzor ist ein kollaboratives, vernetztes System, um Spam anhand eines Auszugs einer Mitteilung zu erkennen und zu blocken.'; +$messages['raz2help'] = 'Vipul\'s Razor ist ein Prüfsummen-basiertes, verteiltes, gemeinschaftliches E-Mail-Spam-Erkennungs- und -Filter-Netzwerk. Razor basiert auf einem verteilten Spam-Katalog, der durch Benutzerrückmeldungen ständig aktualisiert wird. E-Mail-Clients und -Server können so bekannten Spam filtern. Die Erkennung erfolgt über statistische und randomisierte Signaturen.'; +$messages['raz1help'] = 'Vipul\'s Razor ist ein Prüfsummen-basiertes, verteiltes, gemeinschaftliches E-Mail-Spam-Erkennungs- und -Filter-Netzwerk. Razor basiert auf einem verteilten Spam-Katalog, der durch Benutzerrückmeldungen ständig aktualisiert wird. E-Mail-Clients und -Server können so bekannten Spam filtern. Die Erkennung erfolgt über statistische und randomisierte Signaturen.'; +$messages['levelhelp'] = 'Der \'Spam Level\' Header kann Mitteilungen anhand von Zeichen, die sich eine bestimmte Anzahl mal wiederhohlen, hinzugefügt werden.'; +$messages['foldhelp'] = 'Standardmäßig werden Header, die von SpamAssasin hinzugefügt werden, "whitespace foled". In anderen Worten: Sie werden auf mehrere Zeilen verteilt anstelle von einer sehr langen Zeile. Jeder andere Zeile wird ein Tabulator vorgesetzt um es als eine weiterführende Zeile der Vorhergehenden zu markieren.'; +$messages['bayesruleshlp'] = 'Es empfiehlt sich, die "naive bayesische Stil Klassifizierung" zu verwenden. Damit können auch die Regeln deaktiviert werden auch wenn das automatisch und manuelle Lernen aktiviert ist.'; +$messages['purgebayesconfirm'] = 'Sind Sie sicher, dass Sie alle bayesischen Daten löschen möchten?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/de_DE.inc b/plugins/sauserprefs/localization/de_DE.inc new file mode 100644 index 000000000..00cd54ffb --- /dev/null +++ b/plugins/sauserprefs/localization/de_DE.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Simon Tauber */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['managespam'] = 'Verwalten der Spamfilter-Einstellungen'; +$labels['sauserprefssettings'] = 'Spam Einstellungen'; +$labels['spamgeneralsettings'] = 'Generelle Einstellugen'; +$labels['spamthres'] = 'Schwellenwert'; +$labels['spamsubject'] = 'Spam Betreff'; +$labels['spamsubjectblank'] = '(Leer lassen um zu deaktivieren)'; +$labels['spamlang'] = 'Mitteilungssprache'; +$labels['enabled'] = 'Aktiviert'; +$labels['disabled'] = 'Deaktiviert'; +$labels['headers'] = 'Mitteilungsheaders'; +$labels['foldheaders'] = 'Mehrzeilige Header erlauben'; +$labels['spamlevelstars'] = '\'Spam Level\' Header verwenden'; +$labels['spamlevelchar'] = 'Spam Level Symbol'; +$labels['spamtests'] = 'Internet basierter Spam Test'; +$labels['userazor1'] = 'Razor v1 verwenden'; +$labels['userazor2'] = 'Razor v2 verwenden'; +$labels['usepyzor'] = 'Pyzor verwenden'; +$labels['usebayes'] = 'Naive Bayesische Stil Klassifizierung'; +$labels['usedcc'] = 'DCC verwenden'; +$labels['skiprblchecks'] = 'Echtzeit Blackhole Liste verwenden'; +$labels['spamreportsettings'] = 'Berichtseinstellungen'; +$labels['spamreport0'] = 'Bericht in den Header der Orginalnachricht einfügen'; +$labels['spamreport1'] = 'Orginalmeldung dem Bericht als MIME Anhang hinzufügen'; +$labels['spamreport2'] = 'Orginalmeldung dem Bericht als Text Anhang hinzufügen'; +$labels['spamaddressrules'] = 'Addressregeln'; +$labels['whitelist_from'] = 'Mails akzeptieren von'; +$labels['blacklist_from'] = 'Mails ablehnen von'; +$labels['whitelist_to'] = 'Akzeptiere Mails gesendet an'; +$labels['addrule'] = 'Regel hinzufügen'; +$labels['rule'] = 'Regel'; +$labels['importfromaddressbook'] = 'Adressen aus dem Adressbuch importieren'; +$labels['deleteall'] = 'Alle löschen'; +$labels['autoscore'] = 'Automatisch'; +$labels['defaultscore'] = 'Standardscore'; +$labels['otherscore'] = 'Andere (%s)'; +$labels['usedefault'] = 'Standardscore wiederherstellen'; +$labels['langoptions'] = 'Sprachoptionen'; +$labels['bayes'] = 'Bayes Einstellungen'; +$labels['purgingbayes'] = 'Lösche bayesische Daten...'; +$labels['purgebayes'] = 'Lösche persönliche bayesische Daten'; +$labels['bayesautolearn'] = 'Bayes auto-lernen verwenden'; +$labels['bayesautooptions'] = 'Auto-lernen Optionen'; +$labels['bayesnonspam'] = '"Kein Spam" Schwellenwert'; +$labels['bayesspam'] = '"Spam" Schwellenwert'; +$labels['bayesrules'] = 'Bayesische Regeln verwenden'; +$labels['help'] = 'Hilfe'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Spam Einstellungen erfolgreich geändert'; +$messages['sauserpreffailed'] = 'Fehler: Spam-Einstellungen konnten nicht geändert werden'; +$messages['spamthresexp'] = 'Alles über dem Schwellenwert wird als Spam markiert. Erhöhen des Schwellenwerts minimiert die verpassten Meldungen, aber erhöht die Möglichkeit der falschen Einstufung.'; +$messages['spamlangexp'] = 'Wählen Sie alle Sprachen in denen Mails empfangen werden sollen. Alle nicht ausgewählten Sprachen werden als möglicher Spam markiert.'; +$messages['headersexp'] = 'SpamAssassin fügt den verarbeiteten Mitteilungen Header mit Informationen über das Ergebnis zu. Verwende folgende Optionen um diese Header zu konfigurieren.'; +$messages['spamtestssexp'] = 'Einige Checks verwenden Internet-baiserte Dienste um Spam besser identifizieren zu können. Wählen Sie, welche verwendet werden sollen:'; +$messages['spamreport'] = 'Wird eine Mail als Spam identifiziert werden Berichte aller zugewiesenen Tests und Scores hinzugefügt...'; +$messages['autowhitelist'] = 'Email Adressen aus dem Adressbuch werden automatisch zu der "Whitelist" hinzugefügt.'; +$messages['whitelistexp'] = 'Ein (*) kann als Wildcard verwendet werden. Zum Beispiel: *@example.com oder *@*.example.com.'; +$messages['spamaddressexists'] = 'Es existiert bereits eine Regel für diese Adresse'; +$messages['spamenteraddress'] = 'Bitte eine hinzuzufügende Adresse eingeben'; +$messages['spamaddresserror'] = 'Fehler: Die Adresse scheint ungültig zu sein'; +$messages['spamaddressdelete'] = 'Sind Sie sicher, dass Sie diese Regel löschen möchten?'; +$messages['spamaddressdeleteall'] = 'Sind Sie sicher, dass Sie alle Adressregeln löschen möchten?'; +$messages['noaddressrules'] = 'Keine Adressregel gefunden.'; +$messages['importingaddresses'] = 'Adressen werden importiert...'; +$messages['usedefaultconfirm'] = 'Sind Sie sicher, dass Sie die Standardeinstellungen wiederherstellen möchten? Alle Einstellungen inklusive Adressregeln werden gelöscht.'; +$messages['purgebayesexp'] = 'Gesammelte persönliche Bayesische Daten Ihrer Mails löschen.'; +$messages['bayesnonspamexp'] = 'Mittelungen, deren Score unter diesem Schwellenwert liegen, werden verwendet um die "Ham" Erkennung zu verbessern.'; +$messages['bayesspamexp'] = 'Mittelungen, deren Score über diesem Schwellenwert liegen, werden verwendet um die Spam-Erkennung zu verbessern.'; +$messages['bayesautohelp'] = 'Wenn Bayes auto-lernen aktiviert ist, verwendet das System Mitteilungen die höchstwarscheinlich Spam/Ham sind um die Erkennungsfilter zu verbessern..'; +$messages['bayeshelp'] = 'Die bayesische Klassifizierung versucht Spam anhand bekannter Wortfolgen zu identifizieren, die in Spam/Ham Mitteilungen gefunden wurde.'; +$messages['rblhelp'] = 'Die Serveradressen der hypertext links einer Mitteilung werden mit Blacklists oder Listen bekannter Spamquellen verglichen.'; +$messages['dcchelp'] = 'DCC (Distributed Checksum Clearinghouse) ist ein System aus Servern die Cheksummen von millionen von Mails sammeln und zählen. Dies Werte können verwendet werden um Spam zu erkennen.'; +$messages['pyzhelp'] = 'Pyzor ist ein kollaboratives, vernetztes System, um Spam anhand eines Auszugs einer Mitteilung zu erkennen und zu blocken.'; +$messages['raz2help'] = 'Vipul\'s Razor ist ein Prüfsummen-basiertes, verteiltes, gemeinschaftliches E-Mail-Spam-Erkennungs- und -Filter-Netzwerk. Razor basiert auf einem verteilten Spam-Katalog, der durch Benutzerrückmeldungen ständig aktualisiert wird. E-Mail-Clients und -Server können so bekannten Spam filtern. Die Erkennung erfolgt über statistische und randomisierte Signaturen.'; +$messages['raz1help'] = 'Vipul\'s Razor ist ein Prüfsummen-basiertes, verteiltes, gemeinschaftliches E-Mail-Spam-Erkennungs- und -Filter-Netzwerk. Razor basiert auf einem verteilten Spam-Katalog, der durch Benutzerrückmeldungen ständig aktualisiert wird. E-Mail-Clients und -Server können so bekannten Spam filtern. Die Erkennung erfolgt über statistische und randomisierte Signaturen.'; +$messages['levelhelp'] = 'Der \'Spam Level\' Header kann Mitteilungen anhand von Zeichen, die sich eine bestimmte Anzahl mal wiederhohlen, hinzugefügt werden.'; +$messages['foldhelp'] = 'Standardmäßig werden Header, die von SpamAssasin hinzugefügt werden, "whitespace foled". In anderen Worten: Sie werden auf mehrere Zeilen verteilt anstelle von einer sehr langen Zeile. Jeder andere Zeile wird ein Tabulator vorgesetzt um es als eine weiterführende Zeile der Vorhergehenden zu markieren.'; +$messages['bayesruleshlp'] = 'Es empfiehlt sich, die "naive bayesische Stil Klassifizierung" zu verwenden. Damit können auch die Regeln deaktiviert werden auch wenn das automatisch und manuelle Lernen aktiviert ist.'; +$messages['purgebayesconfirm'] = 'Sind Sie sicher, dass Sie alle bayesischen Daten löschen möchten?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/en_GB.inc b/plugins/sauserprefs/localization/en_GB.inc new file mode 100644 index 000000000..6c500af9f --- /dev/null +++ b/plugins/sauserprefs/localization/en_GB.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Philip Weir */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['managespam'] = 'Manage spam detection settings'; +$labels['sauserprefssettings'] = 'Spam settings'; +$labels['spamgeneralsettings'] = 'General Settings'; +$labels['spamthres'] = 'Score threshold'; +$labels['spamsubject'] = 'Subject tag'; +$labels['spamsubjectblank'] = '(leave blank for none)'; +$labels['spamlang'] = 'Message languages'; +$labels['enabled'] = 'Enabled'; +$labels['disabled'] = 'Disabled'; +$labels['headers'] = 'Message Headers'; +$labels['foldheaders'] = 'Allow multiple lines in headers'; +$labels['spamlevelstars'] = 'Use \'Spam Level\' header'; +$labels['spamlevelchar'] = 'Spam level character'; +$labels['spamtests'] = 'Internet Based Spam Tests'; +$labels['userazor1'] = 'Use Razor v1'; +$labels['userazor2'] = 'Use Razor v2'; +$labels['usepyzor'] = 'Use Pyzor'; +$labels['usebayes'] = 'Use Bayesian style classifier'; +$labels['usedcc'] = 'Use DCC'; +$labels['skiprblchecks'] = 'Use Realtime Blackhole List'; +$labels['spamreportsettings'] = 'Report Settings'; +$labels['spamreport0'] = 'Include report in headers of original message'; +$labels['spamreport1'] = 'Include original as MIME attachment to report'; +$labels['spamreport2'] = 'Include original as text-only attachment to report'; +$labels['spamaddressrules'] = 'Address Rules'; +$labels['whitelist_from'] = 'Accept Mail From'; +$labels['blacklist_from'] = 'Reject Mail From'; +$labels['whitelist_to'] = 'Accept Mail Sent To'; +$labels['addrule'] = 'Add Rule'; +$labels['rule'] = 'Rule'; +$labels['importfromaddressbook'] = 'Import addresses from Address Book'; +$labels['deleteall'] = 'Delete All'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Default Score'; +$labels['otherscore'] = 'Other (%s)'; +$labels['usedefault'] = 'Restore Default Settings'; +$labels['langoptions'] = 'Language Options'; +$labels['bayes'] = 'Bayes Settings'; +$labels['purgingbayes'] = 'Deleting Bayesian data...'; +$labels['purgebayes'] = 'Delete personal Bayesian data'; +$labels['bayesautolearn'] = 'Use Bayes auto learn'; +$labels['bayesautooptions'] = 'Auto learn options'; +$labels['bayesnonspam'] = 'Non spam threshold'; +$labels['bayesspam'] = 'Spam threshold'; +$labels['bayesrules'] = 'Use Baysian rules'; +$labels['help'] = 'Help'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Successfully changed spam settings'; +$messages['sauserpreffailed'] = 'Error: Cannot change spam settings'; +$messages['spamthresexp'] = 'Anything above the threshold is marked as spam. Increasing this threshold will increase the amount of spam missed, but will reduce the risk of false positives.'; +$messages['spamlangexp'] = 'Select all the languages you expect to receive e-mail in. Any messages received that are written in non selected languages will be treated as possible spam.'; +$messages['headersexp'] = 'SpamAssassin adds headers to processed messages providing information about the results. Use the options below to configure these headers.'; +$messages['spamtestssexp'] = 'Some checks use internet based services to help identify spam. Select the ones you wish to use:'; +$messages['spamreport'] = 'When a message is identified as spam a report of all tests and scores assigned is created...'; +$messages['autowhitelist'] = 'Email addresses in your Address Book are automatically added to the \'Accept Mail From\' list.'; +$messages['whitelistexp'] = 'An asterisk (*) can be used as a wild card for greater flexibility. For example: *@example.com or *@*.example.com.'; +$messages['spamaddressexists'] = 'A rule already exists for this address'; +$messages['spamenteraddress'] = 'Please enter an address to add'; +$messages['spamaddresserror'] = 'Error: Address appears invalid'; +$messages['spamaddressdelete'] = 'Are you sure you want to delete this rule?'; +$messages['spamaddressdeleteall'] = 'Are you sure you want to delete all address rules?'; +$messages['noaddressrules'] = 'No address rules found.'; +$messages['importingaddresses'] = 'Importing addresses...'; +$messages['usedefaultconfirm'] = 'Are you sure you want to restore the default settings? This will delete all your settings, including your address rules.'; +$messages['purgebayesexp'] = 'Delete personal Bayesian data collected from your email'; +$messages['bayesnonspamexp'] = 'Messages which score below this threshold will be used to improve the systems detection of non spam messages.'; +$messages['bayesspamexp'] = 'Messages which score above this threshold will be used to improve the systems detection of spam messages.'; +$messages['bayesautohelp'] = 'When Bayes auto learn is enabled the system will automatically process messages which are very likely to be spam/non spam and use the information from those to improve the detection filters.'; +$messages['bayeshelp'] = 'The Bayesian classifier tries to identify spam by looking at words or short character sequences that are commonly found in spam or non spam messages.'; +$messages['rblhelp'] = 'Server addresses found in hypertext links in a message will be checked against several \'blacklists\' or lists of known spam sources.'; +$messages['dcchelp'] = 'The DCC or Distributed Checksum Clearinghouse is a system of servers collecting and counting checksums (or signatures) of millions of mail messages every day. The greater the similarity the checksum of an incoming message has to the list the more likely it is to be spam.'; +$messages['pyzhelp'] = 'Pyzor is a collaborative, networked system to detect and block spam using identifying digests of messages. The digests are generated in a number of different ways to allow for small differences in the content of the message.'; +$messages['raz2help'] = 'Vipul\'s Razor is a distributed, collaborative, spam detection and filtering network based on user submissions of spam. Detection is done with signatures that efficiently spot mutating spam content. The spam reports are validated through reputation assignments given to each reporter.'; +$messages['raz1help'] = 'Vipul\'s Razor is a distributed, collaborative, spam detection and filtering network based on user submissions of spam. Detection is done with signatures that efficiently spot mutating spam content. The spam reports are validated through reputation assignments given to each reporter. Version 1 has now been replaced by version 2 and is no longer supported.'; +$messages['levelhelp'] = 'The \'Spam Level\' header can be added to a message to indicate the score given to a message by repeating the character specified that many times. This may be useful for further processing of the message.'; +$messages['foldhelp'] = 'Should headers added by SpamAssassin will be wrapped? In other words, should they be broken up into multiple lines instead of one very long one. When a line is broken it will be indented to mark it as a continuation of the preceding one.'; +$messages['bayesruleshlp'] = 'Before the Bayesian-style classifier can be used effectively it must be "trained" to properly detect spam/non spam messages. Disabling the Bayesian rules allows the system to continue to learn both automatically and manually from incoming mail but it will not be used to detect spam.'; +$messages['purgebayesconfirm'] = 'Are you sure delete all your Bayesian data?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/en_US.inc b/plugins/sauserprefs/localization/en_US.inc new file mode 100644 index 000000000..6c500af9f --- /dev/null +++ b/plugins/sauserprefs/localization/en_US.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Philip Weir */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['managespam'] = 'Manage spam detection settings'; +$labels['sauserprefssettings'] = 'Spam settings'; +$labels['spamgeneralsettings'] = 'General Settings'; +$labels['spamthres'] = 'Score threshold'; +$labels['spamsubject'] = 'Subject tag'; +$labels['spamsubjectblank'] = '(leave blank for none)'; +$labels['spamlang'] = 'Message languages'; +$labels['enabled'] = 'Enabled'; +$labels['disabled'] = 'Disabled'; +$labels['headers'] = 'Message Headers'; +$labels['foldheaders'] = 'Allow multiple lines in headers'; +$labels['spamlevelstars'] = 'Use \'Spam Level\' header'; +$labels['spamlevelchar'] = 'Spam level character'; +$labels['spamtests'] = 'Internet Based Spam Tests'; +$labels['userazor1'] = 'Use Razor v1'; +$labels['userazor2'] = 'Use Razor v2'; +$labels['usepyzor'] = 'Use Pyzor'; +$labels['usebayes'] = 'Use Bayesian style classifier'; +$labels['usedcc'] = 'Use DCC'; +$labels['skiprblchecks'] = 'Use Realtime Blackhole List'; +$labels['spamreportsettings'] = 'Report Settings'; +$labels['spamreport0'] = 'Include report in headers of original message'; +$labels['spamreport1'] = 'Include original as MIME attachment to report'; +$labels['spamreport2'] = 'Include original as text-only attachment to report'; +$labels['spamaddressrules'] = 'Address Rules'; +$labels['whitelist_from'] = 'Accept Mail From'; +$labels['blacklist_from'] = 'Reject Mail From'; +$labels['whitelist_to'] = 'Accept Mail Sent To'; +$labels['addrule'] = 'Add Rule'; +$labels['rule'] = 'Rule'; +$labels['importfromaddressbook'] = 'Import addresses from Address Book'; +$labels['deleteall'] = 'Delete All'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Default Score'; +$labels['otherscore'] = 'Other (%s)'; +$labels['usedefault'] = 'Restore Default Settings'; +$labels['langoptions'] = 'Language Options'; +$labels['bayes'] = 'Bayes Settings'; +$labels['purgingbayes'] = 'Deleting Bayesian data...'; +$labels['purgebayes'] = 'Delete personal Bayesian data'; +$labels['bayesautolearn'] = 'Use Bayes auto learn'; +$labels['bayesautooptions'] = 'Auto learn options'; +$labels['bayesnonspam'] = 'Non spam threshold'; +$labels['bayesspam'] = 'Spam threshold'; +$labels['bayesrules'] = 'Use Baysian rules'; +$labels['help'] = 'Help'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Successfully changed spam settings'; +$messages['sauserpreffailed'] = 'Error: Cannot change spam settings'; +$messages['spamthresexp'] = 'Anything above the threshold is marked as spam. Increasing this threshold will increase the amount of spam missed, but will reduce the risk of false positives.'; +$messages['spamlangexp'] = 'Select all the languages you expect to receive e-mail in. Any messages received that are written in non selected languages will be treated as possible spam.'; +$messages['headersexp'] = 'SpamAssassin adds headers to processed messages providing information about the results. Use the options below to configure these headers.'; +$messages['spamtestssexp'] = 'Some checks use internet based services to help identify spam. Select the ones you wish to use:'; +$messages['spamreport'] = 'When a message is identified as spam a report of all tests and scores assigned is created...'; +$messages['autowhitelist'] = 'Email addresses in your Address Book are automatically added to the \'Accept Mail From\' list.'; +$messages['whitelistexp'] = 'An asterisk (*) can be used as a wild card for greater flexibility. For example: *@example.com or *@*.example.com.'; +$messages['spamaddressexists'] = 'A rule already exists for this address'; +$messages['spamenteraddress'] = 'Please enter an address to add'; +$messages['spamaddresserror'] = 'Error: Address appears invalid'; +$messages['spamaddressdelete'] = 'Are you sure you want to delete this rule?'; +$messages['spamaddressdeleteall'] = 'Are you sure you want to delete all address rules?'; +$messages['noaddressrules'] = 'No address rules found.'; +$messages['importingaddresses'] = 'Importing addresses...'; +$messages['usedefaultconfirm'] = 'Are you sure you want to restore the default settings? This will delete all your settings, including your address rules.'; +$messages['purgebayesexp'] = 'Delete personal Bayesian data collected from your email'; +$messages['bayesnonspamexp'] = 'Messages which score below this threshold will be used to improve the systems detection of non spam messages.'; +$messages['bayesspamexp'] = 'Messages which score above this threshold will be used to improve the systems detection of spam messages.'; +$messages['bayesautohelp'] = 'When Bayes auto learn is enabled the system will automatically process messages which are very likely to be spam/non spam and use the information from those to improve the detection filters.'; +$messages['bayeshelp'] = 'The Bayesian classifier tries to identify spam by looking at words or short character sequences that are commonly found in spam or non spam messages.'; +$messages['rblhelp'] = 'Server addresses found in hypertext links in a message will be checked against several \'blacklists\' or lists of known spam sources.'; +$messages['dcchelp'] = 'The DCC or Distributed Checksum Clearinghouse is a system of servers collecting and counting checksums (or signatures) of millions of mail messages every day. The greater the similarity the checksum of an incoming message has to the list the more likely it is to be spam.'; +$messages['pyzhelp'] = 'Pyzor is a collaborative, networked system to detect and block spam using identifying digests of messages. The digests are generated in a number of different ways to allow for small differences in the content of the message.'; +$messages['raz2help'] = 'Vipul\'s Razor is a distributed, collaborative, spam detection and filtering network based on user submissions of spam. Detection is done with signatures that efficiently spot mutating spam content. The spam reports are validated through reputation assignments given to each reporter.'; +$messages['raz1help'] = 'Vipul\'s Razor is a distributed, collaborative, spam detection and filtering network based on user submissions of spam. Detection is done with signatures that efficiently spot mutating spam content. The spam reports are validated through reputation assignments given to each reporter. Version 1 has now been replaced by version 2 and is no longer supported.'; +$messages['levelhelp'] = 'The \'Spam Level\' header can be added to a message to indicate the score given to a message by repeating the character specified that many times. This may be useful for further processing of the message.'; +$messages['foldhelp'] = 'Should headers added by SpamAssassin will be wrapped? In other words, should they be broken up into multiple lines instead of one very long one. When a line is broken it will be indented to mark it as a continuation of the preceding one.'; +$messages['bayesruleshlp'] = 'Before the Bayesian-style classifier can be used effectively it must be "trained" to properly detect spam/non spam messages. Disabling the Bayesian rules allows the system to continue to learn both automatically and manually from incoming mail but it will not be used to detect spam.'; +$messages['purgebayesconfirm'] = 'Are you sure delete all your Bayesian data?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/es_ES.inc b/plugins/sauserprefs/localization/es_ES.inc new file mode 100644 index 000000000..26dcb63d1 --- /dev/null +++ b/plugins/sauserprefs/localization/es_ES.inc @@ -0,0 +1,85 @@ +<?php +/* Author: Joan Riera Pol */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['sauserprefssettings'] = 'Preferencias de Spam'; +$labels['spamgeneralsettings'] = 'Preferencias Generales'; +$labels['spamthres'] = 'Margen de puntuación'; +$labels['spamsubject'] = 'Etiqueta del asunto'; +$labels['spamsubjectblank'] = '(dejar en blanco para ninguna)'; +$labels['spamlang'] = 'Idiomas de mensaje'; +$labels['enabled'] = 'Habilitado'; +$labels['disabled'] = 'Deshabilitado'; +$labels['headers'] = 'Cabecera de mensajes'; +$labels['foldheaders'] = 'Permitir múltiples líneas en cabecera'; +$labels['spamlevelstars'] = 'Usar \'nivel de spam\' en cabecera'; +$labels['spamlevelchar'] = 'Caracter para el nivel de spam'; +$labels['spamtests'] = 'Pruebas de Spam basadas en Internet'; +$labels['userazor1'] = 'Usar Razor v1'; +$labels['userazor2'] = 'Usar Razor v2'; +$labels['usepyzor'] = 'Usar Pyzor'; +$labels['usebayes'] = 'Usar clasificador de estilo Bayesian'; +$labels['usedcc'] = 'Usar DCC'; +$labels['skiprblchecks'] = 'Usar lista negra en tiempo real'; +$labels['spamreportsettings'] = 'Preferencias de informes'; +$labels['spamreport0'] = 'Incluir informe en la cabecera del mensaje original'; +$labels['spamreport1'] = 'Incluir original como adjunto MIME al informe'; +$labels['spamreport2'] = 'Incluir al informe el original como adjunto de sólo texto'; +$labels['spamaddressrules'] = 'Reglas de direcciones'; +$labels['whitelist_from'] = 'Aceptar correos de'; +$labels['blacklist_from'] = 'Rechazar correos de'; +$labels['whitelist_to'] = 'Aceptar correos mandados a'; +$labels['addrule'] = 'Añadir regla'; +$labels['rule'] = 'Regla'; +$labels['importfromaddressbook'] = 'Importar direcciones desde el la lista de contactos'; +$labels['deleteall'] = 'Eliminar todos'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Puntuación por defecto'; +$labels['otherscore'] = 'Otro (%s)'; +$labels['usedefault'] = 'Restaurar preferencias por defecto'; +$labels['langoptions'] = 'Opciones de idioma'; +$labels['bayes'] = 'Preferencias Bayesianas'; +$labels['purgingbayes'] = 'Eliminando datos Bayesianos...'; +$labels['purgebayes'] = 'Eliminar datos personales Bayesianos'; +$labels['bayesautolearn'] = 'Utilizar autoaprendizaje Bayes'; +$labels['bayesautooptions'] = 'Opciones de autoaprendizaje'; +$labels['bayesnonspam'] = 'Sin umbral de spam'; +$labels['bayesspam'] = 'Umbral de Spam'; +$labels['bayesrules'] = 'Usar reglas Bayesianas'; +$labels['help'] = 'Ayuda'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Preferencias de spam modificadas'; +$messages['sauserpreffailed'] = 'Error: No se han podido modificar las preferencias de spam'; +$messages['spamthresexp'] = 'Cualquier correo por encima del umbral será marcado como spam. Ampliando este umbral se incrementará la cantidad de spam no filtrado, pero reducirá el riesgo de falsos positivos.'; +$messages['spamlangexp'] = 'Selecciona los idiomas en los que esperas recibir los correos. Cualquier mensaje recibido escrito en cualquiera de los idiomas no seleccionados será tratado como posible spam.'; +$messages['headersexp'] = 'SpamAssassin añade cabeceras a mensajes procesados proporcionando información sobre los resultados. Usar las opciones inferiores para configurar estas cabeceras.'; +$messages['spamtestssexp'] = 'Algunas comprobaciones utilizan servicios en red para ayudar a identificar spam. Selecciona los que deseas utilizar:'; +$messages['spamreport'] = 'Cuando un mensaje es identificado como spam se creará un reporte de las pruebas y las puntuaciones asignadas...'; +$messages['autowhitelist'] = 'Las cuentas de correo en tu lista de contactos son añadidas de forma automática a la lista \'Aceptar correos de\'.'; +$messages['whitelistexp'] = 'Un asterisco (*) puede ser utilizado como wildcard para mayor flexibilidad. Por ejemplo: *@ejemplo.com o *@*.ejemplo.com.'; +$messages['spamaddressexists'] = 'Ya existe una regla para esta dirección'; +$messages['spamenteraddress'] = 'Por favor, introduce una dirección a añadir'; +$messages['spamaddresserror'] = 'Error: La dirección parece errónea'; +$messages['spamaddressdelete'] = '¿Estás seguro de eliminar esta regla?'; +$messages['spamaddressdeleteall'] = '¿Estás seguro de eliminar todas las reglas?'; +$messages['noaddressrules'] = 'No se han encontrado reglas.'; +$messages['importingaddresses'] = 'Importando direcciones...'; +$messages['usedefaultconfirm'] = '¿Estás seguro de querer restaurar las preferencias por defecto? Esto eliminará todas tus preferencias, incluyendo tus reglas de direcciones.'; +$messages['purgebayesexp'] = 'Eliminar datos Bayesianos personales recolectados de tu correo'; +$messages['bayesnonspamexp'] = 'Mensajes con puntuación menor al umbral será utilizado para mejorar los sistemas de detección de correos que no son spam.'; +$messages['bayesspamexp'] = 'Mensajes con puntuación superior al umbral serán utilizados para mejorar los sistemas de detección de correos no deseados.'; +$messages['bayesautohelp'] = 'Cuando se activa el autoaprendizaje Bayesiano el sistema precesará automáticamente los mensajes que posiblemente sean spam/no spam y usará su información para mejorar los filtros de detección.'; +$messages['bayeshelp'] = 'El clasificador Bayesiano trata de identificar spam buscando palabras o combinaciones cortas de letras que se encuentran comunmente en mensajes de spam.'; +$messages['rblhelp'] = 'Los servidores encontrados en los enlaces en los correos recibidos serán comprobadas en varias \'listas negras\' o listas de fuentes de spam conocidas.'; +$messages['dcchelp'] = 'El DCC o Distributed Checksum Clearinghouse es un sistema de servidores coleccionando y contando checksums (o firmas) de millones de correos electrónicos cada día. Cuanto más parecido es el checksum de un mensaje entrante a la lista es más probable que sea spam.'; +$messages['pyzhelp'] = 'Pyzor es un sistema en red colaborativo para detectar y bloquear spam utilizando trozos de mensajes. Estos trozos son generados en varias formas distintas para buscar pequeñas diferencias en el contenido del mensaje.'; +$messages['raz2help'] = 'Vipul\'s Razor es una red distribuida, colaborativa para la detección y filtrado de spam basada en envíos de usuarios. La detección es llevada a cabo con firmas que encuentran de forma eficiente el contenido spam. Los reportes de spam son validados mediante reputación dada a cada reportante.'; +$messages['raz1help'] = 'Vipul\'s Razor es una red distribuida, colaborativa para la detección y filtrado de spam basada en envíos de usuarios. La detección es llevada a cabo con firmas que encuentran de forma eficiente el contenido spam. Los reportes de spam son validados mediante reputación dada a cada reportante. Versión 1 ha sido modificado ahora por version 2 y ya no es soportada.'; +$messages['levelhelp'] = 'La cabecera de \'Nivel de Spam\' puede ser añadida a un mensaje para indicar la puntuación dada a un mensaje repitiendo determinadas veces el caracter especificado. Esto puede ser útil para el procesamiento posterior del mensaje.'; +$messages['foldhelp'] = '¿Debe la cabecera añadida por SpamAssassin ser cortada? En otras palabras, ¿debe ser partida en varias líneas la cabecera en vez de una muy larga? Cuando una linea es partida está indicada para marcarla como la continuacióon de la siguiente.'; +$messages['bayesruleshlp'] = 'Antes de que el clasificador de estilo Bayesiano pueda ser usado de forma efectiva tiene que ser "entrenado" para detectar correctamente los mensajes de spam/no spam. Deshabilitando las reglas Bayesianas permitirá continuar aprendiendo de forma automática y manual de correo entrante pero no será usado para filtrarlo.'; +$messages['purgebayesconfirm'] = '¿Estás seguro de querer eliminar todos tus datos Bayesianos?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/fr_FR.inc b/plugins/sauserprefs/localization/fr_FR.inc new file mode 100644 index 000000000..c8ce746b1 --- /dev/null +++ b/plugins/sauserprefs/localization/fr_FR.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Jérémy Bobbio based on previous translation by magik_cypress */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['managespam'] = 'Gérer les paramètres de détection des spams'; +$labels['sauserprefssettings'] = 'Préférences liées au spams'; +$labels['spamgeneralsettings'] = 'Préférences principales'; +$labels['spamthres'] = 'Seuil'; +$labels['spamsubject'] = 'Étiqueter le sujet'; +$labels['spamsubjectblank'] = '(laisser vide pour ne pas mettre d\'étiquette)'; +$labels['spamlang'] = 'Langues des messages'; +$labels['enabled'] = 'Actif'; +$labels['disabled'] = 'Inactif'; +$labels['headers'] = 'En-têtes du message'; +$labels['foldheaders'] = 'Autoriser plusieurs lignes dans les en-têtes'; +$labels['spamlevelstars'] = 'Utiliser l\'en-tête "Spam Level"'; +$labels['spamlevelchar'] = 'Symbole représentant le niveau de spam'; +$labels['spamtests'] = 'Services externes de détection'; +$labels['userazor1'] = 'Utiliser Razor v1'; +$labels['userazor2'] = 'Utiliser Razor v2'; +$labels['usepyzor'] = 'Utiliser Pyzor'; +$labels['usebayes'] = 'Utiliser le filtre bayésien'; +$labels['usedcc'] = 'Utiliser DCC'; +$labels['skiprblchecks'] = 'Utiliser les listes noires (RBL)'; +$labels['spamreportsettings'] = 'Préférences du rapport'; +$labels['spamreport0'] = 'Inclure le rapport dans les en-têtes du message original'; +$labels['spamreport1'] = 'Inclure tout le message original en pièce-jointe du rapport'; +$labels['spamreport2'] = 'Inclure le texte du message original en pièce-jointe du rapport'; +$labels['spamaddressrules'] = 'Adresses particulières'; +$labels['whitelist_from'] = 'Accepter les messages de'; +$labels['blacklist_from'] = 'Rejeter les messages de'; +$labels['whitelist_to'] = 'Accepter les messages envoyé à'; +$labels['addrule'] = 'Ajouter'; +$labels['rule'] = 'Règle'; +$labels['importfromaddressbook'] = 'Importer le carnet d\'adresses'; +$labels['deleteall'] = 'Tout supprimer'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Score par défaut'; +$labels['otherscore'] = 'Autre (%s)'; +$labels['usedefault'] = 'Rétablir les préférences par défaut'; +$labels['langoptions'] = 'Options de langues'; +$labels['bayes'] = 'Préférences du filtre bayésien'; +$labels['purgingbayes'] = 'Suppression des données du filtre bayésien...'; +$labels['purgebayes'] = 'Supprimer les données personnelles du filtre bayésien'; +$labels['bayesautolearn'] = 'Activer l\'apprentissage automatique du filtre bayésien'; +$labels['bayesautooptions'] = 'Options de l\'apprentissage automatique'; +$labels['bayesnonspam'] = 'Seuil des messages légitimes'; +$labels['bayesspam'] = 'Seuil des spams'; +$labels['bayesrules'] = 'Utiliser le filtre bayésien pour la détection'; +$labels['help'] = 'Aide'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Préférences modifiées avec succès'; +$messages['sauserpreffailed'] = 'Erreur : impossible de modifier les préférences'; +$messages['spamthresexp'] = 'Tout ce qui se trouve au dessus du seuil sera considéré comme spam. Augmenter le seuil va donc augmenter le nombre de spams qui ne seront pas détectés, mais réduira les risques de faux positifs.'; +$messages['spamlangexp'] = 'Choisir toutes les langues dans lesquelles seront écrits les messages reçus. Tous les messages reçus qui seront écrits dans une langue qui n\'aura pas été choisie sera traité comme un spam possible.'; +$messages['headersexp'] = 'SpamAssassin ajoute des en-têtes contenant des informations sur les traitements effectués. Les options suivantes permettent de configurer ces en-têtes.'; +$messages['spamtestssexp'] = 'Certains tests utilisent des services Internet externes pour aider à identifier les spams. Choisir ceux qui doivent êtres utilisés :'; +$messages['spamreport'] = 'Quand un message est identifié comme spam, un rapport avec tous les tests et scores est créé...'; +$messages['autowhitelist'] = 'Les adresses qui se trouvent dans le carnet d\'adresses sont automatiquement ajoutées dans la liste des exceptions.'; +$messages['whitelistexp'] = 'Une astérisque (*) peut être utilisé comme joker pour les traitements généraux. Par exemple : *example.com ou *@*.example.com.'; +$messages['spamaddressexists'] = 'Une règle existe déjà pour cette addresse'; +$messages['spamenteraddress'] = 'Entrer une adresse à ajouter'; +$messages['spamaddresserror'] = 'Erreur : l\'adresse semble invalide'; +$messages['spamaddressdelete'] = 'Faut-il vraiment supprimer cette règle ?'; +$messages['spamaddressdeleteall'] = 'Faut-il vraiment supprimer toutes les règles ?'; +$messages['noaddressrules'] = 'Aucune règle n\'a été trouvé.'; +$messages['importingaddresses'] = 'Importation des adresses en cours...'; +$messages['usedefaultconfirm'] = 'Faut-il vraiment rétablir les préférences par défaut ? Cela supprimera tous les changements, dont les réglages spécifiques.'; +$messages['purgebayesexp'] = 'Supprimer les données personnelles du filtre bayésien apprises de vos courriels'; +$messages['bayesnonspamexp'] = 'Les messages classés en-dessous de ce seuil seront utilisés pour améliorer la détection des messages légitimes.'; +$messages['bayesspamexp'] = 'Les messages classés au-dessus de ce seuil seront utilisés pour améliorer la détection des spams.'; +$messages['bayesautohelp'] = 'Quand l\'apprentissage automatique du filtre bayésien est activé, le système traitera les messages qui sembleront être ou ne pas être des spams afin d\'améliorer la détection de futurs messages.'; +$messages['bayeshelp'] = 'Le filtre bayésien essaye d\'identifier les spams à partir des mots ou des séquences de caractères qui se trouvent dans les messages qui sont ou ne sont pas des spams.'; +$messages['rblhelp'] = 'Les adresses des serveurs qui se trouvent dans les liens hypertextes d\'un message seront vérifiés à partir de plusieurs "listes noires" ou listes de sources connues de spam.'; +$messages['dcchelp'] = 'Le DCC ou le "Distributed Checksum Clearinghouse" est un système de serveurs collectant et contant les signatures de millions de courriels chaque jour. Plus la signature d\'un message reçu est similaire à celle de la liste, plus il a de chances d\'être un spam.'; +$messages['pyzhelp'] = 'Pyzor est un réseau collaboratif de systèmes visant à détecter et bloquer les spams à partir de condensé de messages. Ces condensés sont générés de plusieurs manières différentes afin d\'autoriser de petites différences dans le contenu des messages.'; +$messages['raz2help'] = 'Vipul\'s Razor est un réseau collaboratif et distribué de détection et de filtrage de spam se basant sur des envois de spams par les utilisateurs. La détection est faite à partir de signatures qui détectent efficacement le contenu changeant des spams. Les rapports sont validés grâce à une réputation associée à chaque rapporteur.'; +$messages['raz1help'] = 'Vipul\'s Razor est un réseau collaboratif et distribué de détection et de filtrage de spam se basant sur des envois de spams par les utilisateurs. La détection est faite à partir de signatures qui détectent efficacement le contenu changeant des spams. Les rapports sont validés grâce à une réputation associée à chaque rapporteur. La version 1 a été remplacé par la version 2 et n\'est donc plus supportée.'; +$messages['levelhelp'] = 'L\'en-tête "Spam Level" peut être ajouté à un message pour indiquer le score de ce dernier en répetant un symbole plusieurs fois. Cela peut être utile pour le traitement ultérieur du message.'; +$messages['foldhelp'] = 'Est-ce que les en-têtes ajoutés par SpamAssassin doivent revenir à la ligne ? En d\'autres termes, est-ce qu\'ils doivent êtres répartis sur plusieurs lignes au lieu de n\'être que sur seule ligne très longue. Lorsqu\'il y a un retour à la ligne, la suivante sera indenté afin de marquer la continuité avec la précédente.'; +$messages['bayesruleshlp'] = 'Avant que le filtre bayésien puisse être utilisé, il doit effectivement être "entrainé" pour pouvoir correctement détecter les spams. Désactiver le filtre bayésien permet au système de continuer à apprendre automatiquement et manuellement des messages reçus, mais il ne sera pas utilisé pour la détection des spams en eux-mêmes.'; +$messages['purgebayesconfirm'] = 'Faut-il vraiment supprimer toutes les données personnelles du filtre bayésien ?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/gl_ES.inc b/plugins/sauserprefs/localization/gl_ES.inc new file mode 100644 index 000000000..e7dfe159a --- /dev/null +++ b/plugins/sauserprefs/localization/gl_ES.inc @@ -0,0 +1,85 @@ +<?php +/* Author: David Garabana Barro */ + +$labels = array(); +$labels['sauserprefs'] = 'Correo lixo'; +$labels['sauserprefssettings'] = 'Axustes de correo lixo'; +$labels['spamgeneralsettings'] = 'Axustes xerais'; +$labels['spamthres'] = 'Umbral de puntuación'; +$labels['spamsubject'] = 'Etiqueta do asunto'; +$labels['spamsubjectblank'] = '(deixar en branco para ningún)'; +$labels['spamlang'] = 'Idiomas da mensaxe'; +$labels['enabled'] = 'Activado'; +$labels['disabled'] = 'Desactivado'; +$labels['headers'] = 'Cabeceiras da mensaxe'; +$labels['foldheaders'] = 'Permitir cabecerias de máis dunha liña'; +$labels['spamlevelstars'] = 'Utilizar a cabeceira \'Spam Level\''; +$labels['spamlevelchar'] = 'Caracter de nivel de correo lixo'; +$labels['spamtests'] = 'Probas de correo lixo en Internet'; +$labels['userazor1'] = 'Utilizar Razor v1'; +$labels['userazor2'] = 'Utilizar Razor v2'; +$labels['usepyzor'] = 'Utilizar Pyzor'; +$labels['usebayes'] = 'Utilizar o clasificador de tipo Bayesian'; +$labels['usedcc'] = 'Utilizar DCC'; +$labels['skiprblchecks'] = 'Utilizar a \'Realtime Blackhole List\' (RBL)'; +$labels['spamreportsettings'] = 'Axustes de informes '; +$labels['spamreport0'] = 'Incluir informe nas cabeceiras da mensaxe orixinal'; +$labels['spamreport1'] = 'Incluir a mensaxe orixinal coma anexo MIME ao informe'; +$labels['spamreport2'] = 'Incluir a mensaxe orixinal coma anexo de texto ao informe'; +$labels['spamaddressrules'] = 'Regras de direccións'; +$labels['whitelist_from'] = 'Aceptar correo de'; +$labels['blacklist_from'] = 'Rexeitar correo de'; +$labels['whitelist_to'] = 'Aceptar correo enviado a'; +$labels['addrule'] = 'Engadir regra'; +$labels['rule'] = 'Regra'; +$labels['importfromaddressbook'] = 'Importar direccións dende a libreta de direccións'; +$labels['deleteall'] = 'Eliminar todo'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Puntuación por omisión'; +$labels['otherscore'] = 'Outro (%s)'; +$labels['usedefault'] = 'Restaurar os valores por omisión'; +$labels['langoptions'] = 'Opcións da linguaxe'; +$labels['bayes'] = 'Axustes de Bayes'; +$labels['purgingbayes'] = 'Eliminando os datos bayesianos'; +$labels['purgebayes'] = 'Eliminando os datos persoais bayesianos'; +$labels['bayesautolearn'] = 'Empregar autoaprendizaxe bayesiano'; +$labels['bayesautooptions'] = 'Opcións de autoaprendizaxe'; +$labels['bayesnonspam'] = 'Umbral de "non correo lixo"'; +$labels['bayesspam'] = 'Umbral de "correo lixo"'; +$labels['bayesrules'] = 'Empregar regras bayesianas'; +$labels['help'] = 'Axuda'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Modificáronse correctamente os axustes de correo lixo'; +$messages['sauserpreffailed'] = 'Produciuse un erro: Non se poden modificar os axustes de correo lixo'; +$messages['spamthresexp'] = 'Calquera puntuación por enbira desde umbral é marcado coma correo lixo. Se sube este umbral, aumentará a cantidade de correo lixo non detectado, pero tamén reducirá o risco de que se produzan falsos positivos.'; +$messages['spamlangexp'] = 'Escolla as linguaxes nas que espera recibir correo electrónico.Calquera mensaxe que reciba escrita nunha língua non seleccionada será tratada coma posible correo lixo.'; +$messages['headersexp'] = 'SpamAssassin engade cabeceiras ás mensaxes procesadas informando dos resultados. Empregue as opcións de embaixo para configurar estas cabeceiras.'; +$messages['spamtestssexp'] = 'Algunhas das probas utilizan servicios de Internet para axudar a identificar o correo lixo. Escolla as que lle gostaría empregar:'; +$messages['spamreport'] = 'Cando unha mensaxe se identifica coma correo lixo, créase un informe de tódalas probas probas e puntuacións asignadas...'; +$messages['autowhitelist'] = 'As direccións de correo electrónico na súa libreta de direccións engádense automáticamente á lista de \'Aceptar correo de\''; +$messages['whitelistexp'] = 'Pódese usar un asterisco (*) coma comodín para ter máis flexibilidade. Por exemplo: *@exemplo.com ou *@*.exemplo.com.'; +$messages['spamaddressexists'] = 'Xa existe una regra para esta dirección'; +$messages['spamenteraddress'] = 'Por favor, introduza unha dirección para engadir'; +$messages['spamaddresserror'] = 'Produciuse un erro: A dirección semella inválida'; +$messages['spamaddressdelete'] = 'Está seguro de que quere borrar esta regra?'; +$messages['spamaddressdeleteall'] = 'Está seguro de que quere borrar tódalas regras de dirección?'; +$messages['noaddressrules'] = 'Non se atoparon regras de dirección'; +$messages['importingaddresses'] = 'Importando direccións...'; +$messages['usedefaultconfirm'] = 'Está seguro de que quere restaurar os valores po omisión?. Esto vai borrar tódolos seus axustes, incluso as regras de dirección.'; +$messages['purgebayesexp'] = 'Eliminar os datos bayesianos persoais do seu correo electrónico'; +$messages['bayesnonspamexp'] = 'As mensaxes con puntuación menor a este umbrar vanse usar para mellorar os sistemas de detección de mensaxes non lixo'; +$messages['bayesspamexp'] = 'As mensaxes con puntuación maior a este umbrar vanse usar para mellorar os sistemas de detección de mensaxes lixo'; +$messages['bayesautohelp'] = 'Cando está activado o autoaprendizaxe bayesiano, o sistema vai procesar automáticamente as mensaxes que semellan correo lixo/non lixo, e usará a información destes para mellorar os filtros de detección.'; +$messages['bayeshelp'] = 'O clasificador bayesiano tenta identificar o correo lixo buscando por verbas ou secuencias cortas de caracteres que adoitan atoparse en mensaxes lixo e non lixo.'; +$messages['rblhelp'] = 'As direccións de servidores atopadas en ligazóns nunha mensaxe hanse comprobar en diversas "listas negras" ou listas de orixes coñecidos de correo lixo.'; +$messages['dcchelp'] = 'O "Distributed Checksum Clearinghouse" é un sistema de servidores que colleitan e contan sumas de comprobación (ou sinaturas) de millóns de mensaxes de correo cada día. Canto máis se pareza una suma dunha mensaxe entrante a unha da lista, máis probable é que sea corre lixo.'; +$messages['pyzhelp'] = 'Pyzor é un sistema colaborativo en rede para detectar e bloquear correo lixo utilizando resumos que identifican mensaxes. Os resumos xenéranse de varias maneiras distintas, para atopar pequenas diferencias no contido da mensaxe.'; +$messages['raz2help'] = 'Vipul\'s Razor é unha rede distribuida e colaborativa de detección e filtrado de correo lixo, que se basa en envíos de correo lixo por parte de usuarios. A detección faise por medio de sinaturas que paran de manera eficiente a mutación dos contidos do correo lixo. Os envíos de correo lixo valídanse a través de asignacións de reputación que se lle otorga a cada usuario.'; +$messages['raz1help'] = 'Vipul\'s Razor é unha rede distribuida e colaborativa de detección e filtrado de correo lixo, que se basa en envíos de correo lixo por parte de usuarios. A detección faise por medio de sinaturas que paran de manera eficiente a mutación dos contidos do correo lixo. Os envíos de correo lixo valídanse a través de asignacións de reputación que se lle otorga a cada usuario. A versión 1 foi trocada pola 2, e xa non está soportada.'; +$messages['levelhelp'] = 'Pódese engadir a cabeceria "Spam Level" á mensaxe para indicar a puntuación dada repetindo o carácter especificad tantas veces coma puntos teña a mensaxe. Pode ser útil para procesamiento posterior da menxase.'; +$messages['foldhelp'] = 'Deberíanse cortar as cabeceiras engadidas por SpamAssassin? Ou, dito doutro xeito, deberíanse dividir en varias liñas no canto de deixala nuna soa liña moi longa?. Cando se divide unha liña sángrase para indicar que é continuación da anterior.'; +$messages['bayesruleshlp'] = 'Antes de poder usar o clasificador tipo bayesiano, é necesario "entranalo" para que detecte eficientemente correos lixo/non lixo. Se se desactivan as regras bayesianas, permítese que o sistema continue a aprender automáticamente e manualmente das mensaxes entrantes, pero non se vai usar para detectar correo lixo.'; +$messages['purgebayesconfirm'] = 'Está seguro de que quere borrar os seus datos bayesianos?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/hu_HU.inc b/plugins/sauserprefs/localization/hu_HU.inc new file mode 100644 index 000000000..952f3f1cf --- /dev/null +++ b/plugins/sauserprefs/localization/hu_HU.inc @@ -0,0 +1,61 @@ +<?php +/* Author: Zoltan Nagy */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['sauserprefssettings'] = 'Spam beállítás'; +$labels['spamgeneralsettings'] = 'Általános beállítás'; +$labels['spamthres'] = 'Küszöb szám'; +$labels['spamsubject'] = 'Tárgy cimke'; +$labels['spamsubjectblank'] = '(hagyja üressen ha egyik sem)'; +$labels['spamlang'] = 'Üzenetek nyelve'; +$labels['enabled'] = 'Bekapcsolva'; +$labels['disabled'] = 'Kikapcsolva'; +$labels['headers'] = 'Üzenet fejléc'; +$labels['foldheaders'] = 'Több sor engedélyezése a fejlécben'; +$labels['spamlevelstars'] = '\'Spam szint\' fejléc használata'; +$labels['spamlevelchar'] = 'Spam szint karakter'; +$labels['spamtests'] = 'Inernet Alapu Spam Tesztek'; +$labels['userazor1'] = 'Razor v1 használata'; +$labels['userazor2'] = 'Razor v2 használata'; +$labels['usepyzor'] = 'Pyzor használata'; +$labels['usebayes'] = 'Nyílt (naiv) Bayesian stílusú besorolás használata'; +$labels['usedcc'] = 'DCC használata'; +$labels['skiprblchecks'] = 'Valós idejű Feketelyuk Lista használata'; +$labels['spamreportsettings'] = 'Beállítások jelentése'; +$labels['spamreport0'] = 'A riport beágyazása az eredeti fejlécbe'; +$labels['spamreport1'] = 'az eredeti MIME-ként csatolása a ripothoz'; +$labels['spamreport2'] = 'az eredeti csak szöveg-ként csatolása a ripothoz'; +$labels['spamaddressrules'] = 'Cím szabályok'; +$labels['whitelist_from'] = 'Mailek elfogadása küldőtől'; +$labels['blacklist_from'] = 'Mailek visszautasítása küldőtől'; +$labels['whitelist_to'] = 'Címzettnek küldött mailek elfogadása'; +$labels['addrule'] = 'Szabály hozzáadása'; +$labels['rule'] = 'Szabály'; +$labels['importfromaddressbook'] = 'Címek importálása a Címjegyzékből'; +$labels['deleteall'] = 'Mindent törli'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Alapérték'; +$labels['otherscore'] = 'Egyéb (%s)'; +$labels['usedefault'] = 'Alabértékek visszaállítása'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Sikeresen megváltoztatta a spam beállításokat'; +$messages['sauserpreffailed'] = 'Hiba: nem sikerült a spam beállítások megváltoztatása'; +$messages['spamthresexp'] = 'Minden ami a küszöb alatti érték, spam-ként lesz jelölve. A küszöb értékének a növelése, növeli a bejutó spameket, de csökkenti a hamis spam jelölést'; +$messages['spamlangexp'] = 'Válassza ki a nyelveket amilyen nyelvü leveleket vár. Minden érkező levél amely a nem megjelölt nyelven íródott, lehetséges spamként lesz kezelve.'; +$messages['headersexp'] = 'A SpamAssassin fejlécet ad a levélhez mely információval szolgál az eredményről. Az alábbi beállításokkal konfigurálhatja ezeket a fejléceket.'; +$messages['spamtestssexp'] = 'Néhány beállítás internet alapu szolgáltatást használ a spamek azonosítására. Válassza ki a használni kivántakat.'; +$messages['spamreport'] = 'Mikor egy üzenet spamként kerül azonosításra, létrejön egy csatolt riport a tesztek és eredményeikből.'; +$messages['autowhitelist'] = 'A Címjegyzékben található e-mail címek automatikusan hozzáadódnak a \'Mail Elfogadás -tól\''; +$messages['whitelistexp'] = 'A csillag karakter (*) használható helyettesítő karakterként a nagyobb rugalmasságért. pl. *@example.com vagy *@*.example.com'; +$messages['spamaddressexists'] = 'Ehhez a címhez már létezik szabály'; +$messages['spamenteraddress'] = 'Írja be a címet melyet szeretne hozzáadni'; +$messages['spamaddresserror'] = 'Hiba: a cím érvénytelen'; +$messages['spamaddressdelete'] = 'Biztosan törölni szeretné ezt a szabályt?'; +$messages['spamaddressdeleteall'] = 'Biztosan törölni szeretné az összes cím szabályt?'; +$messages['noaddressrules'] = 'Nem található cím szabály.'; +$messages['importingaddresses'] = 'Címek importálása...'; +$messages['usedefaultconfirm'] = 'Biztos, hogy vissza szeretné állítani az alapbeállítást? Ez törli az összes beállítást, ideértve a cím szabályokat is.'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/it_IT.inc b/plugins/sauserprefs/localization/it_IT.inc new file mode 100644 index 000000000..67f4a99a0 --- /dev/null +++ b/plugins/sauserprefs/localization/it_IT.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Alessio Cecchi */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['managespam'] = 'Gestisci le impostazioni di rilevamento dello Spam'; +$labels['sauserprefssettings'] = 'Impostazioni spam'; +$labels['spamgeneralsettings'] = 'Impostazioni generali'; +$labels['spamthres'] = 'Punteggio valutazione'; +$labels['spamsubject'] = 'Tag oggetto'; +$labels['spamsubjectblank'] = '(lasciare in bianco se niente)'; +$labels['spamlang'] = 'Lingue del messaggio'; +$labels['enabled'] = 'Abilitato'; +$labels['disabled'] = 'Disabilitato'; +$labels['headers'] = 'Intestazioni messaggio'; +$labels['foldheaders'] = 'Consenti più linee nell\'intestazione'; +$labels['spamlevelstars'] = 'Usa instazione \'Spam Level\''; +$labels['spamlevelchar'] = 'carattere \'Spam level\''; +$labels['spamtests'] = 'Test spam su internet'; +$labels['userazor1'] = 'Usa Razor v1'; +$labels['userazor2'] = 'Usa Razor v2'; +$labels['usepyzor'] = 'Usa Pyzor'; +$labels['usebayes'] = 'Usa stile classificazione ingenua Bayesiana'; +$labels['usedcc'] = 'Usa DCC'; +$labels['skiprblchecks'] = 'Usa RBL (Realtime Blackhole List)'; +$labels['spamreportsettings'] = 'Impostazioni dei rapporti'; +$labels['spamreport0'] = 'Includi report nelle intestazioni del messaggio originale'; +$labels['spamreport1'] = 'Includi il messaggio originale come allegato MIME al raporto'; +$labels['spamreport2'] = 'Includi il messeggio originale come allegato TXT al rapporto'; +$labels['spamaddressrules'] = 'Regole su indirizzi'; +$labels['whitelist_from'] = 'Consenti DA ( From: )'; +$labels['blacklist_from'] = 'Nega DA ( From: )'; +$labels['whitelist_to'] = 'Consenti destinatiari ( To: )'; +$labels['addrule'] = 'Aggiungi regola'; +$labels['rule'] = 'Regola'; +$labels['importfromaddressbook'] = 'Importa indirizzi dalla rubrica online'; +$labels['deleteall'] = 'Cancella tutto'; +$labels['autoscore'] = 'Automatico'; +$labels['defaultscore'] = 'Punteggio standard'; +$labels['otherscore'] = 'Altro (%s)'; +$labels['usedefault'] = 'Ripristina le impostazioni iniziali'; +$labels['langoptions'] = 'Opzioni Lingua'; +$labels['bayes'] = 'Impostazione filtri Bayesiani'; +$labels['purgingbayes'] = 'Cancellazione dei dati Bayesiani...'; +$labels['purgebayes'] = 'Elimina i dati personali Bayesiani'; +$labels['bayesautolearn'] = 'Utilizza l\'Apprendimento automatico Bayesiano'; +$labels['bayesautooptions'] = 'Impostazioni Apprendimento automatico'; +$labels['bayesnonspam'] = 'Soglia di Non Spam'; +$labels['bayesspam'] = 'Soglia di Spam'; +$labels['bayesrules'] = 'Utilizza i filtri Bayesiani'; +$labels['help'] = 'Aiuto'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Cambiamenti applicati con successo'; +$messages['sauserpreffailed'] = 'Errore: imposibile salvare i cambiamenti'; +$messages['spamthresexp'] = 'Tutto quello che oltre passa il punteggio verrà segnalato come spam. Aumentare il punteggio significa aumentare i messaggi di spam non segnalati, ma riduce il richio di falsi positivi.'; +$messages['spamlangexp'] = 'Selezionare tutte le lingue in cui ci si aspetta possa arrivare un messaggio. Tutti i messaggi che arriveranno in una lingua non selezionata saranno segnalati come spam.'; +$messages['headersexp'] = 'SpamAssassin aggiunge delle intestazioni al messaggioriguardante il risultato dell\'analisi. Usare questa opzione per configurare queste intestazioni.'; +$messages['spamtestssexp'] = 'Certi controlli utilizzano dei servizi internet per analizzare il messaggio. Selezionare quello che si vuole utilizzare:'; +$messages['spamreport'] = 'Quando un messaggio viene identificato come spam viene creato un rapporto dei test ed il punteggio questo rapporto viene creato...'; +$messages['autowhitelist'] = 'Gli indirizzi Email della Rubrica della Webmail vengono caricati automaticamente ed inseriti nella lista \'Consenti mail DA\'.'; +$messages['whitelistexp'] = 'Un asterisco (*) può essere usato come carattere \'jolly\' per aumentare la flessibilità della regola. Ad esempio: *@dominio.com o *@*.dominio.com.'; +$messages['spamaddressexists'] = 'Esiste già una regola per questo indirizzo'; +$messages['spamenteraddress'] = 'Inserire un indirizzo da aggiungere'; +$messages['spamaddresserror'] = 'Errore: Indirizzo invalido'; +$messages['spamaddressdelete'] = 'Sicuro di voler CANCELLARE questa regola?'; +$messages['spamaddressdeleteall'] = 'Sicuro di voler CANCELLARE TUTTI gli indirizzi della lista??'; +$messages['noaddressrules'] = 'Nessuna regola trovata.'; +$messages['importingaddresses'] = 'Importazione indirizzi...'; +$messages['usedefaultconfirm'] = 'Sicuro di voler ripristinare le impostazioni iniziali ? Questa operazione CANCELLERA TUTTE LE IMPOSTAZIONI, incluse le regole per i messaggi!.'; +$messages['purgebayesexp'] = 'Elimina i dati Bayesiani personali raccolti dal tuo indirizzo email'; +$messages['bayesnonspamexp'] = 'I messaggi con punteggio al di sotto di questa soglia verranno utilizzati per migliorare l\'individuazione dei messaggi non spam.'; +$messages['bayesspamexp'] = 'I messaggi con punteggio al di sopra di questa soglia verranno utilizzati per migliorare l\'individuazione dei messaggi di spam.'; +$messages['bayesautohelp'] = 'Quando l\'apprendimento automatico Bayesiano è abilitato il sistema analizza automaticamente i messaggi che con molta probabilità sono spam oppure no e utilizza le informazioni ricavate per migliorare il rilevamento.'; +$messages['bayeshelp'] = 'I filtri Bayesiaio provano ad identificare lo spam, cercando parole o brevi sequenze di caratteri che si trovano più di frequente nei messaggi di spam e non.'; +$messages['rblhelp'] = 'Gli indirizzi trovati nei collegamenti ipertestuali di un messaggio verranno controllati sulla base di diverse "liste nere" o liste di fonti di spam note.'; +$messages['dcchelp'] = 'DCC o Distributed Checksum Clearinghouse è un sistema centralizzato di raccolta e conteggio checksum (o firme) di milioni di messaggi di posta elettronica in transito ogni giorno. Quanto maggiore è la somiglianza del checksum di un messaggio in arrivo nel sistema DCC, più probabile è che quel messaggio possa essere spam.'; +$messages['pyzhelp'] = 'Pyzor è una network collaborativo per rilevare e bloccare lo spam utilizzando la raccolta ed il conteggio dei digest (o firme) dei messaggi. I digest sono generati in un numero di modi diversi per tollerare piccole differenze nel contenuto del messaggio.'; +$messages['raz2help'] = 'Vipul Razor è un network collaborativo per l\'individuazione dello spam. La rilevazione viene effettuata con le firme in modo efficiente al fine di individuare mutazione nei di spam. Le segnalazioni di spam sono convalidati mediante l\'assegnazione di reputazione dato a ogni contributore al network.'; +$messages['raz1help'] = 'Vipul Razor è un network collaborativo per l\'individuazione dello spam. La rilevazione viene effettuata con le firme in modo efficiente al fine di individuare mutazione nei di spam. Le segnalazioni di spam sono convalidati mediante l\'assegnazione di reputazione dato a ogni contributore al network. La versione 1 è stata sostituita dalla versione 2 e non è più utilizzata.'; +$messages['levelhelp'] = 'L\'intestazione \'Spam Level\' può essere aggiunto a un messaggio per indicare il punteggio assegnatoli ripetendo il carattere specificato molte volte. Ciò può essere utile per un ulteriore elaborazione del messaggio.'; +$messages['foldhelp'] = 'Gli header aggiunti da SpamAssassin devono essere suddivisi? In altre parole, essi dovrebbero essere suddivisi in più righe invece di una molto lunga. Quando una linea è interrotta apparirà rientrata per segnalare la continuazione della precedente.'; +$messages['bayesruleshlp'] = 'Prima che i filtri Bayesiani possano funzionare in modo efficace devono essere "addestrati" per rilevare correttamente i messaggi di spam e non. La disattivazione delle regole bayesiane permette al sistema di continuare l\'apprendimento sia automaticamente che manualmente sulla posta in arrivo, ma non saranno utilizzati per rilevare lo spam.'; +$messages['purgebayesconfirm'] = 'Sei sicuro di voler eliminare tutti i dati bayesiani?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/pl_PL.inc b/plugins/sauserprefs/localization/pl_PL.inc new file mode 100644 index 000000000..eaae55944 --- /dev/null +++ b/plugins/sauserprefs/localization/pl_PL.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Bartosz Mierzwiak */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['managespam'] = 'Ustawienia wykrywania Spamu'; +$labels['sauserprefssettings'] = 'Ustawienia Spamu'; +$labels['spamgeneralsettings'] = 'Ustawienia Główne'; +$labels['spamthres'] = 'Próg punktowania'; +$labels['spamsubject'] = 'Znacznik w temacie'; +$labels['spamsubjectblank'] = '(zostaw puste jesli brak)'; +$labels['spamlang'] = 'Język wiadomości'; +$labels['enabled'] = 'Włączony'; +$labels['disabled'] = 'Wyłączony'; +$labels['headers'] = 'Nagłówki Wiadomości'; +$labels['foldheaders'] = 'Zezwalaj na wiele lini w nagłówku'; +$labels['spamlevelstars'] = 'Użyj \'Spam Level\' w nagłówku'; +$labels['spamlevelchar'] = 'Znacznik poziomu spamu'; +$labels['spamtests'] = 'Testy Spamu oparte o internet'; +$labels['userazor1'] = 'Użyj Razor v1'; +$labels['userazor2'] = 'Użyj Razor v2'; +$labels['usepyzor'] = 'Użyj Pyzor'; +$labels['usebayes'] = 'Użyj Bayesian style classifier'; +$labels['usedcc'] = 'Użyj DCC'; +$labels['skiprblchecks'] = 'Użyj Realtime Blackhole List'; +$labels['spamreportsettings'] = 'Opcje Raportu'; +$labels['spamreport0'] = 'Dołącz raport w nagłówku orginalnej wiadomości'; +$labels['spamreport1'] = 'Dołącz orginał jako MIME załącznik do raportu'; +$labels['spamreport2'] = 'Dołącz orginał jako załącznik textowy'; +$labels['spamaddressrules'] = 'Reguły Adresów'; +$labels['whitelist_from'] = 'Akceptuj wiadomości od'; +$labels['blacklist_from'] = 'Rejestruj wiadomości od'; +$labels['whitelist_to'] = 'Akceptuj wiadomości wysłane do'; +$labels['addrule'] = 'Dodaj regułe'; +$labels['rule'] = 'Reguła'; +$labels['importfromaddressbook'] = 'Importuj adresy z książki adresowej'; +$labels['deleteall'] = 'Usuń wszystko'; +$labels['autoscore'] = 'Automatycznie'; +$labels['defaultscore'] = 'Domyślny Wynik'; +$labels['otherscore'] = 'Inny (%s)'; +$labels['usedefault'] = 'Przywróć ustawienia domyślne'; +$labels['langoptions'] = 'Opcje Językowe'; +$labels['bayes'] = 'Ustawienia Bayes'; +$labels['purgingbayes'] = 'Usówanie danych Bayes'; +$labels['purgebayes'] = 'Usówanie osobistych danych Bayes'; +$labels['bayesautolearn'] = 'Użyj Bayes auto lern'; +$labels['bayesautooptions'] = 'Opcje automatycznej nauki'; +$labels['bayesnonspam'] = 'Próg nie spamu'; +$labels['bayesspam'] = 'Próg spamu'; +$labels['bayesrules'] = 'Użyj reguł Bayes'; +$labels['help'] = 'Pomoc'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Zmiany ustawień spamu zakończone sukcesem'; +$messages['sauserpreffailed'] = 'Error: Nie można zmienić ustawień spamu'; +$messages['spamthresexp'] = 'Wszystko powyżej progu jest oznaczone jako spam. Podnosząc ten próg wzrośnie ilość spamu nieodebranego, ale zmniejszy się ryzyko fałszywych alarmów.'; +$messages['spamlangexp'] = 'Wybierz wszystkie języki w jakich można oczekiwać, że otrzymasz wiadomości e-mail. Wszelkie wiadomości otrzymane, które są napisane w językach innych niż wybrane będą traktowane jako spam.'; +$messages['headersexp'] = 'SpamAssassin dodaje nagłówki przetworzonych wiadomości, dostarczające informacji o wynikach. Użyj poniższych opcji, aby skonfigurować te nagłówki.'; +$messages['spamtestssexp'] = 'Niektóre kontrole wykorzystania usług internetowych w celu identyfikowania spamu. Wybierz te, których chcesz używać:'; +$messages['spamreport'] = 'Gdy wiadomość jest klasyfikowana jako spam, tworzony jest raport z wszystkich testów.'; +$messages['autowhitelist'] = 'Adresy w Twojej książce adresowej są automatycznie dodawane do listy akceptowanych nadawców.'; +$messages['whitelistexp'] = 'Gwiazdka (*) zapewnia większą elastyczność. Na przykład: * @ example.com lub * @ *. example.com.'; +$messages['spamaddressexists'] = 'Reguła aktualnie istnieje dla tego adresu'; +$messages['spamenteraddress'] = 'Wpisz adres, który chcesz dodać'; +$messages['spamaddresserror'] = 'Error: Niewłąściwy adres'; +$messages['spamaddressdelete'] = 'Jesteś pewny(a) że chcesz usunąć tą regułe?'; +$messages['spamaddressdeleteall'] = 'Jestes pewny(a) że chcesz usunąć wszystkie reguły adresowe?'; +$messages['noaddressrules'] = 'Nie znaleziono reguły adresowej.'; +$messages['importingaddresses'] = 'Wczytywanie adresów...'; +$messages['usedefaultconfirm'] = 'Jesteś pewny(a) że chcesz przywrócić ustawienia domyślne? Usunie to wszystkie Twoje ustaawienia, łącznie z regułami adresacji.'; +$messages['purgebayesexp'] = 'Usuń osobiste dane Bayes zgromadzone z Twoich wiadomości'; +$messages['bayesnonspamexp'] = 'Wiadomości z wartością poniżej tego progu będą użyte do poprawienia systemowej detekcji nie-spamu.'; +$messages['bayesspamexp'] = 'Wiadomości z wartością powyżej tego progu będą użyte do poprawienia systemowej detekcji spamu.'; +$messages['bayesautohelp'] = 'Kiedy włączone jest auto-uczenie się filtra słownikowego Bayes, system automatycznie przetworzy wiadomość która prawdopodobnie jest spamem/nie spamem aby ulepszyć filtry skanujące.'; +$messages['bayeshelp'] = 'Klasyfikator Bayesa próbuje zidentyfikować spam patrząc na słowa lub krótkie sekwencje znaków, które są powszechnie spotykane w spamie lub wiadomościach niespamowych.'; +$messages['rblhelp'] = 'Znalezione adresy serwerów zamieszczonych w linkach w hipertekscie, będą sprawdzone z czarną listą serwerów i znanych źródeł spamu.'; +$messages['dcchelp'] = 'DCC inaczej Distributed Checksum Clearinghouse, to system serwerów zbierania i liczenia sum kontrolnych milionów wiadomości dziennie. Im większe podobieństwo kontrolne otrzymanej wiadomości jest na liście, tym bardziej prawdopodobne że jest to spam.'; +$messages['pyzhelp'] = 'Pyzor jest to sieciowym systemem wykrywania i blokowania spamu przy identyfikacji zarysu wiadomości. Zarysy są wytwarzane na wiele różnych sposobów, aby pozwolić na niewielkie różnice w treści wiadomości.'; +$messages['raz2help'] = 'Vipul\'s Razor to rozproszona, społecznościowa sieć wykrywająca i filtrująca spam na podstawie zgłoszeń użytkowników. Wykrywanie odbywa się na podstawie sygnatur którymi oznaczane są treści spamu. Znaczniki wiarygodności użytkowników pomagają uwiarygodniać zgłoszenia spamu.'; +$messages['raz1help'] = 'Vipul\'s Razor to rozproszona, społecznościowa sieć wykrywająca i filtrująca spam na podstawie zgłoszeń użytkowników. Wykrywanie odbywa się na podstawie sygnatur którymi oznaczane są treści spamu. Znaczniki wiarygodności użytkowników pomagają uwiarygodniać zgłoszenia spamu. Wersja 1 została zastąpiona przez wersję 2 i nie jest już wspierana.'; +$messages['levelhelp'] = 'Nagłówek \'Poziom Spamu\' może zostać dodany do wiadomości aby uwidocznić punktację jaka otrzymała wiadmość, Znacznik zostanie powtórzony tyle razy ile punktów otrzymała wiadomość. Może to być pomocne przy następnych przetwarzaniach wiadomości.'; +$messages['foldhelp'] = 'Czy zawijać nagłówki dodane przez SpamAssassina? Inaczej mówiąc czy mają być łamane w wielu liniach czy też pozostawione jako jedna długa linia. Kiedy linia jest dzielona zostaje oznaczona jako kontynuacja poprzedniej linii.'; +$messages['bayesruleshlp'] = 'Słownikowy filtr Bayesa przed efektywnym użyciem musi przejść proces "trenowania" aby poprawnie wykrywać spam/nie spam. Wyłączenie reguł filtra Bayesa pozwoli systemowi na "uczenie" się zarówno automatycznie jak i ręcznie z nadchodzących wiadomości, ale wyniki działania filtrów nie będą używane do wykrywania spamu.'; +$messages['purgebayesconfirm'] = 'Czy napewno usunąć wszystkie dane Bayes?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/pt_BR.inc b/plugins/sauserprefs/localization/pt_BR.inc new file mode 100644 index 000000000..f5eb14327 --- /dev/null +++ b/plugins/sauserprefs/localization/pt_BR.inc @@ -0,0 +1,85 @@ +<?php +/* Author: Alexandre Correa */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['sauserprefssettings'] = 'Configurações Spam'; +$labels['spamgeneralsettings'] = 'Configurações Gerais'; +$labels['spamthres'] = 'Pontuação Inicial'; +$labels['spamsubject'] = 'Marca do Assunto'; +$labels['spamsubjectblank'] = '(deixe em branco para nenhum)'; +$labels['spamlang'] = 'Linguagem das mensagens'; +$labels['enabled'] = 'Ligado'; +$labels['disabled'] = 'Desligado'; +$labels['headers'] = 'Cabeçalho'; +$labels['foldheaders'] = 'Permitir multiplas linhas no cabeçalho'; +$labels['spamlevelstars'] = 'Usar \'Nivel de Spam\' no cabeçalho'; +$labels['spamlevelchar'] = 'Marcador de nível'; +$labels['spamtests'] = 'Testes de spam ON-LINE'; +$labels['userazor1'] = 'Usar Lista Razor V1'; +$labels['userazor2'] = 'Usar Lista Razor V2'; +$labels['usepyzor'] = 'Usar Lista Pyzor'; +$labels['usebayes'] = 'Usar classificação \'Bayesian\''; +$labels['usedcc'] = 'Usar DCC'; +$labels['skiprblchecks'] = 'Usar Lista-Negra em tempo real'; +$labels['spamreportsettings'] = 'Configurações de Notificação'; +$labels['spamreport0'] = 'Incluir notas nos cabeçalhos da mensagem original'; +$labels['spamreport1'] = 'Incluir mensagem como anexo MIME'; +$labels['spamreport2'] = 'Incluir mensagem como texto plano'; +$labels['spamaddressrules'] = 'Regras de Endereços'; +$labels['whitelist_from'] = 'Aceitar email de'; +$labels['blacklist_from'] = 'Rejeitar email de'; +$labels['whitelist_to'] = 'Aceitar email enviado para'; +$labels['addrule'] = 'Adicionar regra'; +$labels['rule'] = 'Regra'; +$labels['importfromaddressbook'] = 'Importar endereço do Livro de Endereços'; +$labels['deleteall'] = 'Apagar tudo'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Pontuação Padrão'; +$labels['otherscore'] = 'Outro (%s)'; +$labels['usedefault'] = 'Voltar configuração padrão'; +$labels['langoptions'] = 'Opções de linguagem'; +$labels['bayes'] = 'Configuração \'Bayes\''; +$labels['purgingbayes'] = 'Apagar dados da \'Bayes\''; +$labels['purgebayes'] = 'Apagar dados pessoais da \'Bayes\''; +$labels['bayesautolearn'] = 'Usar auto-aprendizagem da \'Bayes\''; +$labels['bayesautooptions'] = 'Opções de auto-aprendizagem'; +$labels['bayesnonspam'] = 'Pontuação de Não-Spam'; +$labels['bayesspam'] = 'Potuação de Spam'; +$labels['bayesrules'] = 'Usar regras \'Baysian\''; +$labels['help'] = 'Ajuda'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Configurações de SPAM salvas'; +$messages['sauserpreffailed'] = 'Erro: Não foi possível alterar configurações de SPAM'; +$messages['spamthresexp'] = 'Qualquer valor acima da pontuação será marcado como SPAM. Aumentando a pontuação pode aumentar a quantidade de SPAM não detectado, mas evita que uma mensagem verdadeira seja marcada como SPAM.'; +$messages['spamlangexp'] = 'Selecione todos os idiomas que você espera receber mensagens. Qualquer mensagem recebida de idiomas não selecionados são marcadas como SPAM.'; +$messages['headersexp'] = 'SpamAssassin adiciona cabeçalhos nas mensagens processadas com informações sobre os resultados obtidos. Utilize as opções abaixo para configurar:'; +$messages['spamtestssexp'] = 'Algumas verificações fazem consultas on-line afim de ajudar a detectar SPAM. Selecione as opções que deseja utilizar:'; +$messages['spamreport'] = 'Quando uma mensagem é identificada como SPAM, uma notificação de todos os testes e pontuações obtidas é criada...'; +$messages['autowhitelist'] = 'Endereços de email cadastrados em sua agenda são automaticamente adicionados na lista de "Aceitar email de".'; +$messages['whitelistexp'] = 'Asterisco pode ser utilizado como curinga para uma maior flexibilidade. Exemplo: *@exemplo.com.br ou *@*.exemplo.com.br'; +$messages['spamaddressexists'] = 'Uma regra já existe para este endereço'; +$messages['spamenteraddress'] = 'Digite um endereço para adicionar'; +$messages['spamaddresserror'] = 'Erro: Endereço inválido'; +$messages['spamaddressdelete'] = 'Tem certeza que deseja excluir esta regra ?'; +$messages['spamaddressdeleteall'] = 'Tem certeza que deseja excluir TODAS as regras ?'; +$messages['noaddressrules'] = 'Regras de endereço não encontradas.'; +$messages['importingaddresses'] = 'Importando endereços...'; +$messages['usedefaultconfirm'] = 'Tem certeza que deseja restaurar para os padrões iniciais? Isto apaga todas as configurações, incluindo regras de endereços'; +$messages['purgebayesexp'] = 'Apagar configurações pessoais \'Bayes\' coletadas em seu email'; +$messages['bayesnonspamexp'] = 'Mensagens que tenham pontuação abaixo deste nível são utilizadas para aprimorar o sistema de detecção de menagens NÃO-SPAM.'; +$messages['bayesspamexp'] = 'Mensagens que tenham pontuação acima deste nível são utilizadas para aprimorar o sistema de detecção de mensagens SPAM.'; +$messages['bayesautohelp'] = 'Quando a auto-aprendizagem \'Bayes\' está ativada, o sistema utiliza as mensagens marcadas como SPAM/NÃO-SPAM para aprimorar o sistema de detecção.'; +$messages['bayeshelp'] = 'O sistema \'Bayes\' tenta identificar SPAM analisando as palavras ou textos curtos sequenciais que, em comum, são encontrados nas mensagems SPAM/NÃO-SPAM.'; +$messages['rblhelp'] = 'Endereço do servidor encontrado nos atalhos na mensagem são verificadas nas listas-negra ou listas de spam.'; +$messages['dcchelp'] = 'O DCC é um sistema composto por servidores que coletam e contabilizam as assinaturas digitais de milhões de mensagens. Estes contadores podem ser utilizados para detectar spam.'; +$messages['pyzhelp'] = 'Pyzor é um sistema colaborativo e interligado para detectar e bloquear mensagens identificadas pelo seu indice.'; +$messages['raz2help'] = '\'Vipuls Razor\' é um sistema baseado nas notificações feitas por vários usuários. A detecção é feita com base na assinatura digital da mensagem.'; +$messages['raz1help'] = '\'Vipuls Razor\' é um sistema baseado nas notificações feitas por vários usuários. A detecção é feita com base na assinatura digital da mensagem.'; +$messages['levelhelp'] = 'O cabeçalho \'Spam Level\' pode ser adicionado na mensagem repetindo o \'Marcado de nível\' de acordo com a pontuação obtida.'; +$messages['foldhelp'] = 'Por padrão, os cabeçalhos adicionados são separados por duplo espaço. Evitando uma linha muito longa, quebrando-a em várias linhas menores.'; +$messages['bayesruleshlp'] = 'Se usar as regras \'naive-Bayes-style\' como classificadores. Permite que desligue as regras mas, possibilitando deixar auto-aprendizagem automatica ou manual.'; +$messages['purgebayesconfirm'] = 'Tem certeza que deseja excluir os dados da \'Bayes\' ?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/ro_RO.inc b/plugins/sauserprefs/localization/ro_RO.inc new file mode 100644 index 000000000..dff15fd1f --- /dev/null +++ b/plugins/sauserprefs/localization/ro_RO.inc @@ -0,0 +1,85 @@ +<?php +/* Author: Ovidiu Bica */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['sauserprefssettings'] = 'Setari spam'; +$labels['spamgeneralsettings'] = 'Setari generale'; +$labels['spamthres'] = 'Scor maxim'; +$labels['spamsubject'] = 'Cuvant cheie, ex. [SPAM]'; +$labels['spamsubjectblank'] = '(lasati gol pentru niciunul)'; +$labels['spamlang'] = 'Mesaje in limbile'; +$labels['enabled'] = 'Activat'; +$labels['disabled'] = 'Dezactivat'; +$labels['headers'] = 'Header mesaje'; +$labels['foldheaders'] = 'Permite linii multiple in header'; +$labels['spamlevelstars'] = 'Foloseste \'Nivel de spam\' in header'; +$labels['spamlevelchar'] = 'Caracter pentru nivel spam'; +$labels['spamtests'] = 'Teste spam de pe internet.'; +$labels['userazor1'] = 'Foloseste Razor v1'; +$labels['userazor2'] = 'Foloseste Razorv2'; +$labels['usepyzor'] = 'Foloseste Pyzor'; +$labels['usebayes'] = 'Foloseste stilul de clasificare Bayesian'; +$labels['usedcc'] = 'Foloseste DCC'; +$labels['skiprblchecks'] = 'Foloseste lista Blackhole in timp real'; +$labels['spamreportsettings'] = 'Setari raportari'; +$labels['spamreport0'] = 'Include raportul in headerul mesajului original'; +$labels['spamreport1'] = 'Include raportul original ca atasament MIME'; +$labels['spamreport2'] = 'Include raportul original ca atasament text'; +$labels['spamaddressrules'] = 'Reguli adrese'; +$labels['whitelist_from'] = 'Accepta mail de la'; +$labels['blacklist_from'] = 'Refuza mail de la'; +$labels['whitelist_to'] = 'Accepta mail trimis la'; +$labels['addrule'] = 'Adauga regula'; +$labels['rule'] = 'Regula'; +$labels['importfromaddressbook'] = 'Importa adresele din agenda'; +$labels['deleteall'] = 'Sterge tot'; +$labels['autoscore'] = 'Automat'; +$labels['defaultscore'] = 'Scor implicit'; +$labels['otherscore'] = 'Altele (%s)'; +$labels['usedefault'] = 'Restaureaza setarile implicite'; +$labels['langoptions'] = 'Optiuni lingvistice'; +$labels['bayes'] = 'Setari Bayes'; +$labels['purgingbayes'] = 'Sterg datele Bayesian'; +$labels['purgebayes'] = 'Sterg datele Bayesian personale'; +$labels['bayesautolearn'] = 'Foloseste instruirea automata a filtrului Bayes'; +$labels['bayesautooptions'] = 'Optiuni instruire automata'; +$labels['bayesnonspam'] = 'Prag limita non spam'; +$labels['bayesspam'] = 'Prag limita spam'; +$labels['bayesrules'] = 'Foloseste reguli Bayesian'; +$labels['help'] = 'Ajutor'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Setarile de SPAM au fost setate cu succes.'; +$messages['sauserpreffailed'] = 'Eroare: Nu pot actualiza setarile de spam.'; +$messages['spamthresexp'] = 'Orice mesaj mai mare de acest prag va fi marcat ca spam. Crescand acest prag va mari numarul de mesaje spam nedetectate insa va reduce numarul de mesaje interpretate gresit ca spam.'; +$messages['spamlangexp'] = 'Selecteaza toate limbile in care te astepti sa primesti mesaje. Orice mesaj receptionat intr-o alta limba va fi considerat spam.'; +$messages['headersexp'] = 'Spamassassin adauga headere la mesajele procesate furnizand informatii despre rezultate. Foloseste optiunile de mai jos pentru a configura aceste headere.'; +$messages['spamtestssexp'] = 'Unele verificari folosesc servicii de pe internet in vederea detectarii spamului. Selecteaza-le pe cele pe care doresti sa le folosesti.'; +$messages['spamreport'] = 'Cand un mesaj este identificat ca spam, este creat un raport al testelor si al scorurilor. '; +$messages['autowhitelist'] = 'Adresele de email din agenda sunt adaugate automat in lista adreselor acceptate automat.'; +$messages['whitelistexp'] = 'O steluta (*) poate fi folosita ca inlocuitor global pentru o flexibilitate marita. De ex. *@exemplu.com sau *@*.exemplu.com'; +$messages['spamaddressexists'] = 'Exista deja o regula pentru aceasta adresa.'; +$messages['spamenteraddress'] = 'Te rog sa introduci o adresa pentru a o adauga.'; +$messages['spamaddresserror'] = 'Eroare: Adresa pare invalida.'; +$messages['spamaddressdelete'] = 'Esti sigur ca doresti sa stergi aceasta regula?'; +$messages['spamaddressdeleteall'] = 'Esti sigur ca doresti sa stergi toate regulile?'; +$messages['noaddressrules'] = 'Nu a fost gasita nici o regula.'; +$messages['importingaddresses'] = 'Import adresele ....'; +$messages['usedefaultconfirm'] = 'Esti sigur ca doresti sa revi la setarile initiale? Aceasta actiune va sterge toate setarile efectuate pana in prezent .'; +$messages['purgebayesexp'] = 'Sterge datele personale ale filtrului Bayesyan colectate de pe adresa ta.'; +$messages['bayesnonspamexp'] = 'mesajele care au un scor sub acest prag vor fi folosite pentru antrenarea filtrului non spam'; +$messages['bayesspamexp'] = 'Mesajele care au un scor peste acest prag vor fi folosite pentru detectarea mesajelor spam.'; +$messages['bayesautohelp'] = 'Atunci cand este activat filtrul Bayesian autodidact, acesta proceseaza automat mesajele care sunt foarte probabil spam/non spam si foloseste aceste informatii pentru a imbunatati filtrele de detectie.'; +$messages['bayeshelp'] = 'Filtrul Bayesian clasificator incearca sa identifice spam-ul uitandu-se la cuvinte sau secvente de caractere care sunt folosite frecvent in spam sau non spam.'; +$messages['rblhelp'] = 'Adresele web gasite in legaturile din mesaje vor fi verificate in cateva liste negre sau liste cu spamer cunoscuti deja.'; +$messages['dcchelp'] = 'The DCC or Distributed Checksum Clearinghouse is a system of servers collecting and counting checksums (or signatures) of millions of mail messages every day. The greater the similarity the checksum of an incoming message has to the list the more likely it is to be spam.'; +$messages['pyzhelp'] = 'Pyzor is a collaborative, networked system to detect and block spam using identifying digests of messages. The digests are generated in a number of different ways to allow for small differences in the content of the message.'; +$messages['raz2help'] = 'Vipul\'s Razor is a distributed, collaborative, spam detection and filtering network based on user submissions of spam. Detection is done with signatures that efficiently spot mutating spam content. The spam reports are validated through reputation assignments given to each reporter.'; +$messages['raz1help'] = 'ipul\'s Razor is a distributed, collaborative, spam detection and filtering network based on user submissions of spam. Detection is done with signatures that efficiently spot mutating spam content. The spam reports are validated through reputation assignments given to each reporter. Version 1 has now been replaced by version 2 and is no longer supported.'; +$messages['levelhelp'] = 'The \'Spam Level\' header can be added to a message to indicate the score given to a message by repeating the character specified that many times. This may be useful for further processing of the message.'; +$messages['foldhelp'] = 'Should headers added by SpamAssassin will be wrapped? In other words, should they be broken up into multiple lines instead of one very long one. When a line is broken it will be indented to mark it as a continuation of the preceding one.'; +$messages['bayesruleshlp'] = 'Before the Bayesian-style classifier can be used effectively it must be "trained" to properly detect spam/non spam messages. Disabling the Bayesian rules allows the system to continue to learn both automatically and manually from incoming mail but it will not be used to detect spam.'; +$messages['purgebayesconfirm'] = 'Esti sigur ca doresti sa stergi toate datele Bayesiane?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/ru_RU.inc b/plugins/sauserprefs/localization/ru_RU.inc new file mode 100644 index 000000000..3681836bb --- /dev/null +++ b/plugins/sauserprefs/localization/ru_RU.inc @@ -0,0 +1,87 @@ +<?php +/* Author: Sergey Khaliulov + Updates: Vladislav Bogdanov +*/ + +$labels = array(); +$labels['sauserprefs'] = 'Спам фильтр'; +$labels['sauserprefssettings'] = 'Настройки спам фильтра'; +$labels['spamgeneralsettings'] = 'Основные параметры'; +$labels['spamthres'] = 'Порог оценки'; +$labels['spamsubject'] = 'Метка спама в теме сообщения'; +$labels['spamsubjectblank'] = '(оставьте пустым, чтобы не менять тему сообщения)'; +$labels['spamlang'] = 'Языки сообщения'; +$labels['enabled'] = 'Включен'; +$labels['disabled'] = 'Отключен'; +$labels['headers'] = 'Заголовки сообщения'; +$labels['foldheaders'] = 'Разрешить многострочные записи в заголовках'; +$labels['spamlevelstars'] = 'Использовать заголовок \'Spam Level\''; +$labels['spamlevelchar'] = 'Символ уровня спама'; +$labels['spamtests'] = 'Internet-проверки'; +$labels['userazor1'] = 'Использовать Razor v1'; +$labels['userazor2'] = 'Использовать Razor v2'; +$labels['usepyzor'] = 'Использовать Pyzor'; +$labels['usebayes'] = 'Включить "наивный" Байесовский классификатор'; +$labels['usedcc'] = 'Использовать DCC'; +$labels['skiprblchecks'] = 'Использовать Черные Списки адресов (RBL)'; +$labels['spamreportsettings'] = 'Параметры уведомления'; +$labels['spamreport0'] = 'Добавить отчет в заголовки оригинального сообщения'; +$labels['spamreport1'] = 'Добавить в отчет оригинал письма как MIME вложение'; +$labels['spamreport2'] = 'Добавить в отчет оригинал письма как текст'; +$labels['spamaddressrules'] = 'Фильтры по адресу'; +$labels['whitelist_from'] = 'Принимать письма от:'; +$labels['blacklist_from'] = 'Отбрасывать письма от:'; +$labels['whitelist_to'] = 'Принимать полученные для:'; +$labels['addrule'] = 'Добавить'; +$labels['rule'] = 'Правило'; +$labels['importfromaddressbook'] = 'Импортировать адреса из Адресной книги'; +$labels['deleteall'] = 'Удалить все'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'По умолчанию'; +$labels['otherscore'] = 'Другой (%s)'; +$labels['usedefault'] = 'Восстановить настройки по умолчанию'; +$labels['langoptions'] = 'Языки'; +$labels['bayes'] = 'Байесовский фильтр'; +$labels['purgingbayes'] = 'Удаляется статистика Байесовского фильтра...'; +$labels['purgebayes'] = 'Удалить собранную статистику'; +$labels['bayesautolearn'] = 'Включить авто-обучение Байесовского фильтра'; +$labels['bayesautooptions'] = 'Параметры авто-обучения'; +$labels['bayesnonspam'] = 'Граница не-СПАМа'; +$labels['bayesspam'] = 'Граница СПАМа'; +$labels['bayesrules'] = 'Использовать Байесовский фильтр для оценки сообщений'; +$labels['help'] = 'Помощь'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Параметры фильтрации спама изменены'; +$messages['sauserpreffailed'] = 'Ошибка: Невозможно изменить параметры'; +$messages['spamthresexp'] = 'Система фильтрации спама использует числовые оценки для классификации сообщений. Используется большое количество тестов, каждый из которых возвращает определенное числовое значение при соответствии сообщения этому тесту. Результаты всех тестов суммируются для получения общей числовой оценки сообщения. При превышении полученной оценкой указанного порога - сообщение помечается как спам. Увеличение этого порога увеличит количество пропущенного спама, но и уменьшит риск ложных срабатываний. Общепринятым значением оценки, разделяющим СПАМ и не-СПАМ является число 5. Сообщения с оценкой более 8 практически в 100% случаев являются спамом.'; +$messages['spamlangexp'] = 'Любые полученные сообщения, которые написаны не на выбранном языке будут рассматриваться в качестве возможного спама.'; +$messages['headersexp'] = 'SpamAssassin добавляет в заголовки проверенных сообщений записи с информацией о результатах проверки. Укажите параметры добавляемых заголовков:'; +$messages['spamtestssexp'] = 'Некоторые алгоритмы проверки на спам используют интернет сервисы. Выберите те, которые Вы желаете использовать:'; +$messages['spamreport'] = 'Если сообщение идентифицировано как спам, сообщение должно быть сформировано следующим образом:'; +$messages['autowhitelist'] = 'Адреса электронной почты в Вашей Адресной книге могут быть автоматически добавлены к списку "Принимать письма от" (белый список).'; +$messages['whitelistexp'] = 'Звездочка (*) может использоваться как групповой символ для большей гибкости. Например: *@example.com или *@*.example.com. В общем случае не следует заносить много адресов в список "Отбрасывать письма от" (черный список), так как большинство адресов отправителей используются для рассылки спама только один раз. Этот список стоит использовать только в исключительных случаях, для блокирования писем от особо навязчивых нежелательных корреспондентов.'; +$messages['spamaddressexists'] = 'Правило уже существует для этого адреса'; +$messages['spamenteraddress'] = 'Введите адрес для добавления правила'; +$messages['spamaddresserror'] = 'Ошибка: Адрес указан неверно'; +$messages['spamaddressdelete'] = 'Вы дествительно хотите удалить это правило?'; +$messages['spamaddressdeleteall'] = 'Вы уверены что хотите удалить все правила фильтрации по адресу?'; +$messages['noaddressrules'] = 'Правил фильтрации по адресу не найдено.'; +$messages['importingaddresses'] = 'Импорт адресов...'; +$messages['usedefaultconfirm'] = 'Вы уверены, что Вы хотите восстановить настройки по умолчанию? Это удалит все Ваши настройки, включая правила проверки адреса.'; +$messages['purgebayesexp'] = 'Удалить все данные, собранные Байсовским фильтром из Ваших сообщений'; +$messages['bayesnonspamexp'] = 'Фильтр автоматически занесет сообщения, оценка которых НИЖЕ этого значения, в базу не-СПАМ сообщений.'; +$messages['bayesspamexp'] = 'Фильтр автоматически занесет сообщения, оценка которых ВЫШЕ этого значения, в базу СПАМ сообщений.'; +$messages['bayesautohelp'] = 'Позволяет автоматически заносить сообщения, с большой долей вероятности распознанные (при помощи других тестов) как СПАМ либо не-СПАМ, в соответствующие базы данных Байесовского фильтра.'; +$messages['bayeshelp'] = 'Байесовский фильтр (также известен как "наивный" Байесовский классификатор) - это обучаемая система, собирающая статистику вхождения слов либо коротких последовательностей символов в СПАМ и не-СПАМ сообщения. При большом объеме данных (более 200 достаточно свежих сообщений каждого типа) Байесовский фильтр позволяет достаточно точно классифицировать последующие сообщения как СПАМ либо не-СПАМ.'; +$messages['rblhelp'] = 'Адреса серверов, указанные в гипертекстовых ссылках, найденных в тексте сообщения, будут проверены в \'Черных Списках\', содержащих известные источники спама.'; +$messages['dcchelp'] = 'DCC (Distributed Checksum Clearinghouse, Распределенный Центр Контрольных сумм) - это система, подсчитывающая количество похожих сообщений, принятых пользователями Internet по всему миру. Ежедневно обрабатывается более 300 миллионов сообщений. Чем больше количество похожих друг на друга сообщений - тем больше вероятность, что это спам. Внимание: сообщения популярных списков рассылки могут быть распознаны как спам с точки зрения DCC. Поэтому рекомендуется отфильтровывать такие сообщения до Спам-фильтра (например при помощи SIEVE-фильтров или Procmail-фильтров, если они поддерживаются сервером).'; +$messages['pyzhelp'] = 'Pyzor is a collaborative, networked system to detect and block spam using identifying digests of messages.'; +$messages['raz2help'] = 'Серверы системы Razor хранят большое количество контрольных сумм сообщений, зарегистрированных как спам многочисленными пользователями системы. Очень малое количество ложных срабатываний обеспечивается механизмом "репутации" пользователя.'; +$messages['raz1help'] = 'Устаревшая и неподдерживаемая версия системы Razor. Используйте Razor v2.'; +$messages['levelhelp'] = 'The \'Spam Level\' header can be added to a message to indicate the score given to a message by repeating a character a certain number of times.'; +$messages['foldhelp'] = 'By default, headers added by SpamAssassin will be whitespace folded. In other words, they will be broken up into multiple lines instead of one very long one and each other line will have a tabulator prepended to mark it as a continuation of the preceding one.'; +$messages['bayesruleshlp'] = 'Позволяет использовать данные, собранные при помощи автоматического и ручного методов обучения Байесовского фильтра, для классификации последующих сообщений. Внимание: для классификации требуется большая предварительно собранная база (по 200 свежих сообщений каждого типа). В противном случае фильтр не работает даже если эта опция включена.'; +$messages['purgebayesconfirm'] = 'Вы уверены, что хотите удалить всю собранную статистику Байесовского фильтра?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/sk_SK.inc b/plugins/sauserprefs/localization/sk_SK.inc new file mode 100644 index 000000000..4cefe9928 --- /dev/null +++ b/plugins/sauserprefs/localization/sk_SK.inc @@ -0,0 +1,86 @@ +<?php +/* Author: Michal Michalac */ + +$labels = array(); +$labels['sauserprefs'] = 'Spam'; +$labels['sauserprefssettings'] = 'Nastavenia Spam-u'; +$labels['spamgeneralsettings'] = 'Všeobecné nastavenia'; +$labels['spamthres'] = 'Hranica skóre'; +$labels['spamsubject'] = 'Značka v predmete'; +$labels['spamsubjectblank'] = '(nechajte prázdne pre žiadnu)'; +$labels['spamlang'] = 'Jazyk správ'; +$labels['enabled'] = 'Povolený'; +$labels['disabled'] = 'Zakázaný'; +$labels['headers'] = 'Hlavičky správ'; +$labels['foldheaders'] = 'Povoliť viacriadkové hlavičky'; +$labels['spamlevelstars'] = 'Vytvárať hlavičku \'Spam Level\' (úroveň spamu)'; +$labels['spamlevelchar'] = 'Znak úrovne spamu'; +$labels['spamtests'] = 'Internetové spam testy'; +$labels['userazor1'] = 'Používať Razor v1'; +$labels['userazor2'] = 'Používať Razor v2'; +$labels['usepyzor'] = 'Používať Pyzor'; +$labels['usebayes'] = 'Používať Bayesovský klasifikátor'; +$labels['usedcc'] = 'Používať DCC'; +$labels['skiprblchecks'] = 'Používať RBL'; +$labels['spamreportsettings'] = 'Nastavenia reportu'; +$labels['spamreport0'] = 'Vkladať informácie len do hlavičiek pôvodného e-mailu'; +$labels['spamreport1'] = 'Vkladať pôvodný e-mail ako MIME prílohu reportu'; +$labels['spamreport2'] = 'Vkladať pôvodný e-mail ako textovú prílohu reportu'; +$labels['spamaddressrules'] = 'Pravidlá adries'; +$labels['whitelist_from'] = 'Prijímať e-maily od'; +$labels['blacklist_from'] = 'Odmietať e-maily od'; +$labels['whitelist_to'] = 'Prijímať e-maily zaslané komu'; +$labels['addrule'] = 'Pridať'; +$labels['rule'] = 'Pravidlo'; +$labels['importfromaddressbook'] = 'Importovať adresy z adresára'; +$labels['deleteall'] = 'Vymazať všetky'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Predvolená'; +$labels['otherscore'] = 'Iná (%s)'; +$labels['usedefault'] = 'Obnoviť predvolené nastavenia'; +$labels['langoptions'] = 'Jazykové voľby'; +$labels['bayes'] = 'Nastavenia Bayesu'; +$labels['purgingbayes'] = 'Vymazávam Bayesiánsku databázu...'; +$labels['purgebayes'] = 'Vymazať vlastnú Bayesiánsku databázu'; +$labels['bayesautolearn'] = 'Použiť automatické učenie Bayes'; +$labels['bayesautooptions'] = 'Voľby automatického učenia'; +$labels['bayesnonspam'] = 'Hranica pre nespam'; +$labels['bayesspam'] = 'Hranica pre spam'; +$labels['bayesrules'] = 'Využívať Baysiánske pravidlá'; +$labels['help'] = 'Pomoc'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Nastavenia spamu úspešne zmenené'; +$messages['sauserpreffailed'] = 'Chyba: Nastavenia spamu sa nepodarilo zmeniť'; +$messages['spamthresexp'] = "Všetky maily so skóre vyšším, ako určená hranica, budú označené ako spam. +Zvýšením tejto hranice sa zväčší počet nerozpoznaných spamov, na druhej strane sa ale zníži počet mailov chybne označených ako spam."; +$messages['spamlangexp'] = "Vyberte všetky jazyky v ktorých predpokladáte príjem e-mailov. Všetky prijaté správy napísané v iných jazykoch budú brané ako pravdepodobný spam."; +$messages['headersexp'] = "SpamAssassin pridáva do kontrolovaných e-mailov hlavičky s infomráciami o výsledkoch kontroly. Použite nasledujúce voľby na ich prispôsobenie."; +$messages['spamtestssexp'] = 'Niektoré testy pri detekcii spamu používajú externé služby na internete. Vyberte tie, ktoré chcete využívať:'; +$messages['spamreport'] = 'Keď je e-mail identifikovaný ako spam, vytvorí sa report o všetkých testoch a ich dosiahnutom skóre...'; +$messages['autowhitelist'] = 'Email addresses in your Address Book are automatically added to the \'Accept Mail From\' list.'; +$messages['whitelistexp'] = "V e-mailových adresách môže byť použitý zástupný znak hviezdička (*). Napr.: *@domena.sk or *@*.domena.sk."; +$messages['spamaddressexists'] = 'Previdlo pre túto adresu už existuje'; +$messages['spamenteraddress'] = 'Prosím zadajte adresu, ktorú chcete pridať'; +$messages['spamaddresserror'] = 'Chyba: Adresa vyzará neplatná'; +$messages['spamaddressdelete'] = 'Ste si istí, že chcete naozaj vymazať toto pravidlo?'; +$messages['spamaddressdeleteall'] = 'Ste si istí, že chcete naozaj vymazať všetky pravidlá adries?'; +$messages['noaddressrules'] = 'Neboli nájdené žiadne pravidlá adries.'; +$messages['importingaddresses'] = 'Importujem adresy...'; +$messages['usedefaultconfirm'] = 'Ste si istí, že chcete naozaj obnoviť predvolené nastavenia? To vymaže všetky Vaše nastavenia, vrátane pravidiel adries.'; +$messages['purgebayesexp'] = 'Vymaže osobnú Bayesiánsku databázu vytvorenú z Vašich e-mailov'; +$messages['bayesnonspamexp'] = 'E-maily s nižším skóre ako uvedená hranica budú použité na zlepšenie detekcie (naučenie) nespamových správ.'; +$messages['bayesspamexp'] = 'E-maily s vyšším skóre ako uvedená hranica budú použité na zlepšenie detekcie (naučenie) spamových správ.'; +$messages['bayesautohelp'] = 'Keď je automatické učenie zapnuté, systém použije správy ktoré s veľkou istotou prehlási za spam/nespam na zlepšenie detekčných filtrov.'; +$messages['bayeshelp'] = 'Bayesovský klasifikátor sa snaží identifikovať spam podľa slov, alebo zhluku znakov, ktoré sa obvykle vyskytujú v spamových, alebo nespamových e-mailoch.'; +$messages['rblhelp'] = 'IP adresy serverov v hlavičkách, alebo v odkazoch v e-maili budú vyhľadané na niektorých blacklistoch. Blacklisty sú zoznamy známych adries spammerov, ktoré sa aktualizujú v reálnom čase.'; +$messages['dcchelp'] = 'DCC, alebo distribuované výmenné centrum kontrolných súčtov, je systém serverov zbierajúcich a vypočítavajúcich kontrolné súčty (či podpisy) miliónov e-mailov denne. Podľa podobnosti kontrolného súčtu príchodzej správy voči zoznamu evidovaných sa určuje pravdepodobnosť spamu.'; +$messages['pyzhelp'] = 'Pyzor je sieťový systém na detekciu a blokovanie spamu pomocou digestu správ. Digesty sa vypočítavajú niekoľkými spôsobmi tak, aby dokázali tolerovať malú zmenu v obsahu správy.'; +$messages['raz2help'] = 'Vipul\'s Razor je distribuovaná spolupracujúca sieť na detekciu a blokovanie spamu, pracujúca na základe užívateľmi zaslaných spamových vzoriek. Tieto vzorky sú zohľadňované podľa reputácie užívateľa, ktorý ich poskytol. Detekcia sa robí pomocou charakteristík, ktoré efektívne zachytávajú aj meniaci sa obsah spamu.'; +$messages['raz1help'] = 'Vipul\'s Razor je distribuovaná spolupracujúca sieť na detekciu a blokovanie spamu, pracujúca na základe užívateľmi zaslaných spamových vzoriek. Tieto vzorky sú zohľadňované podľa reputácie užívateľa, ktorý ich poskytol. Detekcia sa robí pomocou charakteristík, ktoré efektívne zachytávajú aj meniaci sa obsah spamu. Verzia 1 bola nahradená verziou 2 a nie je už naďalej podporovaná.'; +$messages['levelhelp'] = 'Hlavička \'Spam Level\' zobrazuje opakovaním znaku (napr. hviezdičky) skóre, ktoré kontrolovaný e-mail získal. To môže byť užitočné pri ďalšom spracovaní e-mailu.'; +$messages['foldhelp'] = 'Môžu byť hlavičky pridané do e-mailu SpamAssassinom rozdelené na viac riadkov, namiesto toho, aby boli na jednom veľmi dlhom riadku? Keď je riadok rozdelený, jeho pokračovanie je označené odsadením.'; +$messages['bayesruleshlp'] = 'Predtým, ako môže byt Bayesovský klasifikátor efektívne použitý, musí sa natrénovať správne rozoznávať spam od nespamu. Vypnutím Bayesiánskych pravidiel umožníte systému učiť sa z prichádzajúcich e-mailov, ale nebude sa používať na detekciu spamu..'; +$messages['purgebayesconfirm'] = 'Ste si istí, že chcete naozaj vymazať celú Vašu Bayesiánsku databázu?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/localization/sv_SE.inc b/plugins/sauserprefs/localization/sv_SE.inc new file mode 100644 index 000000000..029ee86a5 --- /dev/null +++ b/plugins/sauserprefs/localization/sv_SE.inc @@ -0,0 +1,84 @@ +<?php +/* Author: Reino Wallin */ + +$labels = array(); +$labels['sauserprefs'] = 'Skräppost'; +$labels['sauserprefssettings'] = 'Inställningar för skräppost'; +$labels['spamgeneralsettings'] = 'Allmänna inställningar'; +$labels['spamthres'] = 'Tröskelvärde'; +$labels['spamsubject'] = 'Rubrikmärkning'; +$labels['spamsubjectblank'] = '(lämna tom om du inte vill lägga till någon text till rubriken)'; +$labels['spamlang'] = 'Brevets språk'; +$labels['enabled'] = 'Aktiverad'; +$labels['disabled'] = 'Ej aktiverad'; +$labels['headers'] = 'Brevhuvud'; +$labels['foldheaders'] = 'Tillåt flera rader i brevhuvudet'; +$labels['spamlevelstars'] = 'Använd \'Spam Level\' i brevhuvudet'; +$labels['spamlevelchar'] = 'Tecken för \'Spam Level\''; +$labels['spamtests'] = 'Internetbaserade tester av skräppost'; +$labels['userazor1'] = 'Använd Razor v1'; +$labels['userazor2'] = 'Använd Razor v2'; +$labels['usepyzor'] = 'Använd Pyzor'; +$labels['usebayes'] = 'Använd bayesklassificering'; +$labels['usedcc'] = 'Använd DCC'; +$labels['skiprblchecks'] = 'Använd svartlistor i realtid'; +$labels['spamreportsettings'] = 'Rapportinställningar'; +$labels['spamreport0'] = 'Lägg till rapporten till originalbrevets brevhuvud'; +$labels['spamreport1'] = 'Sänd rapporten med originalbrevet som en MIME-bilaga'; +$labels['spamreport2'] = 'Sänd rapporten med originalbrevet som en text-bilaga'; +$labels['spamaddressrules'] = 'Adressregler'; +$labels['whitelist_from'] = 'Acceptera brev från'; +$labels['blacklist_from'] = 'Avvisa brev från'; +$labels['whitelist_to'] = 'Acceptera brev till'; +$labels['addrule'] = 'Lägg till'; +$labels['rule'] = 'Regel'; +$labels['importfromaddressbook'] = 'Importera adresser från adressboken'; +$labels['deleteall'] = 'Radera alla'; +$labels['autoscore'] = 'Auto'; +$labels['defaultscore'] = 'Använd grundinställningar'; +$labels['otherscore'] = 'Annan (%s)'; +$labels['usedefault'] = 'Återställ grundinställningar'; +$labels['langoptions'] = 'Språkinställningar'; +$labels['bayes'] = 'Bayesinställningar'; +$labels['purgingbayes'] = 'Raderar bayesdata...'; +$labels['purgebayes'] = 'Radera personliga bayesdata'; +$labels['bayesautolearn'] = 'Använd bayesinlärning'; +$labels['bayesautooptions'] = 'Inställningar för inlärning'; +$labels['bayesnonspam'] = 'Tröskelvärde för vanliga brev'; +$labels['bayesspam'] = 'Tröskelvärde för skräppost'; +$labels['bayesrules'] = 'Använd bayesregler'; +$labels['help'] = 'Hjälp'; + +$messages = array(); +$messages['sauserprefchanged'] = 'Dina inställningar för skräppost har sparats'; +$messages['sauserpreffailed'] = 'Fel: Det går inte att spara dina inställningar för skräppost'; +$messages['spamthresexp'] = 'Alla brev som vid granskningen av SpamAssassin får ett värde som överstiger tröskelvärdet för skräppost blir märkta som skräppost. Ökar man tröskelvärdet innebär det att viss skräppost inte blir märkt som skräppost, men man reducerar också risken att vanliga brev blir märkta som skräppost.'; +$messages['spamlangexp'] = 'Välj de språk du förväntar dig att mottagna brev är skrivna på. Brev som är skrivna på andra språk än de du inte valt kommer att bli betrakade som möjlig skräppost'; +$messages['headersexp'] = 'SpamAssassin lägger till information i brevhuvudet på brev som granskats av SpamAssassin. Informationen beskriver resultatet av granskningen. Använd inställningarna nedan för att konfigurera dessa brevhuvuden.'; +$messages['spamtestssexp'] = 'Vissa kontroller som SpamAssassin utför för att karaktärisera ett brev, baseras på tjänster på Internet. Välj de tjänster du önskar använda dig av:'; +$messages['spamreport'] = 'När ett brev karaktäriseras som skräppost skapas en rapport med alla resulten från granskningen som SpamAssassin gör...'; +$messages['autowhitelist'] = 'Lägg per automatik till adresserna i din adressbok till \'Acceptera brev från\' listan.'; +$messages['whitelistexp'] = 'Du kan använda en asterisk (*) för att skapa ett mer flexibelt regelverk, exempelvis: *@example.com eller *@*.example.com.'; +$messages['spamaddressexists'] = 'En regel finns redan för denna adressen'; +$messages['spamenteraddress'] = 'Ange en adress att lägga till'; +$messages['spamaddresserror'] = 'Fel: Ogiltlig adress'; +$messages['spamaddressdelete'] = 'Är du säker på att du vill radera denna adressregel?'; +$messages['spamaddressdeleteall'] = 'Är du säker på att du vill radera alla adressregler?'; +$messages['noaddressrules'] = 'Det existerar inga adressregler.'; +$messages['importingaddresses'] = 'Importerar adresser...'; +$messages['usedefaultconfirm'] = 'Är du säker på att du vill återställa grundinställninganra? Om så sker raderar du dina nuvarande inställningar, som exempelvis dina adressregler.'; +$messages['purgebayesexp'] = 'Radera personliga bayesdata som samlats in från dina brev'; +$messages['bayesnonspamexp'] = 'Brev som erhåller ett skräppostvärde under detta tröskelvärde kommer att användas för att förbättra skräppostsystemets förmåga att identifiera brev som inte är skräppost.'; +$messages['bayesspamexp'] = 'Brev som erhåller ett skräppostvärde över detta tröskelvärde kommer att användas för att förbättra skräppostsystemets förmåga att identifiera skräppost.'; +$messages['bayesautohelp'] = 'Om bayesinlärning är aktiverat kommer skräppostsystemet att vid granskningen av brev, som med stor sannolikhet är spräppost eller med stor sannolikhet är vanliga brev, att automatiskt uppdatera sin databas och förbättra sin förmåga att detektera skräppost. Brev som är mer svårbedömda kommer inte att användas vid inlärningen'; +$messages['bayeshelp'] = 'Vid klassificering av brev baserat på Bayes försöker man identifiera spräppost med hjälp av ord, eller korta bokstavssekvenser, som är vanligt förekommande i vanliga brev respektive skräppost.'; +$messages['rblhelp'] = 'Serveradresser som finns i länkar infogade i brev kommer att kontrolleras mot ett flertal \'svartlistor\' och listor över välkända källor för skräppost.'; +$messages['dcchelp'] = 'DCC (Distributed Checksum Clearinghouse) är en internettjänst baserad på ett antal sevrar som dagligen samlar in och beräknar checksumman för miljontals brev. Checksumman för inkommande brev jämförs med data i databasen och desto större likhet som råder desto större sannolikhet är det att brevet är att betrakta som skräppost.'; +$messages['pyzhelp'] = 'Pyzor är en distribuerad internettjänst för att detektera skräppost. Den baseras på att man beräknar en checksumma av brevet som kontrolleras mot nätverksbaserade databaser för att se om andra har klassificerat brevtexten som skräppost.'; +$messages['raz2help'] = 'Vipul\'s Razor är en distribuerad internettjänst för att detektera skräppost. Den baseras på att man beräknar en checksumma av brevet som kontrolleras mot nätverksbaserade databaser för att se om andra har klassificerat brevtexten som skräppost. Razor är effektivt även när det gäller så kallade muterade brevtexter.'; +$messages['levelhelp'] = 'Brevhuvudet benämnt \'Spam Level\', som visar hur brevet klassificerats, kan läggas till breven och underlätta för vidare behandling.'; +$messages['foldhelp'] = 'Skall de brevhuvud som SpamAssassin lägger till brevet struktureras som en lång rad eller ett flertal separata brevhuvud.'; +$messages['bayesruleshlp'] = 'Innan bayesklassificering kan göras effektivt måste en inlärning av vad som är spräppost respektive vanliga brev ske. Om man inte väljer att använda bayesklassificering kommer skräppostsystemet att öka sin förmåga att detektera skräppost genom både manuellt och automatiskt inlärning, men klassificering kommer inte att ske.'; +$messages['purgebayesconfirm'] = 'Är du säker på att du vill radera alla dina bayesdata?'; + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/package.xml b/plugins/sauserprefs/package.xml new file mode 100644 index 000000000..e6845a1dc --- /dev/null +++ b/plugins/sauserprefs/package.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 + http://pear.php.net/dtd/tasks-1.0.xsd + http://pear.php.net/dtd/package-2.0 + http://pear.php.net/dtd/package-2.0.xsd"> + <name>sauserprefs</name> + <uri>http://github.com/JohnDoh/Roundcube-Plugin-SpamAssassin-User-Prefs-SQL/</uri> + <summary>Control SpamAssassin settings from within Roundcube</summary> + <description>Adds a 'Spam' tab to the 'Personal Settings' to allow the user to change their SpamAssassin preferences. Preferences must be stored in a SQL database. Default preferences are used when no user preference is found.</description> + <lead> + <name>Philip Weir</name> + <user>JohnDoh</user> + <email>roundcube@tehinterweb.co.uk</email> + <active>yes</active> + </lead> + <date>2013-02-24</date> + <time>10:16:53</time> + <version> + <release>1.10</release> + <api>1.10</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license> + <notes>-</notes> + <contents> + <dir baseinstalldir="/" name="/"> + <file name="sauserprefs.php" role="php"> + <tasks:replace from="@name@" to="name" type="package-info"/> + <tasks:replace from="@package_version@" to="version" type="package-info"/> + </file> + <file name="sauserprefs.js" role="data"> + <tasks:replace from="@name@" to="name" type="package-info"/> + <tasks:replace from="@package_version@" to="version" type="package-info"/> + </file> + <file name="config.inc.php.dist" role="data"/> + <file name="CHANGELOG" role="data"/> + <file name="README.md" role="data"/> + <file name="include/rcube_sauserprefs_storage.php" role="php"/> + <file name="localization/cs_CZ.inc" role="data"/> + <file name="localization/de_CH.inc" role="data"/> + <file name="localization/de_DE.inc" role="data"/> + <file name="localization/en_GB.inc" role="data"/> + <file name="localization/en_US.inc" role="data"/> + <file name="localization/es_ES.inc" role="data"/> + <file name="localization/fr_FR.inc" role="data"/> + <file name="localization/gl_ES.inc" role="data"/> + <file name="localization/hu_HU.inc" role="data"/> + <file name="localization/it_IT.inc" role="data"/> + <file name="localization/pl_PL.inc" role="data"/> + <file name="localization/pt_BR.inc" role="data"/> + <file name="localization/ro_RO.inc" role="data"/> + <file name="localization/ru_RU.inc" role="data"/> + <file name="localization/sk_SK.inc" role="data"/> + <file name="localization/sv_SE.inc" role="data"/> + <file name="skins/classic/help.gif" role="data"/> + <file name="skins/classic/icons.gif" role="data"/> + <file name="skins/classic/icons.png" role="data"/> + <file name="skins/classic/ie6hacks.css" role="data"/> + <file name="skins/classic/iehacks.css" role="data"/> + <file name="skins/classic/safari.css" role="data"/> + <file name="skins/classic/sauserprefs.css" role="data"/> + <file name="skins/classic/tabstyles.css" role="data"/> + <file name="skins/classic/templates/sauserprefs.html" role="data"/> + <file name="skins/classic/templates/settingsedit.html" role="data"/> + <file name="skins/larry/help.png" role="data"/> + <file name="skins/larry/icons.png" role="data"/> + <file name="skins/larry/iehacks.css" role="data"/> + <file name="skins/larry/listicons.png" role="data"/> + <file name="skins/larry/safari.css" role="data"/> + <file name="skins/larry/sauserprefs.css" role="data"/> + <file name="skins/larry/tabstyles.css" role="data"/> + <file name="skins/larry/templates/sauserprefs.html" role="data"/> + <file name="skins/larry/templates/settingsedit.html" role="data"/> + </dir> + <!-- / --> + </contents> + <dependencies> + <required> + <php> + <min>5.2.1</min> + </php> + <pearinstaller> + <min>1.7.0</min> + </pearinstaller> + </required> + </dependencies> + <phprelease/> +</package> diff --git a/plugins/sauserprefs/sauserprefs.js b/plugins/sauserprefs/sauserprefs.js new file mode 100644 index 000000000..3b965566f --- /dev/null +++ b/plugins/sauserprefs/sauserprefs.js @@ -0,0 +1,459 @@ +/** + * SAUserPrefs plugin script + */ + +rcube_webmail.prototype.sauserprefs_toggle_level_char = function(checkbox) { + var level_char; + + if (level_char = rcube_find_object('rcmfd_spamlevelchar')) + level_char.disabled = !checkbox.checked; +} + +rcube_webmail.prototype.sauserprefs_toggle_bayes = function(checkbox) { + var tickbox; + var dropdown; + + if (tickbox = rcube_find_object('rcmfd_spambayesrules')) + tickbox.disabled = !checkbox.checked; + + if (tickbox = rcube_find_object('rcmfd_spambayesautolearn')) + tickbox.disabled = !checkbox.checked; + + if ((dropdown = rcube_find_object('rcmfd_bayesnonspam')) && (tickbox.checked || !checkbox.checked)) + dropdown.disabled = !checkbox.checked; + + if ((dropdown = rcube_find_object('rcmfd_bayesspam')) && (tickbox.checked || !checkbox.checked)) + dropdown.disabled = !checkbox.checked; +} + +rcube_webmail.prototype.sauserprefs_toggle_bayes_auto = function(checkbox) { + var dropdown; + + if (dropdown = rcube_find_object('rcmfd_bayesnonspam')) + dropdown.disabled = !checkbox.checked; + + if (dropdown = rcube_find_object('rcmfd_bayesspam')) + dropdown.disabled = !checkbox.checked; +} + +rcube_webmail.prototype.sauserprefs_addressrule_import = function(address) { + parent.rcmail.set_busy(false, null, rcmail.env.sauserprefs_whitelist); + + var adrTable = rcube_find_object('address-rules-table').tBodies[0]; + + var actions = document.getElementsByName('_address_rule_act[]'); + var prefs = document.getElementsByName('_address_rule_field[]'); + var addresses = document.getElementsByName('_address_rule_value[]'); + var insHere; + + for (var i = 1; i < addresses.length; i++) { + if (addresses[i].value == address && actions[i].value != "DELETE") { + return false; + } + else if (addresses[i].value > address) { + insHere = adrTable.rows[i + 1]; + break; + } + } + + var newNode = adrTable.rows[0].cloneNode(true); + adrTable.rows[1].style.display = 'none'; + + if (insHere) + adrTable.insertBefore(newNode, insHere); + else + adrTable.appendChild(newNode); + + newNode.style.display = ""; + newNode.cells[0].className = "whitelist_from"; + newNode.cells[0].innerHTML = rcmail.gettext('whitelist_from','sauserprefs'); + newNode.cells[1].innerHTML = address; + actions[newNode.rowIndex - 2].value = "INSERT"; + prefs[newNode.rowIndex - 2].value = "whitelist_from"; + addresses[newNode.rowIndex - 2].value = address; + + rcmail.env.address_rule_count++; +} + +rcube_webmail.prototype.sauserprefs_help = function(sel) { + var help = rcube_find_object(sel); + help.style.display = (help.style.display == 'none' ? '' : 'none'); + return false; +} + +$(document).ready(function() { + if (window.rcmail) { + rcmail.addEventListener('init', function(evt) { + var tab = $('<span>').attr('id', 'settingstabpluginsauserprefs').addClass('tablink'); + var button = $('<a>').attr('href', rcmail.env.comm_path+'&_action=plugin.sauserprefs').attr('title', rcmail.gettext('managespam', 'sauserprefs')).html(rcmail.gettext('sauserprefs','sauserprefs')).appendTo(tab); + + // add button and register command + rcmail.add_element(tab, 'tabs'); + + if (rcmail.env.action == 'plugin.sauserprefs.edit') { + rcmail.register_command('plugin.sauserprefs.select_all_langs', function() { + var langlist = document.getElementsByName('_spamlang[]'); + var obj; + + for (var i = 0; i < langlist.length; i++) { + langlist[i].checked = true; + obj = rcube_find_object('spam_lang_'+ i); + obj.title = rcmail.gettext('enabled','sauserprefs'); + obj.className = 'enabled'; + } + + return false; + }, true); + + rcmail.register_command('plugin.sauserprefs.select_invert_langs', function() { + var langlist = document.getElementsByName('_spamlang[]'); + var obj; + + for (var i = 0; i < langlist.length; i++) { + if (langlist[i].checked) { + langlist[i].checked = false; + obj = rcube_find_object('spam_lang_'+ i); + obj.title = rcmail.gettext('disabled','sauserprefs'); + obj.className = 'disabled'; + } + else { + langlist[i].checked = true; + obj = rcube_find_object('spam_lang_'+ i); + obj.title = rcmail.gettext('enabled','sauserprefs'); + obj.className = 'enabled'; + } + } + + return false; + }, true); + + rcmail.register_command('plugin.sauserprefs.select_no_langs', function() { + var langlist = document.getElementsByName('_spamlang[]'); + var obj; + + for (var i = 0; i < langlist.length; i++) { + langlist[i].checked = false; + obj = rcube_find_object('spam_lang_'+ i); + obj.title = rcmail.gettext('disabled','sauserprefs'); + obj.className = 'disabled'; + } + + return false; + }, true); + + rcmail.register_command('plugin.sauserprefs.message_lang', function(lang_code, obj) { + var langlist = document.getElementsByName('_spamlang[]'); + var i = obj.parentNode.parentNode.rowIndex - 1; + + if (langlist[i].checked) { + langlist[i].checked = false; + obj.title = rcmail.gettext('disabled','sauserprefs'); + obj.className = 'disabled'; + } + else { + langlist[i].checked = true; + obj.title = rcmail.gettext('enabled','sauserprefs'); + obj.className = 'enabled'; + } + + return false; + }, true); + + rcmail.register_command('plugin.sauserprefs.addressrule_del', function(props, obj) { + var adrTable = rcube_find_object('address-rules-table').tBodies[0]; + var rowidx = obj.parentNode.parentNode.rowIndex - 1; + var fieldidx = rowidx - 1; + + if (!confirm(rcmail.gettext('spamaddressdelete','sauserprefs'))) + return false; + + if (document.getElementsByName('_address_rule_act[]')[fieldidx].value == "INSERT") { + adrTable.deleteRow(rowidx); + } + else { + adrTable.rows[rowidx].style.display = 'none'; + document.getElementsByName('_address_rule_act[]')[fieldidx].value = "DELETE"; + } + + rcmail.env.address_rule_count--; + if (rcmail.env.address_rule_count < 1) + adrTable.rows[1].style.display = ''; + + return false; + }, true); + + rcmail.register_command('plugin.sauserprefs.addressrule_add', function() { + var adrTable = rcube_find_object('address-rules-table').tBodies[0]; + var input_spamaddressrule = rcube_find_object('_spamaddressrule'); + var selrule = input_spamaddressrule.selectedIndex; + var input_spamaddress = rcube_find_object('_spamaddress'); + + if (input_spamaddress.value.replace(/^\s+|\s+$/g, '') == '') { + alert(rcmail.gettext('spamenteraddress','sauserprefs')); + input_spamaddress.focus(); + return false; + } + else if (!rcube_check_email(input_spamaddress.value.replace(/^\s+/, '').replace(/[\s,;]+$/, ''), true)) { + alert(rcmail.gettext('spamaddresserror','sauserprefs')); + input_spamaddress.focus(); + return false; + } + else { + var actions = document.getElementsByName('_address_rule_act[]'); + var prefs = document.getElementsByName('_address_rule_field[]'); + var addresses = document.getElementsByName('_address_rule_value[]'); + var insHere; + + for (var i = 1; i < addresses.length; i++) { + if (addresses[i].value == input_spamaddress.value && actions[i].value != "DELETE") { + alert(rcmail.gettext('spamaddressexists','sauserprefs')); + input_spamaddress.focus(); + return false; + } + else if (addresses[i].value > input_spamaddress.value) { + insHere = adrTable.rows[i + 1]; + break; + } + } + + var newNode = adrTable.rows[0].cloneNode(true); + adrTable.rows[1].style.display = 'none'; + + if (insHere) + adrTable.insertBefore(newNode, insHere); + else + adrTable.appendChild(newNode); + + newNode.style.display = ""; + newNode.cells[0].className = input_spamaddressrule.options[selrule].value; + newNode.cells[0].innerHTML = input_spamaddressrule.options[selrule].text; + newNode.cells[1].innerHTML = input_spamaddress.value; + actions[newNode.rowIndex - 2].value = "INSERT"; + prefs[newNode.rowIndex - 2].value = input_spamaddressrule.options[selrule].value; + addresses[newNode.rowIndex - 2].value = input_spamaddress.value; + + input_spamaddressrule.selectedIndex = 0; + input_spamaddress.value = ''; + + rcmail.env.address_rule_count++; + } + }, true); + + rcmail.register_command('plugin.sauserprefs.whitelist_delete_all', function(props, obj) { + var adrTable = rcube_find_object('address-rules-table').tBodies[0]; + + if (!confirm(rcmail.gettext('spamaddressdeleteall','sauserprefs'))) + return false; + + for (var i = adrTable.rows.length - 1; i > 1; i--) { + if (document.getElementsByName('_address_rule_act[]')[i-1].value == "INSERT") { + adrTable.deleteRow(i); + rcmail.env.address_rule_count--; + } + else if (document.getElementsByName('_address_rule_act[]')[i-1].value != "DELETE") { + adrTable.rows[i].style.display = 'none'; + document.getElementsByName('_address_rule_act[]')[i-1].value = "DELETE"; + rcmail.env.address_rule_count--; + } + } + + adrTable.rows[1].style.display = ''; + return false; + }, true); + + rcmail.register_command('plugin.sauserprefs.import_whitelist', function(props, obj) { + rcmail.env.sauserprefs_whitelist = rcmail.set_busy(true, 'sauserprefs.importingaddresses'); + rcmail.http_request('plugin.sauserprefs.whitelist_import', '', rcmail.env.sauserprefs_whitelist); + return false; + }, true); + + rcmail.register_command('plugin.sauserprefs.purge_bayes', function(props, obj) { + if (confirm(rcmail.gettext('purgebayesconfirm','sauserprefs'))) { + var lock = rcmail.set_busy(true, 'sauserprefs.purgingbayes'); + rcmail.http_request('plugin.sauserprefs.purge_bayes', '', lock); + } + + return false; + }, true); + + rcmail.register_command('plugin.sauserprefs.save', function() { rcmail.gui_objects.editform.submit(); }, true); + + rcmail.register_command('plugin.sauserprefs.default', function() { + if (confirm(rcmail.gettext('usedefaultconfirm','sauserprefs'))) { + // Score + if (rcube_find_object('rcmfd_spamthres')) + rcube_find_object('rcmfd_spamthres').selectedIndex = 0; + + // Subject tag + if (rcube_find_object('rcmfd_spamsubject')) + rcube_find_object('rcmfd_spamsubject').value = rcmail.env.rewrite_header_Subject + + // Languages + var langlist = document.getElementsByName('_spamlang[]'); + var obj; + var dlangs = " " + rcmail.env.ok_languages + " "; + + for (var i = 0; i < langlist.length; i++) { + langlist[i].checked = false; + obj = rcube_find_object('spam_lang_' + i); + obj.title = rcmail.gettext('disabled','sauserprefs'); + obj.className = 'disabled'; + + if (dlangs.indexOf(" " + langlist[i].value + " ") > -1) { + langlist[i].checked = true; + obj = rcube_find_object('spam_lang_' + i); + obj.title = rcmail.gettext('enabled','sauserprefs'); + obj.className = 'enabled'; + } + } + + // Tests + if (rcube_find_object('rcmfd_spamuserazor1')) { + if (rcmail.env.use_razor1 == '1') + rcube_find_object('rcmfd_spamuserazor1').checked = true; + else + rcube_find_object('rcmfd_spamuserazor1').checked = false; + } + + if (rcube_find_object('rcmfd_spamuserazor2')) { + if (rcmail.env.use_razor2 == '1') + rcube_find_object('rcmfd_spamuserazor2').checked = true; + else + rcube_find_object('rcmfd_spamuserazor2').checked = false; + } + + if (rcube_find_object('rcmfd_spamusepyzor')) { + if (rcmail.env.use_pyzor == '1') + rcube_find_object('rcmfd_spamusepyzor').checked = true; + else + rcube_find_object('rcmfd_spamusepyzor').checked = false; + } + + if (rcube_find_object('rcmfd_spamusedcc')) { + if (rcmail.env.use_dcc == '1') + rcube_find_object('rcmfd_spamusedcc').checked = true; + else + rcube_find_object('rcmfd_spamusedcc').checked = false; + } + + if (rcube_find_object('rcmfd_spamskiprblchecks')) { + if (rcmail.env.skip_rbl_checks == '1') + rcube_find_object('rcmfd_spamskiprblchecks').checked = true; + else + rcube_find_object('rcmfd_spamskiprblchecks').checked = false; + } + + // Bayes + if (rcube_find_object('rcmfd_spamusebayes')) { + if (rcmail.env.use_bayes == '1') + rcube_find_object('rcmfd_spamusebayes').checked = true; + else + rcube_find_object('rcmfd_spamusebayes').checked = false; + } + + if (rcube_find_object('rcmfd_spambayesautolearn')) { + if (rcmail.env.bayes_auto_learn == '1') + rcube_find_object('rcmfd_spambayesautolearn').checked = true; + else + rcube_find_object('rcmfd_spambayesautolearn').checked = false; + } + + if (rcube_find_object('rcmfd_bayesnonspam')) + rcube_find_object('rcmfd_bayesnonspam').selectedIndex = 0; + + if (rcube_find_object('rcmfd_bayesspam')) + rcube_find_object('rcmfd_bayesspam').selectedIndex = 0; + + if (rcube_find_object('rcmfd_spambayesrules')) { + if (rcmail.env.use_bayes_rules == '1') + rcube_find_object('rcmfd_spambayesrules').checked = true; + else + rcube_find_object('rcmfd_spambayesrules').checked = false; + } + + // Headers + if (rcube_find_object('rcmfd_spamfoldheaders')) { + if (rcmail.env.skip_rbl_checks == '1') + rcube_find_object('rcmfd_spamfoldheaders').checked = true; + else + rcube_find_object('rcmfd_spamfoldheaders').checked = false; + } + + if (rcube_find_object('rcmfd_spamlevelstars')) { + if (rcmail.env.add_header_all_Level != '') { + rcube_find_object('rcmfd_spamlevelstars').checked = true; + rcube_find_object('rcmfd_spamlevelchar').value = rcmail.env.add_header_all_Level.substr(7, 1); + } + else { + rcube_find_object('rcmfd_spamlevelstars').checked = false; + rcube_find_object('rcmfd_spamlevelchar').value = "*"; + } + } + + // Report + if (rcube_find_object('rcmfd_spamreport_0')) { + if (rcmail.env.report_safe == '0') + rcube_find_object('rcmfd_spamreport_0').checked = true; + else + rcube_find_object('rcmfd_spamreport_0').checked = false; + } + + if (rcube_find_object('rcmfd_spamreport_1')) { + if (rcmail.env.report_safe == '1') + rcube_find_object('rcmfd_spamreport_1').checked = true; + else + rcube_find_object('rcmfd_spamreport_1').checked = false; + } + + if (rcube_find_object('rcmfd_spamreport_2')) { + if (rcmail.env.report_safe == '2') + rcube_find_object('rcmfd_spamreport_2').checked = true; + else + rcube_find_object('rcmfd_spamreport_2').checked = false; + } + + // Delete whitelist + if (rcube_find_object('address-rules-table')) { + var adrTable = rcube_find_object('address-rules-table').tBodies[0]; + for (var i = adrTable.rows.length - 1; i > 1; i--) { + if (document.getElementsByName('_address_rule_act[]')[i-1].value == "INSERT") { + adrTable.deleteRow(i); + rcmail.env.address_rule_count--; + } + else if (document.getElementsByName('_address_rule_act[]')[i-1].value != "DELETE") { + adrTable.rows[i].style.display = 'none'; + document.getElementsByName('_address_rule_act[]')[i-1].value = "DELETE"; + rcmail.env.address_rule_count--; + } + } + adrTable.rows[1].style.display = ''; + } + } + }, true); + + rcmail.enable_command('plugin.sauserprefs.save','plugin.sauserprefs.default', true); + } + }); + + if (rcmail.env.action == 'plugin.sauserprefs') { + rcmail.section_select = function(list) { + var id = list.get_single_selection() + + if (id) { + var add_url = ''; + var target = window; + this.set_busy(true); + + if (this.env.contentframe && window.frames && window.frames[this.env.contentframe]) { + add_url = '&_framed=1'; + target = window.frames[this.env.contentframe]; + } + + target.location.href = this.env.comm_path + '&_action=plugin.sauserprefs.edit&_section=' + id + add_url; + } + + return true; + } + } + } +});
\ No newline at end of file diff --git a/plugins/sauserprefs/sauserprefs.php b/plugins/sauserprefs/sauserprefs.php new file mode 100644 index 000000000..8cab496b7 --- /dev/null +++ b/plugins/sauserprefs/sauserprefs.php @@ -0,0 +1,909 @@ +<?php + +/** + * SAUserPrefs + * + * Plugin to allow the user to manage their SpamAssassin settings using an SQL database + * + * @version @package_version@ + * @author Philip Weir + */ +class sauserprefs extends rcube_plugin +{ + public $task = 'mail|addressbook|settings'; + private $storage; + private $sections = array(); + private $cur_section; + private $global_prefs; + private $user_prefs; + private $addressbook = '0'; + private $sa_locales = array('en', 'ja', 'ko', 'ru', 'th', 'zh'); + private $sa_user; + static $deprecated_prefs = array('required_hits' => 'required_score'); + + function init() + { + $rcmail = rcube::get_instance(); + $this->load_config(); + $this->sa_user = $rcmail->config->get('sauserprefs_userid', "%u"); + + $identity_arr = $rcmail->user->get_identity(); + $identity = $identity_arr['email']; + $this->sa_user = str_replace('%u', $_SESSION['username'], $this->sa_user); + $this->sa_user = str_replace('%l', $rcmail->user->get_username('local'), $this->sa_user); + $this->sa_user = str_replace('%d', $rcmail->user->get_username('domain'), $this->sa_user); + $this->sa_user = str_replace('%i', $identity, $this->sa_user); + + // init storage + include('include/rcube_sauserprefs_storage.php'); + $this->storage = new rcube_sauserprefs_storage($rcmail->config->get('sauserprefs_db_dsnw'), $rcmail->config->get('sauserprefs_db_dsnr'), $rcmail->config->get('sauserprefs_db_persistent'), + $this->sa_user, $rcmail->config->get('sauserprefs_sql_table_name'), $rcmail->config->get('sauserprefs_sql_username_field'), $rcmail->config->get('sauserprefs_sql_preference_field'), + $rcmail->config->get('sauserprefs_sql_value_field'), $rcmail->config->get('sauserprefs_bayes_delete_query')); + + if ($rcmail->config->get('sauserprefs_whitelist_abook_id', false)) + $this->addressbook = $rcmail->config->get('sauserprefs_whitelist_abook_id'); + + if ($rcmail->task == 'settings') { + $this->add_texts('localization/', array('sauserprefs', 'managespam')); + $this->include_stylesheet($this->local_skin_path() . '/tabstyles.css'); + + $this->sections = array( + 'general' => array('id' => 'general', 'section' => $this->gettext('spamgeneralsettings')), + 'tests' => array('id' => 'tests', 'section' => $this->gettext('spamtests')), + 'bayes' => array('id' => 'bayes', 'section' => $this->gettext('bayes')), + 'headers' => array('id' => 'headers', 'section' => $this->gettext('headers')), + 'report' => array('id' => 'report','section' => $this->gettext('spamreportsettings')), + 'addresses' => array('id' => 'addresses', 'section' => $this->gettext('spamaddressrules')), + ); + $this->cur_section = rcube_utils::get_input_value('_section', rcube_utils::INPUT_GPC); + + $this->register_action('plugin.sauserprefs', array($this, 'init_html')); + $this->register_action('plugin.sauserprefs.edit', array($this, 'init_html')); + $this->register_action('plugin.sauserprefs.save', array($this, 'save')); + $this->register_action('plugin.sauserprefs.whitelist_import', array($this, 'whitelist_import')); + $this->register_action('plugin.sauserprefs.purge_bayes', array($this, 'purge_bayes')); + $this->include_script('sauserprefs.js'); + } + elseif ($rcmail->config->get('sauserprefs_whitelist_sync')) { + $this->add_hook('contact_create', array($this, 'contact_add')); + $this->add_hook('contact_update', array($this, 'contact_save')); + $this->add_hook('contact_delete', array($this, 'contact_delete')); + } + } + + function init_html() + { + $this->_load_global_prefs(); + $this->_load_user_prefs(); + + $this->api->output->set_pagetitle($this->gettext('sauserprefssettings')); + + if (rcube::get_instance()->action == 'plugin.sauserprefs.edit') { + $this->user_prefs = array_merge($this->global_prefs, $this->user_prefs); + $this->api->output->add_handler('userprefs', array($this, 'gen_form')); + $this->api->output->add_handler('sectionname', array($this, 'prefs_section_name')); + $this->api->output->send('sauserprefs.settingsedit'); + } + else { + $this->api->output->add_handler('sasectionslist', array($this, 'section_list')); + $this->api->output->add_handler('saprefsframe', array($this, 'preference_frame')); + $this->api->output->send('sauserprefs.sauserprefs'); + } + } + + function section_list($attrib) + { + $no_override = array_flip(rcube::get_instance()->config->get('sauserprefs_dont_override')); + + // add id to message list table if not specified + if (!strlen($attrib['id'])) + $attrib['id'] = 'rcmsectionslist'; + + $sections = array(); + $blocks = $attrib['sections'] ? preg_split('/[\s,;]+/', strip_quotes($attrib['sections'])) : array_keys($this->sections); + foreach ($blocks as $block) { + if (!isset($no_override['{' . $block . '}'])) + $sections[$block] = $this->sections[$block]; + } + + // create XHTML table + $out = rcube::get_instance()->table_output($attrib, $sections, array('section'), 'id'); + + // set client env + $this->api->output->add_gui_object('sectionslist', $attrib['id']); + $this->api->output->include_script('list.js'); + + return $out; + } + + function preference_frame($attrib) + { + if (!$attrib['id']) + $attrib['id'] = 'rcmprefsframe'; + + return $this->api->output->frame($attrib, true); + } + + function gen_form($attrib) + { + $this->api->output->add_label( + 'sauserprefs.spamaddressexists', 'sauserprefs.spamenteraddress', + 'sauserprefs.spamaddresserror', 'sauserprefs.spamaddressdelete', + 'sauserprefs.spamaddressdeleteall', 'sauserprefs.enabled', 'sauserprefs.disabled', + 'sauserprefs.importingaddresses', 'sauserprefs.usedefaultconfirm', 'sauserprefs.purgebayesconfirm', + 'sauserprefs.whitelist_from'); + + // output global prefs as default in env + foreach($this->global_prefs as $key => $val) + $this->api->output->set_env(str_replace(" ", "_", $key), $val); + + unset($attrib['form']); + + list($form_start, $form_end) = get_form_tags($attrib, 'plugin.sauserprefs.save', null, + array('name' => '_section', 'value' => $this->cur_section)); + + $out = $form_start; + + $out .= $this->_prefs_block($this->cur_section, $attrib); + + return $out . $form_end; + } + + function prefs_section_name() + { + return $this->sections[$this->cur_section]['section']; + } + + function save() + { + $rcmail = rcube::get_instance(); + $this->_load_global_prefs(); + $this->_load_user_prefs(); + + $no_override = array_flip($rcmail->config->get('sauserprefs_dont_override')); + $new_prefs = array(); + $result = true; + + switch ($this->cur_section) + { + case 'general': + if (!isset($no_override['required_hits'])) + $new_prefs['required_hits'] = rcube_utils::get_input_value('_spamthres', rcube_utils::INPUT_POST); + + if (!isset($no_override['rewrite_header Subject'])) + $new_prefs['rewrite_header Subject'] = rcube_utils::get_input_value('_spamsubject', rcube_utils::INPUT_POST); + + if (!isset($no_override['ok_locales'])) { + $new_prefs['ok_locales'] = ''; + if (is_array(rcube_utils::get_input_value('_spamlang', rcube_utils::INPUT_POST))) { + $locales = array_intersect(rcube_utils::get_input_value('_spamlang', rcube_utils::INPUT_POST), $this->sa_locales); + $new_prefs['ok_locales'] = implode(" ", $locales); + } + } + + if (!isset($no_override['ok_languages'])) + $new_prefs['ok_languages'] = is_array(rcube_utils::get_input_value('_spamlang', rcube_utils::INPUT_POST)) ? implode(" ", rcube_utils::get_input_value('_spamlang', rcube_utils::INPUT_POST)) : ''; + + break; + + case 'headers': + if (!isset($no_override['fold_headers'])) + $new_prefs['fold_headers'] = empty($_POST['_spamfoldheaders']) ? "0" : "1"; + + if (!isset($no_override['add_header all Level'])) { + $spamchar = empty($_POST['_spamlevelchar']) ? "*" : rcube_utils::get_input_value('_spamlevelchar', rcube_utils::INPUT_POST); + + if (rcube_utils::get_input_value('_spamlevelstars', rcube_utils::INPUT_POST) == "1") { + $new_prefs['add_header all Level'] = "_STARS(". $spamchar .")_"; + $new_prefs['remove_header all'] = "0"; + } + else { + $new_prefs['add_header all Level'] = ""; + $new_prefs['remove_header all'] = "Level"; + } + } + + break; + + case 'tests': + if (!isset($no_override['use_razor1'])) + $new_prefs['use_razor1'] = empty($_POST['_spamuserazor1']) ? "0" : "1"; + + if (!isset($no_override['use_razor2'])) + $new_prefs['use_razor2'] = empty($_POST['_spamuserazor2']) ? "0" : "1"; + + if (!isset($no_override['use_pyzor'])) + $new_prefs['use_pyzor'] = empty($_POST['_spamusepyzor']) ? "0" : "1"; + + if (!isset($no_override['use_dcc'])) + $new_prefs['use_dcc'] = empty($_POST['_spamusedcc']) ? "0" : "1"; + + if (!isset($no_override['skip_rbl_checks'])) + $new_prefs['skip_rbl_checks'] = empty($_POST['_spamskiprblchecks']) ? "1" : "0"; + + break; + + case 'bayes': + if (!isset($no_override['use_bayes'])) + $new_prefs['use_bayes'] = empty($_POST['_spamusebayes']) ? "0" : "1"; + + if (!isset($no_override['bayes_auto_learn'])) + $new_prefs['bayes_auto_learn'] = empty($_POST['_spambayesautolearn']) ? "0" : "1"; + + if (!isset($no_override['bayes_auto_learn_threshold_nonspam']) && !empty($_POST['_bayesnonspam'])) + $new_prefs['bayes_auto_learn_threshold_nonspam'] = rcube_utils::get_input_value('_bayesnonspam', rcube_utils::INPUT_POST); + + if (!isset($no_override['bayes_auto_learn_threshold_spam']) && !empty($_POST['_bayesspam'])) + $new_prefs['bayes_auto_learn_threshold_spam'] = rcube_utils::get_input_value('_bayesspam', rcube_utils::INPUT_POST); + + if (!isset($no_override['use_bayes_rules'])) + $new_prefs['use_bayes_rules'] = empty($_POST['_spambayesrules']) ? "0" : "1"; + + break; + + case 'report': + if (!isset($no_override['report_safe'])) + $new_prefs['report_safe'] = rcube_utils::get_input_value('_spamreport', rcube_utils::INPUT_POST); + + break; + + case 'addresses': + $acts = rcube_utils::get_input_value('_address_rule_act', rcube_utils::INPUT_POST); + $prefs = rcube_utils::get_input_value('_address_rule_field', rcube_utils::INPUT_POST); + $vals = rcube_utils::get_input_value('_address_rule_value', rcube_utils::INPUT_POST); + + foreach ($acts as $idx => $act) + $new_prefs['addresses'][] = array('field' => $prefs[$idx], 'value' => $vals[$idx], 'action' => $act); + + break; + } + + // allow additional actions before prefs are saved + $data = $rcmail->plugins->exec_hook('sauserprefs_save', array( + 'section' => $this->cur_section, 'cur_prefs' => $this->user_prefs, 'new_prefs' => $new_prefs, 'global_prefs' => $this->global_prefs)); + + if (!$data['abort']) { + // save prefs + if ($this->storage->save_prefs($data['new_prefs'], $this->user_prefs, $this->global_prefs)) + $this->api->output->command('display_message', $this->gettext('sauserprefchanged'), 'confirmation'); + else + $this->api->output->command('display_message', $this->gettext('sauserpreffailed'), 'error'); + } + else { + $this->api->output->command('display_message', $data['message'] ? $data['message'] : $this->gettext('sauserpreffailed'), 'error'); + } + + // go to next step + $rcmail->overwrite_action('plugin.sauserprefs.edit'); + $this->_load_user_prefs(); + $this->init_html(); + } + + function whitelist_import() + { + $contacts = rcube::get_instance()->get_address_book($this->addressbook); + $contacts->set_page(1); + $contacts->set_pagesize(99999); + $result = $contacts->list_records(null, 0, true); + + if (empty($result) || $result->count == 0) + return; + + $records = $result->records; + foreach ($records as $row_data) { + foreach ($this->_gen_email_arr($row_data) as $email) + $this->api->output->command('sauserprefs_addressrule_import', $email, '', ''); + } + + $contacts->close(); + } + + function purge_bayes() + { + $rcmail = rcube::get_instance(); + + if (!$rcmail->config->get('sauserprefs_bayes_delete', false)) { + $this->api->output->command('display_message', $this->gettext('servererror'), 'error'); + return; + } + + if ($this->storage->purge_bayes()) + $this->api->output->command('display_message', $this->gettext('done'), 'confirmation'); + else + $this->api->output->command('display_message', $this->gettext('servererror'), 'error'); + } + + function contact_add($args) + { + $rcmail = rcube::get_instance(); + + // only works with specified address book + if ($args['source'] != $this->addressbook && $args['source'] != null) + return; + + $emails = $this->_gen_email_arr($args['record']); + $this->storage->whitelist_add($emails); + } + + function contact_save($args) + { + $this->contact_delete($args); + $this->contact_add($args); + } + + function contact_delete($args) + { + $rcmail = rcube::get_instance(); + + // only works with specified address book + if ($args['source'] != $this->addressbook && $args['source'] != null) + return; + + if (!is_array($args['id'])) + $args['id'] = array($args['id']); + + $contacts = $rcmail->get_address_book($this->addressbook); + foreach ($args['id'] as $id) { + $emails = $this->_gen_email_arr($contacts->get_record($id, true)); + $this->storage->whitelist_delete($emails); + } + + $contacts->close(); + } + + private function _load_global_prefs() + { + $rcmail = rcube::get_instance(); + $this->global_prefs = $this->_load_prefs($rcmail->config->get('sauserprefs_global_userid')); + $this->global_prefs = array_merge($rcmail->config->get('sauserprefs_default_prefs'), $this->global_prefs); + } + + private function _load_user_prefs() + { + $this->user_prefs = $this->_load_prefs($this->sa_user); + } + + private function _load_prefs($user) + { + $rcmail = rcube::get_instance(); + $prefs = $this->storage->load_prefs($user); + + // sort address rules + $prefs['addresses'] = $this->_subval_sort($prefs['addresses'], 'value'); + + return $prefs; + } + + private function _prefs_block($part, $attrib) + { + $rcmail = rcube::get_instance(); + $no_override = array_flip($rcmail->config->get('sauserprefs_dont_override')); + $locale_info = localeconv(); + + switch ($part) + { + // General tests + case 'general': + $out = ''; + $data = ''; + + $table = new html_table(array('class' => 'generalprefstable', 'cols' => 2)); + + if (!isset($no_override['required_hits'])) { + $field_id = 'rcmfd_spamthres'; + $input_spamthres = new html_select(array('name' => '_spamthres', 'id' => $field_id)); + $input_spamthres->add($this->gettext('defaultscore'), ''); + + $decPlaces = 0; + if ($rcmail->config->get('sauserprefs_score_inc') - (int)$rcmail->config->get('sauserprefs_score_inc') > 0) + $decPlaces = strlen($rcmail->config->get('sauserprefs_score_inc') - (int)$rcmail->config->get('sauserprefs_score_inc')) - 2; + + $score_found = false; + for ($i = 1; $i <= 10; $i = $i + $rcmail->config->get('sauserprefs_score_inc')) { + $input_spamthres->add(number_format($i, $decPlaces, $locale_info['decimal_point'], ''), number_format($i, $decPlaces, '.', '')); + + if (!$score_found && $this->user_prefs['required_hits'] && (float)$this->user_prefs['required_hits'] == (float)$i) + $score_found = true; + } + + if (!$score_found && $this->user_prefs['required_hits']) + $input_spamthres->add(str_replace('%s', $this->user_prefs['required_hits'], $this->gettext('otherscore')), (float)$this->user_prefs['required_hits']); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('spamthres')))); + $table->add(null, $input_spamthres->show(number_format($this->user_prefs['required_hits'], $decPlaces, '.', ''))); + $table->add(array('colspan' => 2), rcmail::Q($this->gettext('spamthresexp'))); + } + + if (!isset($no_override['rewrite_header Subject'])) { + $field_id = 'rcmfd_spamsubject'; + $input_spamsubject = new html_inputfield(array('name' => '_spamsubject', 'id' => $field_id, 'value' => $this->user_prefs['rewrite_header Subject'], 'style' => 'width:200px;')); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('spamsubject')))); + $table->add(null, $input_spamsubject->show()); + + $table->add('title', " "); + $table->add(null, rcmail::Q($this->gettext('spamsubjectblank'))); + } + + if ($table->size() > 0) + $out .= html::tag('fieldset', null, html::tag('legend', null, rcmail::Q($this->gettext('mainoptions'))) . $table->show()); + + if (!isset($no_override['ok_languages']) || !isset($no_override['ok_locales'])) { + $data = html::p(null, rcmail::Q($this->gettext('spamlangexp'))); + + $table = new html_table(array('class' => 'langprefstable', 'cols' => 1)); + + $select_all = $this->api->output->button(array('command' => 'plugin.sauserprefs.select_all_langs', 'type' => 'link', 'label' => 'all')); + $select_none = $this->api->output->button(array('command' => 'plugin.sauserprefs.select_no_langs', 'type' => 'link', 'label' => 'none')); + $select_invert = $this->api->output->button(array('command' => 'plugin.sauserprefs.select_invert_langs', 'type' => 'link', 'label' => 'invert')); + + $table->add(array('id' => 'listcontrols'), $this->gettext('select') .": ". $select_all ." ". $select_invert ." ". $select_none); + + $lang_table = new html_table(array('id' => 'spam-langs-table', 'class' => 'records-table', 'cellspacing' => '0', 'cols' => 2)); + $lang_table->add_header(array('colspan' => 2), $this->gettext('language')); + + if (!isset($no_override['ok_locales'])) { + if ($this->user_prefs['ok_locales'] == "all") + $ok_locales = $this->sa_locales; + else + $ok_locales = explode(" ", $this->user_prefs['ok_locales']); + } + else { + $ok_locales = array(); + } + + if (!isset($no_override['ok_languages'])) { + if ($this->user_prefs['ok_languages'] == "all") + $ok_languages = array_keys($rcmail->config->get('sauserprefs_languages')); + else + $ok_languages = explode(" ", $this->user_prefs['ok_languages']); + } + else { + $tmp_array = $rcmail->config->get('sauserprefs_languages'); + $rcmail->config->set('sauserprefs_languages', array_intersect_key($tmp_array, array_flip($this->sa_locales))); + $ok_languages = array(); + } + + $i = 0; + $locales_langs = array_merge($ok_locales, $ok_languages); + foreach ($rcmail->config->get('sauserprefs_languages') as $lang_code => $name) { + if (in_array($lang_code, $locales_langs)) + $button = $this->api->output->button(array('command' => 'plugin.sauserprefs.message_lang', 'prop' => $lang_code, 'type' => 'link', 'class' => 'enabled', 'id' => 'spam_lang_' . $i, 'title' => 'sauserprefs.enabled', 'content' => ' ')); + else + $button = $this->api->output->button(array('command' => 'plugin.sauserprefs.message_lang', 'prop' => $lang_code, 'type' => 'link', 'class' => 'disabled', 'id' => 'spam_lang_' . $i, 'title' => 'sauserprefs.disabled', 'content' => ' ')); + + $input_spamlang = new html_checkbox(array('style' => 'display: none;', 'name' => '_spamlang[]', 'value' => $lang_code)); + + $lang_table->add('lang', $name); + $lang_table->add('tick', $button . $input_spamlang->show(in_array($lang_code, $locales_langs) ? $lang_code : '')); + + $i++; + } + + $table->add('scroller', html::div(array('id' => 'spam-langs-cont'), $lang_table->show())); + + $out .= html::tag('fieldset', null, html::tag('legend', null, rcmail::Q($this->gettext('langoptions'))) . $data . $table->show()); + } + + break; + + // Header settings + case 'headers': + $data = html::p(null, rcmail::Q($this->gettext('headersexp'))); + + $table = new html_table(array('class' => 'headersprefstable', 'cols' => 3)); + + if (!isset($no_override['fold_headers'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("fold_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spamfoldheaders'; + $input_spamreport = new html_checkbox(array('name' => '_spamfoldheaders', 'id' => $field_id, 'value' => '1')); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('foldheaders')))); + $table->add(null, $input_spamreport->show($this->user_prefs['fold_headers'])); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'fold_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('foldhelp'))); + } + + if (!isset($no_override['add_header all Level'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("level_help");', 'title' => $this->gettext('help')), $help_button); + + if ($this->user_prefs['remove_header all'] != 'Level') { + $enabled = "1"; + $char = $this->user_prefs['add_header all Level']; + $char = substr($char, 7, 1); + } + else { + $enabled = "0"; + $char = "*"; + } + + $field_id = 'rcmfd_spamlevelstars'; + $input_spamreport = new html_checkbox(array('name' => '_spamlevelstars', 'id' => $field_id, 'value' => '1', + 'onchange' => rcmail_output::JS_OBJECT_NAME . '.sauserprefs_toggle_level_char(this)')); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('spamlevelstars')))); + $table->add(null, $input_spamreport->show($enabled)); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'level_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('levelhelp'))); + + $field_id = 'rcmfd_spamlevelchar'; + $input_spamsubject = new html_inputfield(array('name' => '_spamlevelchar', 'id' => $field_id, 'value' => $char, + 'style' => 'width:20px;', 'disabled' => $enabled?0:1)); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('spamlevelchar')))); + $table->add(null, $input_spamsubject->show()); + $table->add('help', ' '); + } + + $out = html::tag('fieldset', null, html::tag('legend', null, rcmail::Q($this->gettext('mainoptions'))) . $data . $table->show()); + break; + + // Test settings + case 'tests': + $data = html::p(null, rcmail::Q($this->gettext('spamtestssexp'))); + + $table = new html_table(array('class' => 'testsprefstable', 'cols' => 3)); + + if (!isset($no_override['use_razor1'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("raz1_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spamuserazor1'; + $input_spamtest = new html_checkbox(array('name' => '_spamuserazor1', 'id' => $field_id, 'value' => '1')); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('userazor1')))); + $table->add(null, $input_spamtest->show($this->user_prefs['use_razor1'])); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'raz1_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('raz1help'))); + } + + if (!isset($no_override['use_razor2'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("raz2_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spamuserazor2'; + $input_spamtest = new html_checkbox(array('name' => '_spamuserazor2', 'id' => $field_id, 'value' => '1')); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('userazor2')))); + $table->add(null, $input_spamtest->show($this->user_prefs['use_razor2'])); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'raz2_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('raz2help'))); + } + + if (!isset($no_override['use_pyzor'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("pyz_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spamusepyzor'; + $input_spamtest = new html_checkbox(array('name' => '_spamusepyzor', 'id' => $field_id, 'value' => '1')); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('usepyzor')))); + $table->add(null, $input_spamtest->show($this->user_prefs['use_pyzor'])); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'pyz_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('pyzhelp'))); + } + + if (!isset($no_override['use_dcc'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("dcc_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spamusedcc'; + $input_spamtest = new html_checkbox(array('name' => '_spamusedcc', 'id' => $field_id, 'value' => '1')); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('usedcc')))); + $table->add(null, $input_spamtest->show($this->user_prefs['use_dcc'])); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'dcc_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('dcchelp'))); + } + + if (!isset($no_override['skip_rbl_checks'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("rbl_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spamskiprblchecks'; + $enabled = $this->user_prefs['skip_rbl_checks'] == "1" ? "0" : "1"; + $input_spamtest = new html_checkbox(array('name' => '_spamskiprblchecks', 'id' => $field_id, 'value' => '1')); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('skiprblchecks')))); + $table->add(null, $input_spamtest->show($enabled)); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'rbl_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('rblhelp'))); + } + + $out = html::tag('fieldset', null, html::tag('legend', null, rcmail::Q($this->gettext('mainoptions'))) . $data . $table->show()); + break; + + // Bayes settings + case 'bayes': + $data = html::p(null, rcmail::Q($this->gettext('bayeshelp'))); + + $table = new html_table(array('class' => 'bayesprefstable', 'cols' => 3)); + + if (!isset($no_override['use_bayes'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("bayes_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spamusebayes'; + $input_spamtest = new html_checkbox(array('name' => '_spamusebayes', 'id' => $field_id, 'value' => '1', + 'onchange' => rcmail_output::JS_OBJECT_NAME . '.sauserprefs_toggle_bayes(this)')); + + if ($rcmail->config->get('sauserprefs_bayes_delete', false)) + $delete_link = " " . html::span(array('id' => 'listcontrols'), $this->api->output->button(array('command' => 'plugin.sauserprefs.purge_bayes', 'type' => 'link', 'label' => 'sauserprefs.purgebayes', 'title' => 'sauserprefs.purgebayesexp'))); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('usebayes')))); + $table->add(null, $input_spamtest->show($this->user_prefs['use_bayes']) . $delete_link); + $table->add('help', ' '); + $table->set_row_attribs(array('id' => 'bayes_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('bayeshelp'))); + } + + if (!isset($no_override['use_bayes_rules'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("bayesrules_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spambayesrules'; + $input_spamtest = new html_checkbox(array('name' => '_spambayesrules', 'id' => $field_id, 'value' => '1', 'disabled' => $this->user_prefs['use_bayes']?0:1)); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('bayesrules')))); + $table->add(null, $input_spamtest->show($this->user_prefs['use_bayes_rules'])); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'bayesrules_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('bayesruleshlp'))); + } + + if (!isset($no_override['bayes_auto_learn'])) { + $help_button = html::img(array('class' => $imgclass, 'src' => $attrib['helpicon'], 'alt' => $this->gettext('sieveruleheaders'), 'border' => 0, 'style' => 'margin-left: 4px;')); + $help_button = html::a(array('name' => '_headerhlp', 'href' => "#", 'onclick' => 'return '. rcmail_output::JS_OBJECT_NAME .'.sauserprefs_help("bayesauto_help");', 'title' => $this->gettext('help')), $help_button); + + $field_id = 'rcmfd_spambayesautolearn'; + $input_spamtest = new html_checkbox(array('name' => '_spambayesautolearn', 'id' => $field_id, 'value' => '1', + 'onchange' => rcmail_output::JS_OBJECT_NAME . '.sauserprefs_toggle_bayes_auto(this)', 'disabled' => $this->user_prefs['use_bayes']?0:1)); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('bayesautolearn')))); + $table->add(null, $input_spamtest->show($this->user_prefs['bayes_auto_learn'])); + $table->add('help', $help_button); + $table->set_row_attribs(array('id' => 'bayesauto_help', 'style' => 'display: none;')); + $table->add(array('colspan' => '3'), rcmail::Q($this->gettext('bayesautohelp'))); + } + + if ($table->size() > 0) + $out = html::tag('fieldset', null, html::tag('legend', null, rcmail::Q($this->gettext('mainoptions'))) . $table->show()); + + $table = new html_table(array('class' => 'bayesprefstable', 'cols' => 2)); + + $data = ""; + if (!isset($no_override['bayes_auto_learn_threshold_nonspam'])) { + $field_id = 'rcmfd_bayesnonspam'; + $input_bayesnthres = new html_select(array('name' => '_bayesnonspam', 'id' => $field_id, 'disabled' => (!$this->user_prefs['bayes_auto_learn'] || !$this->user_prefs['use_bayes'])?1:0)); + $input_bayesnthres->add($this->gettext('defaultscore'), ''); + + $decPlaces = 1; + //if ($rcmail->config->get('sauserprefs_score_inc') - (int)$rcmail->config->get('sauserprefs_score_inc') > 0) + // $decPlaces = strlen($rcmail->config->get('sauserprefs_score_inc') - (int)$rcmail->config->get('sauserprefs_score_inc')) - 2; + + $score_found = false; + for ($i = -1; $i <= 1; $i = $i + 0.1) { + $input_bayesnthres->add(number_format($i, $decPlaces, $locale_info['decimal_point'], ''), number_format($i, $decPlaces, '.', '')); + + if (!$score_found && $this->user_prefs['bayes_auto_learn_threshold_nonspam'] && (float)$this->user_prefs['bayes_auto_learn_threshold_nonspam'] == (float)$i) + $score_found = true; + } + + if (!$score_found && $this->user_prefs['bayes_auto_learn_threshold_nonspam']) + $input_bayesnthres->add(str_replace('%s', $this->user_prefs['bayes_auto_learn_threshold_nonspam'], $this->gettext('otherscore')), (float)$this->user_prefs['bayes_auto_learn_threshold_nonspam']); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('bayesnonspam')))); + $table->add(null, $input_bayesnthres->show(number_format($this->user_prefs['bayes_auto_learn_threshold_nonspam'], $decPlaces, '.', ''))); + $table->add(array('colspan' => '2'), rcmail::Q($this->gettext('bayesnonspamexp'))); + } + + if (!isset($no_override['bayes_auto_learn_threshold_spam'])) { + $field_id = 'rcmfd_bayesspam'; + $input_bayesthres = new html_select(array('name' => '_bayesspam', 'id' => $field_id, 'disabled' => (!$this->user_prefs['bayes_auto_learn'] || !$this->user_prefs['use_bayes'])?1:0)); + $input_bayesthres->add($this->gettext('defaultscore'), ''); + + $decPlaces = 0; + if ($rcmail->config->get('sauserprefs_score_inc') - (int)$rcmail->config->get('sauserprefs_score_inc') > 0) + $decPlaces = strlen($rcmail->config->get('sauserprefs_score_inc') - (int)$rcmail->config->get('sauserprefs_score_inc')) - 2; + + $score_found = false; + for ($i = 1; $i <= 20; $i = $i + $rcmail->config->get('sauserprefs_score_inc')) { + $input_bayesthres->add(number_format($i, $decPlaces, $locale_info['decimal_point'], ''), number_format($i, $decPlaces, '.', '')); + + if (!$score_found && $this->user_prefs['bayes_auto_learn_threshold_spam'] && (float)$this->user_prefs['bayes_auto_learn_threshold_spam'] == (float)$i) + $score_found = true; + } + + if (!$score_found && $this->user_prefs['required_hits']) + $input_bayesthres->add(str_replace('%s', $this->user_prefs['bayes_auto_learn_threshold_spam'], $this->gettext('otherscore')), (float)$this->user_prefs['bayes_auto_learn_threshold_spam']); + + $table->add('title', html::label($field_id, rcmail::Q($this->gettext('bayesspam')))); + $table->add(null, $input_bayesthres->show(number_format($this->user_prefs['bayes_auto_learn_threshold_spam'], $decPlaces, '.', ''))); + $table->add(array('colspan' => '2'), rcmail::Q($this->gettext('bayesspamexp'))); + } + + if ($table->size() > 0) + $out .= html::tag('fieldset', null, html::tag('legend', null, rcmail::Q($this->gettext('bayesautooptions'))) . $table->show()); + + break; + + // Report settings + case 'report': + $data = html::p(null, rcmail::Q($this->gettext('spamreport'))); + + $table = new html_table(array('class' => 'reportprefstable', 'cols' => 2)); + + if (!isset($no_override['report_safe'])) { + $field_id = 'rcmfd_spamreport'; + $input_spamreport0 = new html_radiobutton(array('name' => '_spamreport', 'id' => $field_id.'_0', 'value' => '0')); + $table->add('title', html::label($field_id.'_0', rcmail::Q($this->gettext('spamreport0')))); + $table->add(null, $input_spamreport0->show($this->user_prefs['report_safe'])); + + $input_spamreport1 = new html_radiobutton(array('name' => '_spamreport', 'id' => $field_id.'_1', 'value' => '1')); + $table->add('title', html::label($field_id.'_1', rcmail::Q($this->gettext('spamreport1')))); + $table->add(null, $input_spamreport1->show($this->user_prefs['report_safe'])); + $data .= $input_spamreport1->show($this->user_prefs['report_safe']) ." ". html::label($field_id .'_1', rcmail::Q($this->gettext('spamreport1'))) . "<br />"; + + $input_spamreport2 = new html_radiobutton(array('name' => '_spamreport', 'id' => $field_id.'_2', 'value' => '2')); + $table->add('title', html::label($field_id.'_2', rcmail::Q($this->gettext('spamreport2')))); + $table->add(null, $input_spamreport2->show($this->user_prefs['report_safe'])); + } + + $out = html::tag('fieldset', null, html::tag('legend', null, rcmail::Q($this->gettext('mainoptions'))) . $table->show()); + break; + + // Address settings + case 'addresses': + $data = html::p(null, rcmail::Q($this->gettext('whitelistexp'))); + + if ($rcmail->config->get('sauserprefs_whitelist_sync')) + $data .= rcmail::Q($this->gettext('autowhitelist')) . "<br /><br />"; + + $table = new html_table(array('class' => 'addressprefstable', 'cols' => 4)); + + $field_id = 'rcmfd_spamaddressrule'; + $input_spamaddressrule = new html_select(array('name' => '_spamaddressrule', 'id' => $field_id)); + $input_spamaddressrule->add($this->gettext('whitelist_from'),'whitelist_from'); + $input_spamaddressrule->add($this->gettext('blacklist_from'), 'blacklist_from'); + $input_spamaddressrule->add($this->gettext('whitelist_to'), 'whitelist_to'); + + $field_id = 'rcmfd_spamaddress'; + $input_spamaddress = new html_inputfield(array('name' => '_spamaddress', 'id' => $field_id, 'style' => 'width:200px;')); + + $field_id = 'rcmbtn_add_address'; + $button_addaddress = $this->api->output->button(array('command' => 'plugin.sauserprefs.addressrule_add', 'type' => 'input', 'class' => 'button', 'label' => 'sauserprefs.addrule')); + + $table->add('ruletype', $input_spamaddressrule->show()); + $table->add('address', $input_spamaddress->show()); + $table->add('action', $button_addaddress); + $table->add(null, " "); + + $import = $this->api->output->button(array('command' => 'plugin.sauserprefs.import_whitelist', 'type' => 'link', 'label' => 'import', 'title' => 'sauserprefs.importfromaddressbook')); + $delete_all = $this->api->output->button(array('command' => 'plugin.sauserprefs.whitelist_delete_all', 'type' => 'link', 'label' => 'sauserprefs.deleteall')); + + $table->add(array('colspan' => 4, 'id' => 'listcontrols'), $import ." ". $delete_all); + + $address_table = new html_table(array('id' => 'address-rules-table', 'class' => 'records-table', 'cellspacing' => '0', 'cols' => 3)); + $address_table->add_header('rule', $this->gettext('rule')); + $address_table->add_header('email', $this->gettext('email')); + $address_table->add_header('control', ' '); + + $this->_address_row($address_table, null, null, $attrib); + + if (sizeof($this->user_prefs['addresses']) > 0) + $norules = 'display: none;'; + + $address_table->set_row_attribs(array('style' => $norules)); + $address_table->add(array('colspan' => '3'), rcube_utils::rep_specialchars_output($this->gettext('noaddressrules'))); + + $this->api->output->set_env('address_rule_count', sizeof($this->user_prefs['addresses'])); + foreach ($this->user_prefs['addresses'] as $address) + $this->_address_row($address_table, $address['field'], $address['value'], $attrib); + + $table->add(array('colspan' => 4, 'class' => 'scroller'), html::div(array('id' => 'address-rules-cont'), $address_table->show())); + + if ($table->size()) + $out = html::tag('fieldset', null, html::tag('legend', null, rcmail::Q($this->gettext('mainoptions'))) . $data . $table->show()); + + break; + + default: + $out = ''; + } + + return $out; + } + + private function _address_row($address_table, $field, $value, $attrib) + { + if (!isset($field)) + $address_table->set_row_attribs(array('style' => 'display: none;')); + + $hidden_action = new html_hiddenfield(array('name' => '_address_rule_act[]', 'value' => '')); + $hidden_field = new html_hiddenfield(array('name' => '_address_rule_field[]', 'value' => $field)); + $hidden_text = new html_hiddenfield(array('name' => '_address_rule_value[]', 'value' => $value)); + + switch ($field) + { + case "whitelist_from": + $fieldtxt = rcube_utils::rep_specialchars_output($this->gettext('whitelist_from')); + break; + case "blacklist_from": + $fieldtxt = rcube_utils::rep_specialchars_output($this->gettext('blacklist_from')); + break; + case "whitelist_to": + $fieldtxt = rcube_utils::rep_specialchars_output($this->gettext('whitelist_to')); + break; + } + + $address_table->add(array('class' => $field), $fieldtxt); + $address_table->add(array('class' => 'email'), $value); + $del_button = $this->api->output->button(array('command' => 'plugin.sauserprefs.addressrule_del', 'type' => 'link', 'class' => 'delete', 'label' => 'delete', 'content' => ' ')); + $address_table->add('control', $del_button . $hidden_action->show() . $hidden_field->show() . $hidden_text->show()); + + return $address_table; + } + + static function map_pref_name($pref, $reverse = false) + { + if (!$reverse) { + if (array_key_exists($pref, self::$deprecated_prefs)) + $pref = self::$deprecated_prefs[$pref]; + } + else { + if (($orig_pref = array_search($pref, self::$deprecated_prefs)) != FALSE) + $pref = $orig_pref; + } + + return $pref; + } + + private function _subval_sort($a, $subkey) + { + if (sizeof($a) == 0) + return array(); + + foreach ($a as $k => $v) + $b[$k] = strtolower($v[$subkey]); + + asort($b); + + foreach ($b as $k => $v) + $c[] = $a[$k]; + + return $c; + } + + private function _gen_email_arr($contact) + { + $emails = array(); + + if (!is_array($contact)) + return $emails; + + foreach ($contact as $key => $value) { + if (preg_match('/^email(:(.+))?$/i', $key, $matches)) { + foreach ((array)$value as $subkey => $subval) { + if ($matches[2]) + $emails[$matches[2] . $subkey] = $subval; + else + $emails['email' . $subkey] = $subval; + } + } + } + + return $emails; + } +} + +?>
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/classic/help.gif b/plugins/sauserprefs/skins/classic/help.gif Binary files differnew file mode 100644 index 000000000..ea7bbb363 --- /dev/null +++ b/plugins/sauserprefs/skins/classic/help.gif diff --git a/plugins/sauserprefs/skins/classic/icons.gif b/plugins/sauserprefs/skins/classic/icons.gif Binary files differnew file mode 100644 index 000000000..e52c33e51 --- /dev/null +++ b/plugins/sauserprefs/skins/classic/icons.gif diff --git a/plugins/sauserprefs/skins/classic/icons.png b/plugins/sauserprefs/skins/classic/icons.png Binary files differnew file mode 100644 index 000000000..065d880bd --- /dev/null +++ b/plugins/sauserprefs/skins/classic/icons.png diff --git a/plugins/sauserprefs/skins/classic/ie6hacks.css b/plugins/sauserprefs/skins/classic/ie6hacks.css new file mode 100644 index 000000000..65c3e6af8 --- /dev/null +++ b/plugins/sauserprefs/skins/classic/ie6hacks.css @@ -0,0 +1,9 @@ +/** + * SAUserPrefs plugin styles (IE6 hacks) + */ + +#spam-langs-table td.tick a, +#address-rules-table td.control a +{ + background-image: url(icons.gif); +}
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/classic/iehacks.css b/plugins/sauserprefs/skins/classic/iehacks.css new file mode 100644 index 000000000..0577d936c --- /dev/null +++ b/plugins/sauserprefs/skins/classic/iehacks.css @@ -0,0 +1,9 @@ +/** + * SAUserPrefs plugin styles (IE hacks) + */ + +#address-rules-table, +#spam-langs-table +{ + width: expression('auto'); +}
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/classic/safari.css b/plugins/sauserprefs/skins/classic/safari.css new file mode 100644 index 000000000..0ff418083 --- /dev/null +++ b/plugins/sauserprefs/skins/classic/safari.css @@ -0,0 +1,6 @@ +/** + * SAUserPrefs plugin styles (safari hacks) + */ + +html>body*#address-rules-table[id$="address-rules-table"]:not([class="none"]) { table-layout: auto; } +html>body*#spam-langs-table[id$="spam-langs-table"]:not([class="none"]) { table-layout: auto; }
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/classic/sauserprefs.css b/plugins/sauserprefs/skins/classic/sauserprefs.css new file mode 100644 index 000000000..81ba60250 --- /dev/null +++ b/plugins/sauserprefs/skins/classic/sauserprefs.css @@ -0,0 +1,185 @@ +/** + * SAUserPrefs plugin styles + */ + +#address-rules-cont, +#spam-langs-cont +{ + border: 1px solid #999999; + background-color: #F9F9F9; + height: 200px; + overflow: auto; + width: 510px; +} + +body.address-rules-table, +body.spam-langs-table +{ + margin: 0px; + background-color: #F9F9F9; +} + +#address-rules-table, +#spam-langs-table +{ + width: 100%; + display: table; + table-layout: fixed; +} + +#address-rules-table thead td.rule +{ + width: 180px; +} + +#address-rules-table thead td.control +{ + width: 40px; +} + +#spam-langs-table td.lang, +#address-rules-table td.rule, +#address-rules-table td.email, +#address-rules-table td.email +{ + text-align: left; + vertical-align: middle; +} + +#spam-langs-table td.tick, +#address-rules-table td.control +{ + text-align: right; + vertical-align: middle; +} + +#spam-langs-table td.tick a, +#address-rules-table td.control a +{ + display: block; + float: right; + width: 16px; + height: 16px; + background-image: url(icons.png); +} + +#address-rules-table td.control a.delete +{ + background-position: 0 0; +} + +#spam-langs-table td.tick a.enabled +{ + background-position: 0 -18px; +} + +#spam-langs-table td.tick a.disabled +{ + background-position: 0 -36px; +} + +.whitelist_from, +.whitelist_to +{ + color: #008800; + text-align: left; + vertical-align: middle; + +} + +.blacklist_from +{ + color: #BB0000; + text-align: left; + vertical-align: middle; +} + +#listcontrols +{ + font-size: 11px; + text-align: right; +} + +#listcontrols a, +#listcontrols a:active, +#listcontrols a:visited +{ + color: #CC0000; + font-size: 11px; + text-decoration: none; +} + +#listcontrols a:hover +{ + text-decoration: underline; +} + +table.generalprefstable, +table.headersprefstable, +table.testsprefstable, +table.bayesprefstable, +table.reportprefstable +{ + width: 100%; +} + +table.generalprefstable td.title +{ + width: 115px; +} + +table.headersprefstable td.title +{ + width: 220px; +} + +table.testsprefstable td.title +{ + width: 175px; +} + +table.bayesprefstable td.title +{ + width: 220px; +} + +table.reportprefstable td.title +{ + width: 320px; +} + +table.generalprefstable td.help, +table.langprefstable td.help, +table.headersprefstable td.help, +table.testsprefstable td.help, +table.bayesprefstable td.help, +table.reportprefstable td.help, +table.addressprefstable td.help +{ + text-align: right; +} + +table.addressprefstable td.ruletype +{ + width: 180px; + padding-bottom: 10px; +} + +table.addressprefstable td.address +{ + width: 220px; + padding-bottom: 10px; +} + +table.addressprefstable td.action +{ + width: 100px; + text-align: right; + padding-bottom: 10px; +} + +table.langprefstable td.scroller, +table.addressprefstable td.scroller +{ + padding: 0; +}
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/classic/tabstyles.css b/plugins/sauserprefs/skins/classic/tabstyles.css new file mode 100644 index 000000000..c3cfaa4ac --- /dev/null +++ b/plugins/sauserprefs/skins/classic/tabstyles.css @@ -0,0 +1,3 @@ +/** + * SAUserPrefs plugin styles (tab styles) + */ diff --git a/plugins/sauserprefs/skins/classic/templates/sauserprefs.html b/plugins/sauserprefs/skins/classic/templates/sauserprefs.html new file mode 100644 index 000000000..dae567837 --- /dev/null +++ b/plugins/sauserprefs/skins/classic/templates/sauserprefs.html @@ -0,0 +1,47 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/sauserprefs.css" /> +<roundcube:if condition="browser:ie" /> +<link rel="stylesheet" type="text/css" href="/this/iehacks.css" /> +<roundcube:endif /> +<roundcube:if condition="browser:safari" /> +<link rel="stylesheet" type="text/css" href="/this/safari.css" /> +<roundcube:endif /> +<script type="text/javascript" src="/functions.js"></script> +<script type="text/javascript" src="/splitter.js"></script> + +<style type="text/css"> +#sectionslist { width: <roundcube:exp expression="!empty(cookie:spamprefsviewsplitter) ? cookie:spamprefsviewsplitter-5 : 190" />px; } +#prefs-box { left: <roundcube:exp expression="!empty(cookie:spamprefsviewsplitter) ? cookie:spamprefsviewsplitter+5 : 200" />px; +<roundcube:exp expression="browser:ie ? ('width:expression((parseInt(this.parentNode.offsetWidth)-'.(!empty(cookie:spamprefsviewsplitter) ? cookie:spamprefsviewsplitter+5 : 200).')+\\'px\\');') : ''" /> +} +</style> +</head> +<body> + +<roundcube:include file="/includes/taskbar.html" /> +<roundcube:include file="/includes/header.html" /> +<roundcube:include file="/includes/settingstabs.html" /> + +<div id="mainscreen"> + +<div id="sectionslist"> +<roundcube:object name="sasectionslist" id="sections-table" class="records-table" cellspacing="0" /> +</div> + +<script type="text/javascript"> + var spamprefviewsplit = new rcube_splitter({id:'spamprefsviewsplitter', p1: 'sectionslist', p2: 'prefs-box', orientation: 'v', relative: true, start: 195}); + rcmail.add_onload('spamprefviewsplit.init()'); +</script> + +<div id="prefs-box"> +<roundcube:object name="saprefsframe" id="prefs-frame" width="100%" height="100%" frameborder="0" src="/watermark.html" /> +</div> + +</div> + +</body> +</html>
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/classic/templates/settingsedit.html b/plugins/sauserprefs/skins/classic/templates/settingsedit.html new file mode 100644 index 000000000..73ba59880 --- /dev/null +++ b/plugins/sauserprefs/skins/classic/templates/settingsedit.html @@ -0,0 +1,33 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/sauserprefs.css" /> +<roundcube:if condition="browser:ie" /> +<link rel="stylesheet" type="text/css" href="/this/iehacks.css" /> +<roundcube:endif /> +<roundcube:if condition="browser:safari" /> +<link rel="stylesheet" type="text/css" href="/this/safari.css" /> +<roundcube:endif /> +<!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="/this//ie6hacks.css" /><![endif]--> +<script type="text/javascript" src="/functions.js"></script> +</head> +<body class="iframe"> + +<div id="prefs-title" class="boxtitle"><roundcube:object name="sectionname" /></div> + +<div id="prefs-details" class="boxcontent"> +<roundcube:object name="userprefs" form="form" helpIcon="/this/help.gif" /> +<div id="formfooter"> +<div class="footerleft"> +<roundcube:button command="plugin.sauserprefs.default" type="input" class="button" label="sauserprefs.usedefault" style="margin-right:0.5em" /> +<roundcube:button command="plugin.sauserprefs.save" type="input" class="button mainaction" label="save" /> +</div> +</div> +</div> + +<p> </p> + +</body> +</html>
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/larry/help.png b/plugins/sauserprefs/skins/larry/help.png Binary files differnew file mode 100644 index 000000000..9f7a6ae44 --- /dev/null +++ b/plugins/sauserprefs/skins/larry/help.png diff --git a/plugins/sauserprefs/skins/larry/icons.png b/plugins/sauserprefs/skins/larry/icons.png Binary files differnew file mode 100644 index 000000000..6e070901e --- /dev/null +++ b/plugins/sauserprefs/skins/larry/icons.png diff --git a/plugins/sauserprefs/skins/larry/iehacks.css b/plugins/sauserprefs/skins/larry/iehacks.css new file mode 100644 index 000000000..0577d936c --- /dev/null +++ b/plugins/sauserprefs/skins/larry/iehacks.css @@ -0,0 +1,9 @@ +/** + * SAUserPrefs plugin styles (IE hacks) + */ + +#address-rules-table, +#spam-langs-table +{ + width: expression('auto'); +}
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/larry/listicons.png b/plugins/sauserprefs/skins/larry/listicons.png Binary files differnew file mode 100644 index 000000000..3571ac6c4 --- /dev/null +++ b/plugins/sauserprefs/skins/larry/listicons.png diff --git a/plugins/sauserprefs/skins/larry/safari.css b/plugins/sauserprefs/skins/larry/safari.css new file mode 100644 index 000000000..0ff418083 --- /dev/null +++ b/plugins/sauserprefs/skins/larry/safari.css @@ -0,0 +1,6 @@ +/** + * SAUserPrefs plugin styles (safari hacks) + */ + +html>body*#address-rules-table[id$="address-rules-table"]:not([class="none"]) { table-layout: auto; } +html>body*#spam-langs-table[id$="spam-langs-table"]:not([class="none"]) { table-layout: auto; }
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/larry/sauserprefs.css b/plugins/sauserprefs/skins/larry/sauserprefs.css new file mode 100644 index 000000000..41dfab2e2 --- /dev/null +++ b/plugins/sauserprefs/skins/larry/sauserprefs.css @@ -0,0 +1,253 @@ +/** + * SAUserPrefs plugin styles + */ + +#address-rules-cont, +#spam-langs-cont +{ + height: 200px; + overflow: auto; + width: 100%; +} + +body.address-rules-table, +body.spam-langs-table +{ + margin: 0px; +} + +#address-rules-table, +#spam-langs-table +{ + width: 100%; + display: table; + table-layout: fixed; + border: 0; +} + +#address-rules-table thead td, +#spam-langs-table thead td +{ + background-color: #CCC; + font-weight: bold; + color: #000; +} + +#address-rules-table thead td.rule +{ + width: 180px; +} + +#address-rules-table thead td.control +{ + width: 40px; +} + +#spam-langs-table td.lang, +#address-rules-table td.rule, +#address-rules-table td.email, +#address-rules-table td.email +{ + text-align: left; + vertical-align: middle; + border-left: 0; + border-right: 0; +} + +#spam-langs-table td.tick, +#address-rules-table td.control +{ + text-align: right; + vertical-align: middle; + border-left: 0; + border-right: 0; +} + +#spam-langs-table td.tick a, +#address-rules-table td.control a +{ + display: block; + float: right; + width: 16px; + height: 16px; + background-image: url(icons.png); + cursor: pointer; +} + +#address-rules-table td.control a.delete +{ + background-position: 0 -1px; +} + +#spam-langs-table td.tick a.enabled +{ + background-position: 0 -18px; +} + +#spam-langs-table td.tick a.disabled +{ + background-position: 0 -36px; +} + +.whitelist_from, +.whitelist_to +{ + color: #008800; + text-align: left; + vertical-align: middle; +} + +.blacklist_from +{ + color: #BB0000; + text-align: left; + vertical-align: middle; +} + +#listcontrols +{ + font-size: 11px; + text-align: right; +} + +#listcontrols a, +#listcontrols a:active, +#listcontrols a:visited +{ + color: #2D5986; + font-size: 11px; + text-decoration: none; +} + +#listcontrols a:hover +{ + text-decoration: underline; +} + +table.generalprefstable, +table.langprefstable, +table.headersprefstable, +table.testsprefstable, +table.bayesprefstable, +table.reportprefstable, +table.addressprefstable +{ + width: 100%; + border-spacing: 0; + border-collapse: collapse; +} + +table.generalprefstable td, +table.langprefstable td, +table.headersprefstable td, +table.testsprefstable td, +table.bayesprefstable td, +table.reportprefstable td, +table.addressprefstable td +{ + width: 80%; + padding: 4px 10px; + background: #eee; + border-bottom: 2px solid #fff; +} + +table.addressprefstable td +{ + width: auto; +} + +table.generalprefstable td.title, +table.langprefstable td.title, +table.headersprefstable td.title, +table.testsprefstable td.title, +table.bayesprefstable td.title, +table.reportprefstable td.title, +table.addressprefstable td.title +{ + width: 20%; + color: #333; + padding-right: 20px; + white-space: nowrap; +} + +table.addressprefstable td.ruletype +{ + width: 180px; +} + +table.addressprefstable td.address +{ + width: 220px; +} + +table.addressprefstable td.action +{ + width: 100px; + text-align: right; +} + +table.langprefstable td.scroller, +table.addressprefstable td.scroller +{ + padding: 0; +} + +#sections-table #rcmrowtests td.section +{ + background-image: url(listicons.png); + background-position: 5px -199px; +} + +#sections-table #rcmrowtests.selected td.section +{ + background-image: url(listicons.png); + background-position: 5px -225px; +} + +#sections-table #rcmrowbayes td.section +{ + background-image: url(listicons.png); + background-position: 5px -248px; +} + +#sections-table #rcmrowbayes.selected td.section +{ + background-image: url(listicons.png); + background-position: 5px -270px; +} + +#sections-table #rcmrowheaders td.section +{ + background-image: url(listicons.png); + background-position: 5px -99px; +} + +#sections-table #rcmrowheaders.selected td.section +{ + background-image: url(listicons.png); + background-position: 5px -124px; +} + +#sections-table #rcmrowreport td.section +{ + background-image: url(listicons.png); + background-position: 5px -150px; +} + +#sections-table #rcmrowreport.selected td.section +{ + background-image: url(listicons.png); + background-position: 5px -174px; +} + +#sections-table #rcmrowaddresses td.section +{ + background-image: url(listicons.png); + background-position: 4px -50px; +} + +#sections-table #rcmrowaddresses.selected td.section +{ + background-image: url(listicons.png); + background-position: 4px -74px; +}
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/larry/tabstyles.css b/plugins/sauserprefs/skins/larry/tabstyles.css new file mode 100644 index 000000000..c22f8199a --- /dev/null +++ b/plugins/sauserprefs/skins/larry/tabstyles.css @@ -0,0 +1,15 @@ +/** + * SAUserPrefs plugin styles (tab styles) + */ + +#settings-sections #settingstabpluginsauserprefs a +{ + background-image: url(listicons.png); + background-position: 3px -3px; +} + +#settings-sections #settingstabpluginsauserprefs.selected a +{ + background-image: url(listicons.png); + background-position: 3px -27px; +}
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/larry/templates/sauserprefs.html b/plugins/sauserprefs/skins/larry/templates/sauserprefs.html new file mode 100644 index 000000000..6f734f092 --- /dev/null +++ b/plugins/sauserprefs/skins/larry/templates/sauserprefs.html @@ -0,0 +1,54 @@ +<roundcube:object name="doctype" value="html5" /> +<html> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/sauserprefs.css" /> +<roundcube:if condition="browser:ie" /> +<link rel="stylesheet" type="text/css" href="/this/iehacks.css" /> +<roundcube:endif /> +<roundcube:if condition="browser:safari" /> +<link rel="stylesheet" type="text/css" href="/this/safari.css" /> +<roundcube:endif /> +</head> +<body class="noscroll"> + +<roundcube:include file="/includes/header.html" /> + +<div id="mainscreen" class="offset"> + +<roundcube:include file="/includes/settingstabs.html" /> + +<div id="settings-right"> + +<div id="sectionslist" class="uibox listbox"> +<div class="scroller"> + <roundcube:object name="sasectionslist" id="sections-table" class="listing" /> +</div> +</div> + +<div id="preferences-box" class="uibox contentbox"> +<div class="iframebox"> + <roundcube:object name="saprefsframe" id="preferences-frame" style="width:100%; height:100%" frameborder="0" src="/watermark.html" /> +</div> +<roundcube:object name="message" id="message" class="statusbar" /> +</div> + +</div> + +</div> + +<roundcube:include file="/includes/footer.html" /> + +<script type="text/javascript"> +/* <![CDATA[ */ + +$(document).ready(function(){ + new rcube_splitter({id:'sauserprefssplitter', p1: '#sectionslist', p2: '#preferences-box', orientation: 'v', relative: true, start: 240}).init(); +}); + +/* ]]> */ +</script> + +</body> +</html>
\ No newline at end of file diff --git a/plugins/sauserprefs/skins/larry/templates/settingsedit.html b/plugins/sauserprefs/skins/larry/templates/settingsedit.html new file mode 100644 index 000000000..302288027 --- /dev/null +++ b/plugins/sauserprefs/skins/larry/templates/settingsedit.html @@ -0,0 +1,30 @@ +<roundcube:object name="doctype" value="html5" /> +<html> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/sauserprefs.css" /> +<roundcube:if condition="browser:ie" /> +<link rel="stylesheet" type="text/css" href="/this/iehacks.css" /> +<roundcube:endif /> +<roundcube:if condition="browser:safari" /> +<link rel="stylesheet" type="text/css" href="/this/safari.css" /> +<roundcube:endif /> +</head> +<body class="iframe"> + +<h1 class="boxtitle"><roundcube:object name="sectionname" /></h1> + +<div id="preferences-details" class="boxcontent"> +<roundcube:object name="userprefs" form="form" class="propform" helpIcon="/this/help.png" /> +</div> + +<div class="footerleft formbuttons"> +<roundcube:button command="plugin.sauserprefs.save" type="input" class="button mainaction" label="save" /> +<roundcube:button command="plugin.sauserprefs.default" type="input" class="button" label="sauserprefs.usedefault" style="margin-right:0.5em" /> +</div> + +<roundcube:include file="/includes/footer.html" /> + +</body> +</html>
\ No newline at end of file |