|
|
|
| решил побаловаться и вот добаловался, что пришлось лезть за помощью:(
делал скрипт транслитирации. зделал! думаю: "чего то не хватает?! А если надо транслитировать (тьфу!) обратно?" и начал делать...но пока ничего хорошего не получилось. Поэтому и прошу помощи.
<?
$text = "Этот текст написан по-русски и еще писать. А ты куда идешь?";
$dlina = strlen($text);
echo "$text<br>";
$r_trans = array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м",
"н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","э",
"ю","я","ъ","ы","ь");
$e_trans = array("a","b","v","g","d","e","e","j","z","i","i","k","l","m",
"n","o","p","r","s","t","u","f","h","c","4","sh","s4",
"e","yu","ya","'","i","'");
for ($i=0;$i<$dlina;$i++)
{
$text = str_replace($r_trans, $e_trans, $text);
}
echo $text."<br>";
$dlina = strlen($text);
for ($i=0;$i<$dlina;$i++)
{
$text = str_replace($e_trans, $r_trans, $text);
}
echo $text."<br>";
for ($i=0;$i<$dlina;$i++)
{
if ($text[$i]== "ч" && $text[$i-1]== "с")
{
$text[$i-1]= "щ";
$text[$i]= "";
}
if ($text[$i]== "х" && $text[$i-1]== "с")
{
$text[$i-1]= "ш";
$text[$i]= "";
}
}
echo $text."<br>";
?>
|
то что на экране
Этот текст написан по-русски и еще писать. А ты куда идешь? //изначально
Эtot tekst napisan po-russki i es4e pisat'. А ti kuda idesh'? // транслит
Этот текст написан по-русски и есче писатъ. А ти куда идесхъ? //обратный транслит
Этот текст написан по-русски и еще писатъ. А ти куда идешъ? //немного исправленный транслит
|
"сложные" места выделил черным
я понимаю, что можно выбрать другие символы...но надо с этими | |
|
|
|
|
|
|
|
для: P@Sol
(18.08.2005 в 15:59)
| | Без словаря или наборов правил будет практически невозможно это реализовать. Лучше всего, чтобы одной русской букве соответствовала одна латинская, а символ, скажем, "ч" заменялся на "4", символ "ш" на "6", "ж" на "j" и т.д... ИМХО... Но опять же, сделать так, чтобы комп правильно это переводил - очень затруднительно. На своем опыте знаю. | |
|
|
|
|
|
|
|
для: JC_Piligrim
(18.08.2005 в 16:13)
| | есть такая программ punto switcher, так у нее теже проблемы что и у меня...
Без словаря или наборов правил будет практически невозможно это реализовать.
будем писать:) | |
|
|
|
|
|
|
|
для: P@Sol
(18.08.2005 в 15:59)
| | а как можно выдрать из предложения слово? | |
|
|
|
|
|
|
|
для: P@Sol
(18.08.2005 в 16:22)
| | Т.е. проверить есть ли слово или нет или разбить весь текст на слова или вырезать одно какое то конкретное слово? | |
|
|
|
|
|
|
|
для: Евгений Петров
(18.08.2005 в 16:26)
| | я хотел так: находим "ъ", и надо выдрать слово в котором он содержится...т.е. допустим "ты съешь яблоко"...находим "ъ" и берем слово "съешь" и проверяем есть ли тыкое слово в словаре...
но это слишком для моего раздолбайства:) вообщем наверно все останется как есть....ведь понятно, что имелось ввиду (т.е. основную мысль поймать можно)?
(и в конце концов - это же было баловство, а не целый проект) | |
|
|
|
|
|
|
|
для: P@Sol
(18.08.2005 в 15:59)
| | Следует сначала заменить двубуквенные значения, а потом однобуквенные, т.е. расшифровывать в два этапа. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2005 в 21:40)
| | спаисбо...хорошая идея....а как сделать с "ь" и "ъ" и с "е" и "э"? я ставлю везде ъ и делаю проверку..если знак последний то исправляю на ь...а с "э" и "е" пока не знаю | |
|
|
|
|
|
|
|
для: P@Sol
(18.08.2005 в 15:59)
| | можете потестировать то что у меня получилось? | |
|
|
|
|
|
|
|
для: P@Sol
(19.08.2005 в 12:52)
| | http://www.kardi.ru/test2/transliter/index.php - for test
Транслитерация с кирилических букв на латинские и обратно. Возможен выбор из трех правил: Мой, ГОСТ 16876-7 и Traveller's Yellow Pages Transliteration + ISO 9 - 1995 (для красоты пришлись скристить эти два правила).
В следующей версии:
1. автоматическое распознавание направления перевода
2. обработка руско-английских текстов, например: "Этот текст написан на <JavaScript>"
3. работа на ошибками;) | |
|
|
|
|