Нормальная транслитерация модулем Transliteration
Прислано: Cynicus
пт, 09/01/2009 - 16:44
Небольшой фикс для модуля Transliteration
По умолчанию он некоторые буквы преобразует странно, например, "е" будет "ie", что делает текст не очень пригодным для чтения. Привел его в более нормальную форму, по большей части согласуясь с таблицей на сайте http://www.transliteration.ru/
Исключений сделал несколько:
Буква "ц" там идет как "c", заменил на более привычное сочетание "ts";
Буквы "ъ" и "ь" сделал пустыми, поскольку мне модуль требуется для генерации синонимов страниц с помощью pathauto, а в правильности восприятия апострофа браузерами очень сомневаюсь. В оригинале - "'" и "'-"
Буква "Э" в правильном варианте пишется с дефисом - "e-", но это не очень хорошо смотрится в адресе, потому тоже заменил на "e".
Для этого нужно исправить файл x04.php в папке дата. 04 здесь означает первые два символа из четырех в кодовой таблице, русский алфавит находится в промежутке 0410 - 0451, плюс 0401 для заглавной буквы "Ё".
<?php return array( 'en' => array('Jo', 'Io', 'Dj', 'Gj', 'Ie', 'Dz', 'I', 'Yi', 'J', 'Lj', 'Nj', 'Tsh', 'Kj', 'I', 'U', 'Dzh', 'A', 'B', 'V', 'G', 'D', 'E', 'Zh', 'Z', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'Ts', 'Ch', 'Sh', 'Shch', '', 'Y', '', 'E', 'Yu', 'Ya', 'a', 'b', 'v', 'g', 'd', 'e', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'ts', 'ch', 'sh', 'shch', '', 'y', '', 'e', 'yu', 'ya', 'jo', 'io', 'dj', 'gj', 'ie', 'dz', 'i', 'yi', 'j', 'lj', 'nj', 'tsh', 'kj', 'i', 'u', 'dzh', 'O', 'o', 'E', 'e', 'Ie', 'ie', 'E', 'e', 'Ie', 'ie', 'O', 'o', 'Io', 'io', 'Ks', 'ks', 'Ps', 'ps', 'F', 'f', 'Y', 'y', 'Y', 'y', 'u', 'u', 'O', 'o', 'O', 'o', 'Ot', 'ot', 'Q', 'q', '*1000*', '', '', '', '', NULL, '*100.000*', '*1.000.000*', NULL, NULL, '"', '"', 'R\'', 'r\'', 'G\'', 'g\'', 'G\'', 'g\'', 'G\'', 'g\'', 'Zh\'', 'zh\'', 'Z\'', 'z\'', 'K\'', 'k\'', 'K\'', 'k\'', 'K\'', 'k\'', 'K\'', 'k\'', 'N\'', 'n\'', 'Ng', 'ng', 'P\'', 'p\'', 'Kh', 'kh', 'S\'', 's\'', 'T\'', 't\'', 'U', 'u', 'U\'', 'u\'', 'Kh\'', 'kh\'', 'Tts', 'tts', 'Ch\'', 'ch\'', 'Ch\'', 'ch\'', 'H', 'h', 'Ch', 'ch', 'Ch\'', 'ch\'', '`', 'Zh', 'zh', 'K\'', 'k\'', NULL, NULL, 'N\'', 'n\'', NULL, NULL, 'Ch', 'ch', NULL, NULL, NULL, 'a', 'a', 'A', 'a', 'Ae', 'ae', 'Ie', 'ie', '@', '@', '@', '@', 'Zh', 'zh', 'Z', 'z', 'Dz', 'dz', 'I', 'i', 'I', 'i', 'O', 'o', 'O', 'o', 'O', 'o', 'E', 'e', 'U', 'u', 'U', 'u', 'U', 'u', 'Ch', 'ch', NULL, NULL, 'Y', 'y', NULL, NULL, NULL, NULL, NULL), );
Смысл, думаю, понятен, кому надо - поправит под свои нужды и предпочтения.
- Cynicus's blog
- Для комментирования войдите или зарегистрируйтесь
Спасибо большое!
Буду пробывать.
На днях сам хотел исправть эти моменты ("е" будет "ie", и для "ъ" и "ь" - особенно). Полез смотреть где ж править-то и не понял где %) Куча файлов в папке data... и не было время разбираться.
- Для комментирования войдите или зарегистрируйтесь
А написать автору, чтобы поправил для всех?
- Для комментирования войдите или зарегистрируйтесь
Ещё бы этот модуль искал аналоги а-ля Рим -> Rome цены бы не было :)
- Для комментирования войдите или зарегистрируйтесь
2PVasili
> Ещё бы этот модуль искал аналоги а-ля Рим -> Rome цены бы не было :)
http://drupal.org/project/promt
- Для комментирования войдите или зарегистрируйтесь
А написать автору, чтобы поправил для всех?
написали-бы, но ктото из разработчиков требует патчем :(
для себя почему массив такой большой или он содержит все 255 символов аскии
особенно что значит вторая часть
'Ps', 'ps', 'F', 'f', 'Y', 'y', 'Y', 'y', 'u', 'u', 'O', 'o', 'O', 'o', 'Ot', 'ot', 'Q', 'q', '*1000*', '', '', '', '', NULL, '*100.000*', '*1.000.000*', NULL, NULL, '"', '"', 'R\'', 'r\'', 'G\'', 'g\'', 'G\'', 'g\'', 'G\'', 'g\'', 'Zh\'', 'zh\'', 'Z\'', 'z\'', 'K\'', 'k\'', 'K\'', 'k\'', 'K\'', 'k\'', 'K\'', 'k\'', 'N\'', 'n\'', 'Ng', 'ng', 'P\'', 'p\'', 'Kh', 'kh', 'S\'', 's\'', 'T\'', 't\'', 'U', 'u', 'U\'', 'u\'', 'Kh\'', 'kh\'', 'Tts', 'tts', 'Ch\'', 'ch\'', 'Ch\'', 'ch\'', 'H', 'h', 'Ch', 'ch', 'Ch\'', 'ch\'', '`', 'Zh', 'zh', 'K\'', 'k\'', NULL, NULL, 'N\'', 'n\'', NULL, NULL, 'Ch', 'ch', NULL, NULL, NULL, 'a', 'a', 'A', 'a', 'Ae', 'ae', 'Ie', 'ie', '@', '@', '@', '@', 'Zh', 'zh', 'Z', 'z', 'Dz', 'dz', 'I', 'i', 'I', 'i', 'O', 'o', 'O', 'o', 'O', 'o', 'E', 'e', 'U', 'u', 'U', 'u', 'U', 'u', 'Ch', 'ch', NULL, NULL, 'Y', 'y', NULL, NULL, NULL, NULL, NULL),
в иссуях висит багрепорт, но тишина :(
- Для комментирования войдите или зарегистрируйтесь
пофиг со второй частью :) за кросспостинг бить сильно,надеюсь не будут.
Сделал запись об изменённых таблицах для русского и эсперанто алфавитов (автор, надеюсь не против)
2 Cynicus для 5ки было проще один файлик в i18n
- Для комментирования войдите или зарегистрируйтесь
Спасибо! Тоже понадобилось.
- Для комментирования войдите или зарегистрируйтесь
Всем привет!
у меня Transliteration не поддерживает IMCE!
Данная проблема только у меня или у многих?
P.S. drupal 5.x
- Для комментирования войдите или зарегистрируйтесь
> Ещё бы этот модуль искал аналоги а-ля Рим -> Rome цены бы не было :)
http://drupal.org/project/promt
Page not found
- Для комментирования войдите или зарегистрируйтесь
Page not found
PVasili's sense of humour not found ; )
- Для комментирования войдите или зарегистрируйтесь
PVasili's sense of humour not found ; )
А было бы неплохо такой модуль иметь на многоязычном сайте.
- Для комментирования войдите или зарегистрируйтесь
А не кто не вкурсе. Как-то можно этот модуль одновременно на одном сайте для одного языка использовать, а для другого нет? Так как например pathauto для японского языка такой бред получается, что лучше уж иероглифы оставить.
- Для комментирования войдите или зарегистрируйтесь
Недавно прочитал что в Transliteration нужно править так как там некоторые буквы не правильно транслирует а за этого гугл и яндекс не прочитает урл - Таблица транслитерации, понятнаякак Google, так и Яндексу:http://goo.gl/pcmh1
Вот что у меня получилось для модуля Transliteration 6.30
<?php$base = array(
0x00 => 'Jo', 'Yo', 'Dj', 'Gj', 'Ie', 'Dz', 'I', 'Yi', 'J', 'Lj', 'Nj', 'Tsh', 'Kj', 'I', 'U', 'Dzh',
0x10 => 'A', 'B', 'V', 'G', 'D', 'E', 'J', 'Z', 'I', 'Y', 'K', 'L', 'M', 'N', 'O', 'P',
0x20 => 'R', 'S', 'T', 'U', 'F', 'H', 'Ts', 'Ch', 'Sh', 'Shch', '', 'Y', '', 'E', 'Yu', 'Ya',
0x30 => 'a', 'b', 'v', 'g', 'd', 'e', 'j', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p',
0x40 => 'r', 's', 't', 'u', 'f', 'h', 'ts', 'ch', 'sh', 'shch', '', 'y', '', 'e', 'yu', 'ya',
0x50 => 'je', 'yo', 'dj', 'gj', 'ie', 'dz', 'i', 'yi', 'j', 'lj', 'nj', 'tsh', 'kj', 'i', 'u', 'dzh',
0x60 => 'O', 'o', 'E', 'e', 'Ie', 'ie', 'E', 'e', 'Ie', 'ie', 'O', 'o', 'Io', 'io', 'Ks', 'ks',
0x70 => 'Ps', 'ps', 'F', 'f', 'Y', 'y', 'Y', 'y', 'u', 'u', 'O', 'o', 'O', 'o', 'Ot', 'ot',
0x80 => 'Q', 'q', '*1000*', '', '', '', '', NULL, '*100.000*', '*1.000.000*', NULL, NULL, '"', '"', 'R\'', 'r\'',
0x90 => 'G\'', 'g\'', 'G\'', 'g\'', 'G\'', 'g\'', 'J\'', 'j\'', 'Z\'', 'z\'', 'K\'', 'k\'', 'K\'', 'k\'', 'K\'', 'k\'',
0xA0 => 'K\'', 'k\'', 'N\'', 'n\'', 'Ng', 'ng', 'P\'', 'p\'', 'Kh', 'kh', 'S\'', 's\'', 'T\'', 't\'', 'U', 'u',
0xB0 => 'U\'', 'u\'', 'Kh\'', 'kh\'', 'Tts', 'tts', 'Ch\'', 'ch\'', 'Ch\'', 'ch\'', 'H', 'h', 'Ch', 'ch', 'Ch\'', 'ch\'',
0xC0 => '`', 'J', 'j', 'K\'', 'k\'', NULL, NULL, 'N\'', 'n\'', NULL, NULL, 'Ch', 'ch', NULL, NULL, NULL,
0xD0 => 'a', 'a', 'A', 'a', 'Ae', 'ae', 'Ie', 'ie', '@', '@', '@', '@', 'J', 'j', 'Z', 'z',
0xE0 => 'Dz', 'dz', 'I', 'i', 'I', 'i', 'O', 'o', 'O', 'o', 'O', 'o', 'E', 'e', 'U', 'u',
0xF0 => 'U', 'u', 'U', 'u', 'Ch', 'ch', NULL, NULL, 'Y', 'y', NULL, NULL, NULL, NULL, NULL, NULL,
);?>если не правильно поправил исправте!
- Для комментирования войдите или зарегистрируйтесь






Комментарии