![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 31.01.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chciałem zainstalować sobie skrypt phpspell. Skrypt jest już na serwerze, słownik podłączony. Problem jest tylko ze zmuszeniem go do pracy z polskimi czcionkami... Zdaje się, że wystarczy tylko edytować jeden plik odpowiedzialny za dany język. Dla przykładu podam angielski i rosyjski: Angielski: Kod <?php // -------------------------------------------------------------------- // phpSpell Language Template // // This is (c)Copyright 2002, 2003, Team phpSpell. // -------------------------------------------------------------------- // -------------------------- // Table Name // -------------------------- $DB_TableName=$table_prefix."spelling_words"; // Language Text $Language_Text = array('Scanned %d words. Found %d words to be corrected.'); $Language_Javascript = array('Checking Document...','No misspellings found','OK','Cancel','Spell Check Completed','Correct','All','Ignore','Learn','Suggest','Definition','Thesaurus','Word correction','No Suggestions'); // Prefix Database name for MSSQL tables // if ($dbms == "mssql") { // $DB_TableName = $dbname.".".$DB_TableName; // } // --------------------------------------- // PSPELL Support - Use English Dictionary // --------------------------------------- $Spell_Config["PSPELL_LANGUAGE"] = "en"; // -------------------------------------------------------------------- // Example translation table: // $Translation_Table = array("Ŕ", "Ć", "Ç"); // $Replacement_Table = array("a", "an", "sth"); // $Language_Translation_Character_List = "ŔĆÇ"; // -------------------------------------------------------------------- // for every "Ŕ" it finds in a word it will replace it with a "a" // for every "Ç" it finds it will replace it with a "sth" // for every "Ć" it finds it will replace it with a "an" // -------------------------------------------------------------------- // Put the character(s) to be translated into the Translation_Table // Put the replacement character(s) into the replacement table // -------------------------------------------------------------------- // The replacement string should be equivelent to the ENGLISH PHONETIC // sound. So if you were to take a word with "Ŕ" in it; how would you // phonetically spell the word in english. If the "Ŕ" sounds like a "A" // in english then "A" would be the replacement character. // If it sounds like "th" then you would use "th" as the characters. // always replace Larger groups first. (i.e. if "ńń" sounds differently // than "ń" then in the translation table you would have the "ńń" listed // before the "ń". So that way when it would replaced the "ńń" before it // replaced it twice with "ń". // -------------------------------------------------------------------- // Any letters you do not translate will be IGNORED for // when it attempts to find spelling matches!!! // -------------------------------------------------------------------- $Translation_Table = array(); $Replacement_Table = array(); // -------------------------------------------------------------------- // Put the list of valid characters in your language in this list // -------------------------------------------------------------------- $Language_Character_List = "abcdefghijklmnopqrstuvwxyz'"; $Language_Common_Words = ",the,is,was,be,are,were,been,being,am,of,and,a,an,in,inside,to,have,has,had, having,he,him,his,it,its,i,me,my,to,they,their,not,no,for,you,your,she,her,with,o n,that,these,this,those,do,did,does,done,doing,we,us,our,by,at,but,from,as,which, or,will,said,say,says,saying,would,what,there,if,can,who,whose,so,go,gone,went,go es,more,other,another,one,see,saw,seen,seeing,know,knew,known,knows,knowing,there ,"; // -------------------------------------------------------------------- // Translation function // -------------------------------------------------------------------- function Translate_Word($Word) { return ($Word); } // -------------------------------------------------------------------- // Phonetic work function // -------------------------------------------------------------------- function Word_Sound_Function($Word) { return (metaphone($Word)); } function Language_Decode(&$Data) { // MS Internet Explorer Hack -- IE sends utf8-unicode for upper (ascii 128+) characters if (strpos(@$_SERVER['HTTP_USER_AGENT'], 'MSIE') > 0 || strpos(@$_SERVER['ALL_HTTP'], 'MSIE') > 0) { if (function_exists('utf8_decode')) $Data = utf8_decode($Data); } return ($Data); } function Language_Encode(&$Data) { return ($Data); } function Language_Lower(&$Data) { return(strtolower($Data)); } function Language_Upper(&$Data) { return(strtoupper($Data)); } ?> Rosyjski: Kod <?php // -------------------------------------------------------------------- // phpSpell Language Template // // This is (c)Copyright 2002, 2003 Team phpSpell. // -------------------------------------------------------------------- // -------------------------- // Table Name // -------------------------- $DB_TableName="russian_spelling_words"; $Meta_Language = "windows-1251"; // Language Text (Recommend that they are converted to HTML entities - that way they should display in all browsers properly) $Language_Text = array('Scanned %d words. Found %d words to be corrected.'); $Language_Javascript = array('Проверка текста', 'Нет ошибок', 'OK', 'Отменить', 'Нет предложени', 'Исправить', 'Все', 'Пропустить', 'Learn','Suggest','Definition','Thesaurus', 'Правка слова', 'No Suggestions'); // --------------------------------------- // PSPELL Support - Use English Dictionary // --------------------------------------- $Spell_Config["PSPELL_LANGUAGE"] = "ru"; // -------------------------------------------------------------------- // Example translation table: // $Translation_Table = array("Ŕ", "Ć", "Ç"); // $Replacement_Table = array("a", "an", "sth"); // $Language_Translation_Character_List = "ŔĆÇ"; // -------------------------------------------------------------------- // for every "Ŕ" it finds in a word it will replace it with a "a" // for every "Ç" it finds it will replace it with a "sth" // for every "Ć" it finds it will replace it with a "Ć" // -------------------------------------------------------------------- // Put the character(s) to be translated into the Translation_Table // Put the replacement character(s) into the replacement table // -------------------------------------------------------------------- // The replacement string should be equivelent to the ENGLISH PHONETIC // sound. So if you were to take a word with "Ŕ" in it; how would you // phonetically spell the word in english. If the "Ŕ" sounds like a "A" // in english then "A" would be the replacement character. // If it sounds like "th" then you would use "th" as the characters. // always replace Larger groups first. (i.e. if "ńń" sounds differently // than "ń" then in the translation table you would have the "ńń" listed // before the "ń". So that way when it would replaced the "ńń" before it // replaced it twice with "ń". // -------------------------------------------------------------------- // Any letters you do not translate will be IGNORED for // when it attempts to find spelling matches!!! // -------------------------------------------------------------------- $Translation_Table = array("ŕ", "á", "â", "ă", "ä", "ĺ", "¸", "ć", "ç", "č", "é", "ę", "ë", "ě", "í", "î", "ď", "đ", "ń", "ň", "ó", "ô", "ő", "ö", "÷", "ř", "ů", "ű", "ý", "ţ", "˙", "ü"); $Replacement_Table = array("a", "b", "v", "g", "d", "e", "o", "j", "z", "i", "y", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", "sh", "shch", "i", "e", "u", "a", ""); $Language_Translation_Character_List = "ŕáâăäĺ¸ćçčéęëěíîďđńňóôőö÷řůűýţ˙"; // -------------------------------------------------------------------- // Put the list of valid characters in your language in this list // -------------------------------------------------------------------- $Language_Character_List = "ŕáâăäĺ¸ćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"; // -------------------------------------------------------------------- // Put the list of most common words in this list ",word,word,word," // -------------------------------------------------------------------- $Language_Common_Words = ",ŕ,áĺç,áîëĺĺ,áű,áűë,áűëŕ,áűëč,áűëî,áűňü,â,âŕě,âŕń,âĺńü,âî,âîň,âńĺ,âńĺăî,âńĺő ,âű,ăäĺ,äŕ,äŕćĺ,äë˙,äî,ĺăî,ĺĺ,ĺńëč,ĺńňü,ĺůĺ,ćĺ,çŕ,çäĺńü,č,čç,čëč,čě,čő,ę,ęŕę,ęî,ę îăäŕ,ęňî,ëč,ëčáî,ěíĺ,ěîćĺň,ěű,íŕ,íŕäî,íŕř,íĺ,íĺăî,íĺĺ,íĺň,íč,íčő,íî,íó,î,îá,îäíŕę î,îí,îíŕ,îíč,îíî,îň,î÷ĺíü,ďî,ďîä,ďđč,ń,ńî,ňŕę,ňŕęćĺ,ňŕęîé,ňŕě,ňĺ,ňĺě,ňî,ňîăî,ňîćĺ ,ňîé,ňîëüęî,ňîě,ňű,ó,óćĺ,őîň˙,÷ĺăî,÷ĺé,÷ĺě,÷ňî,÷ňîáű,÷üĺ,÷ü˙,ýňŕ,ýňč,ýňî,˙,ä,ĺ,¸, ć,ç,é,ë,ě,í,đ,ň,ô,ő,ö,÷,ř,ů,ű,ý,ţ,"; // -------------------------------------------------------------------- // Translation function // -------------------------------------------------------------------- function Translate_Word($Word) { global $Translation_Table, $Replacement_Table; $New_Word = str_replace($Translation_Table, $Replacement_Table, $Word); // echo "New: $New_Word<br>"; return ($New_Word); } // -------------------------------------------------------------------- // Phonetic work function // -------------------------------------------------------------------- function Word_Sound_Function($Word) { return (metaphone($Word)); } // Based off of the code by bn2@ukr.net function Language_Decode($Data) { global $Encode_Type; $Output=''; $FirstByte=''; $MultiByte=false; $Counter = strlen($Data); $Pos1 = strpos($Data, '
'); $Pos2 = strpos($Data, ''); if ($Pos1 !== false || $Pos2 !== false) { if ($Pos1 === false) $Pos1 = $Pos2; if ($Data[$Pos1+6] == ';') { $Encode_Type = 2; if (version_compare("4.3.2", phpversion(), "<=")) { $Output = html_entity_decode($Data, ENT_NOQUOTES, "cp1251"); } else { echo "<!-- Second -->"; // $Output = myhtml_entity_decode($Data); } } } if ($Encode_Type == 0) { for ($i=0;$i<$Counter;$i++) { $Code = ord($Data[$i]); if ($Code <= 127) $Output .= $Data[$i]; else { if ($MultiByte) { $Conv_2=($FirstByte&3)*64+($Code&63); $Conv_1=($FirstByte>>2)&5; $Converted=$Conv_1*256+$Conv_2; if ($Converted==1025) $NewCharacter=168; else if ($Converted==1105) $NewCharacter=184; else $NewCharacter=$Converted-848; $Output.=chr($NewCharacter); $MultiByte=false; } else if (($Code>>5)==6) { $Encode_Type = 1; $FirstByte=$Code; $MultiByte=true; } else $Output .= $Data[$i]; } } } return $Output; } function Language_Encode($Data) { global $Encode_Type; if ($Encode_Type == 0) return ($Data); $Output = ''; if ($Encode_Type == 3) { $Count = strlen($Data); for ($i=0;$i<$Count;$i++) { $Byte = ord($Data[$i]); if ($Byte <= 127) $Output .= $Data[$i]; else if ($Byte >= 192 && $Byte <= 239) $Output .= chr(208).chr($Byte-48); else if ($Byte >= 240 && $Byte <= 255) $Output .= chr(209).chr($Byte-112); else if ($Byte == 184) $Output .= chr(209).chr(209); else if ($Byte == 168) $Output .= chr(208).chr(129); } } if ($Encode_Type == 2 || $Encode_Type == 1) { // || $Encode_Type == 1) { if (version_compare("4.3.2", phpversion(), "<=")) { $Output = htmlentities($Data, ENT_NOQUOTES, "cp1251"); } else { $Output = $Data; // $Output = myhtml_entity_encode($Data); } } return ($Output); } function Language_Upper(&$Data) { $New_Data = strtoupper($Data); return ($New_Data); } function Language_Lower(&$Data) { // Translate $New_Data = strtr($Data, '×ߨ','÷˙¸'); $New_Data = strtolower($New_Data); return ($New_Data); } ?> ten plik może być źle wyświetlany ze względu na inne kodowanie Czy mógłby mi ktoś podpowiedzieć jak powinien wyglądać taki plik dla polskiego słownika? -------------------- Warsztat: Apache 1.3.36 | MySQL 4.1.19 | php 5.1.4 | OS Linux SUSE 10.3 x86_64 | Kernel 2.6.22.12-0.1 | Opera 9.5 | Kate
Na warsztacie: Ekartki |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 10.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Też chciałbym polski słownik do spell-a
Jeśli ktoś ma - bardzo będę wdzięczny... pozdrawiam |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 31.01.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie chodzi o słownik, bo ten mam (jeżli dalej szukasz to mogę Ci dać). Mi chodzi tylko o modyfikację tego skryptu odpowiedzialnego za wersję językową tak, żeby współpracował z polską wersją
Ten post edytował son 20.08.2005, 16:44:05 -------------------- Warsztat: Apache 1.3.36 | MySQL 4.1.19 | php 5.1.4 | OS Linux SUSE 10.3 x86_64 | Kernel 2.6.22.12-0.1 | Opera 9.5 | Kate
Na warsztacie: Ekartki |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Pozamieniaj znaki w tablicach i w stringach na odpowiednie i będzie dobrze.... przecież opisy do zmiennych(tablic) są po angielsku... może wystarczy przysiąść do słownika?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 31.01.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że pozamieniałem te co trzeba, niestety skrypt dalej 0ma poważne problemy ze słowami zawierącymi polskie znaki (np. rozdziela je) być może nie zrobiłem wszystkiego co trzeba dlatego proszę o pomoc
-------------------- Warsztat: Apache 1.3.36 | MySQL 4.1.19 | php 5.1.4 | OS Linux SUSE 10.3 x86_64 | Kernel 2.6.22.12-0.1 | Opera 9.5 | Kate
Na warsztacie: Ekartki |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 24.10.2004 Skąd: TG Ostrzeżenie: (0%) ![]() ![]() |
w nowej wersji piszą że już wspiera polską wersję ale jakoś jednak nie działa
![]() wciąż przerywa kolorowanie wyrazów na czerwono w przypadku gdy są polskie znaki. Czy ktoś wie jak sobie z tym poradzić? oryginalny plik spell_Polish.php
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 02:05 |