Script per trasformare i testi russi nella relativa pronuncia in caratteri latini

posted by {27/06/2007 05:06:00}
in {rambler, russia, SEO, yandex}

In quest'ultimo periodo sto cominciando ad interessarmi ai motori di ricerca russi e quindi alla struttura di un sito russo.

E' quindi nata l'esigenza di poter creare degli url statici basandomi sui titoli delle pagine. Il problema in questo caso sta nell'impossibilità in molti browsers di visualizzare correttamente i caratteri non latini nella barra degli indirizzi (provate a navigare su ru.wikipedia.org con firefox e capirete il problema).

Per questo ho creato questo piccolo script che trasforma un testo da caratteri russi nella relativa pronuncia in caratteri latini:


$enlow = array("a", "a", "b", "b", "v", "v", "g", "g", "d", "d", "je", "je", "jo", "jo", "zh", "zh", "z", "z", "i", "i", "j", "j", "k", "k", "l", "l", "m", "m", "n", "n", "o", "o", "p", "p", "r", "r", "s", "s", "t", "t", "u", "u", "f", "f", "h", "h", "ts", "ts", "ch", "ch", "sh", "sh", "shch", "shch", "", "", "y", "y", "", "", "e", "e", "ju", "ju", "ja", "ja");
$ru = array("А", "а", "Б", "б", "В", "в", "Г", "г", "Д", "д", "Е", "е", "Ё", "ё", "Ж", "ж", "З", "з", "И", "и", "Й", "й", "К", "к", "Л", "л", "М", "м", "Н", "н", "О", "о", "П", "п", "Р", "р", "С", "с", "Т", "т", "У", "у", "Ф", "ф", "Х", "х", "Ц", "ц", "Ч", "ч", "Ш", "ш", "Щ", "щ", "Ъ", "ъ", "Ы", "ы", "Ь", "ь", "Э", "э", "Ю", "ю", "Я", "я");
$uni = array("А" => "А","а" => "а","Б" => "Б","б" => "б","В" => "В","в" => "в","Г" => "Г","г" => "г","Д" => "Д","д" => "д","Е" => "Е","е" => "е","Ж" => "Ж","ж" => "ж","З" => "З","з" => "з","И" => "И","и" => "и","Й" => "Й","й" => "й","К" => "К","к" => "к","Л" => "Л","л" => "л","М" => "М","м" => "м","Н" => "Н","н" => "н","О" => "О","о" => "о","П" => "П","п" => "п","Р" => "Р","р" => "р","С" => "С","с" => "с","Т" => "Т","т" => "т","У" => "У","у" => "у","Ф" => "Ф","ф" => "ф","Х" => "Х","х" => "х","Ц" => "Ц","ц" => "ц","Ч" => "Ч","ч" => "ч","Ш" => "Ш","ш" => "ш","Щ" => "Щ","щ" => "щ","Ъ" => "Ъ","ъ" => "ъ","Ы" => "Ы","ы" => "ы","Ь" => "Ь","ь" => "ь","Э" => "Э","э" => "э","Ю" => "Ю","ю" => "ю","Я" => "Я","я" => "я");
$str_url = stripslashes(str_replace($ru, $enlow, strtr($str_url, $uni)));
?>

Potete modificarlo a piacere, trasformarlo in una funzione, in una classe, in quello che volete :D io sono troppo pigro per farlo!