[DLEtoLS] Преобразование юзернеймов (имен пользователей)

Как известно, в LiveStreet имена пользователей могут содержать только латиницу и символ тире (-), а в DataLife Engine — кроме этого еще и кириллистические символы.

Отсюда вопрос: предложите карту преобразования, правила транслитерации то бишь :-)
Спасибо за помощь!

PS: Работа над конвертером идет полным ходом.

9 комментариев

avatar
Не понял юмора. Есть ник (логин), но есть и имя. Ник/логин — латиница, имя — кирилица. К чему огород городить? Если чел хочет, он в профайле может указать имя (хоть на кирилице, хоть умляутами). В чем проблема?
avatar
логин в DLE может содержать не только латиницу, вопрос в конвертации юзеров в ЛС
avatar
Видел как-то официальную таблицу преобразования, которая используется для написания имен в загранпаспортах. Поискать надо
avatar
только они транслитерируют на французский манер там.
avatar
Это раньше так было, сейчас на английский манер идет транслитерация.
avatar
там еще как то надо будет конфликты регулировать…
avatar
Кусок кода функции, которая транслитирует заголовки в ссылки в MaxSite CMS.
// таблица замены
$repl = array(
"А"=>"a", "Б"=>"b",  "В"=>"v",  "Г"=>"g",   "Д"=>"d",
"Е"=>"e", "Ё"=>"jo", "Ж"=>"zh",
"З"=>"z", "И"=>"i",  "Й"=>"j",  "К"=>"k",   "Л"=>"l",
"М"=>"m", "Н"=>"n",  "О"=>"o",  "П"=>"p",   "Р"=>"r",
"С"=>"s", "Т"=>"t",  "У"=>"u",  "Ф"=>"f",   "Х"=>"h",
"Ц"=>"c", "Ч"=>"ch", "Ш"=>"sh", "Щ"=>"shh", "Ъ"=>"",
"Ы"=>"y", "Ь"=>"",   "Э"=>"e",  "Ю"=>"ju", "Я"=>"ja",

"а"=>"a", "б"=>"b",  "в"=>"v",  "г"=>"g",   "д"=>"d",
"е"=>"e", "ё"=>"jo", "ж"=>"zh",
"з"=>"z", "и"=>"i",  "й"=>"j",  "к"=>"k",   "л"=>"l",
"м"=>"m", "н"=>"n",  "о"=>"o",  "п"=>"p",   "р"=>"r",
"с"=>"s", "т"=>"t",  "у"=>"u",  "ф"=>"f",   "х"=>"h",
"ц"=>"c", "ч"=>"ch", "ш"=>"sh", "щ"=>"shh", "ъ"=>"",
"ы"=>"y", "ь"=>"",   "э"=>"e",  "ю"=>"ju",  "я"=>"ja",

# украина
"Є" => "ye", "є" => "ye", "І" => "i", "і" => "i",
"Ї" => "yi", "ї" => "yi", "Ґ" => "g", "ґ" => "g",

"«"=>"", "»"=>"", "—"=>"-", "`"=>"", " "=>"-",
"["=>"", "]"=>"", "{"=>"", "}"=>"", "<"=>"", ">"=>"",

"?"=>"", ","=>"", "*"=>"", "%"=>"", "$"=>"",

"@"=>"", "!"=>"", ";"=>"", ":"=>"", "^"=>"", "\""=>"",
"&"=>"", "="=>"", "№"=>"", "\\"=>"", "/"=>"", "#"=>"",
"("=>"", ")"=>"", "~"=>"", "|"=>"", "+"=>"", "”"=>"", "“"=>"",
"'"=>"",

);

$slug = strtolower(strtr(trim($slug), $repl));

# разрешим расширение .html
$slug = str_replace('.htm', '@HTM@', $slug);
$slug = str_replace('.', '', $slug);
$slug = str_replace('@HTM@', '.htm', $slug);

$slug = str_replace('---', '-', $slug);
$slug = str_replace('--', '-', $slug);

$slug = str_replace('-', ' ', $slug);
$slug = str_replace(' ', '-', trim($slug));

Идёт транслитерация, после чего пробелы превращаются в дефисы, дефисы подряд — в один дефис и т.д… Знаки препинания не разрешены, но в качестве исключения разрешена точка для расширения .htm(l)
avatar
Кстати это тема. Совершенно неправильно с некоторых точек зрения что в URL присутствует кириллица. Яндекс, например, иногда по этой причине творит с такими страницами фигню.

Вот бы конвертор, который мог бы в принципе все ссылки приводить в божеский (латинообразный) вид, как плагин rus-to-lat для WordPress, было бы вообще супер.
avatar
C юзерами возникла маленькая проблема — возможность преобразования русских имен к одинакоовму латинскому )
обошел по-костыльному: maxim, maxim1, ..., maximN :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.