Все тоже самое, только yTranslit работает через запросы к Api Яндекса, и мы получаем красивые дружественные урлы.
Например:
pagetitle: Обратная связь alias: feedback-contact // pagetitle: Спортивный кружок alias: sports-circle // pagetitle: Главная страница сайта текстильного завода alias: the-main-page-site-textile-mill

Не знаю, как вам, а лично мне очень надоели кривые транслитирированные имена у страниц сайта. Так, по моему, будет гораздо лучше.
Компонент пытается работать через CURL, с таймаутом в 1 секунду. Если библиотека не установлена на сервере — обычный file_get_contents, который может привести к висяку при отсутствии связи с Яндексом. Если при получении будет ошибка — она запишется в системный журнал и вы получите непереведенный алиас.
Также обратите внимания, что Яндекс накладывает некоторые ограничения на запросы. Хотя, 10 000 запросов и\или 1 000 000 символов за сутки, думаю, хватит всем для работы с ресурсами.
Настройка ровно одна: friendly_alias_ytranslit_url, в которой вы можете поправить направление перевода. По умолчанию это ru-en. Не забываем также написать что-нибудь и в настройке friendly_alias_translit, например russian.
Если хотите временно вернуться к обычному translit — поправьте 2 параметра в системе: friendly_alias_translit_class и friendly_alias_translit_class_path. Нужно просто убрать букву y.
Пакет можно качать из репозитория Simple Dream.
Исходный код на Github.
← Следующая заметка
Новый modExtra
Новый modExtra
Предыдущая заметка →
Форкнул BannerX под именем BannerY, 1.0.0
Форкнул BannerX под именем BannerY, 1.0.0
Меня греет надежда, что они все таки смотрят в контент, а не на url. Иначе посты Хабра вообще бы не индексировались — там все урлы ниочемными циферками.
© 2012 Василий Наумкин: «10 000 запросов за сутки, думаю, хватит всем для работы с ресурсами»
Что же будет, когда эти 10000 запросов будут исчерпаны? Алиас не будет генериться, или же будет простой транслит? Например необходимо обновлять каталог раз в неделю, а там около 100к позиций.
Если вводить алиас вручную, или задавать при обновлении — запроса тоже не будет. Ну и в последней версии добавился параметр, который позволяет указать регулярку, чтобы подходящие под нее pagetitle не слались на Яндекс для перевода.
В конце концов, при любой ошибке алиас будет русский, как pagetitle и вы легко найдете эти ошибочные алиасы простым скриптом.
Гляньте: translate.yandex.net/api/v1/tr.json/translate?lang=ru-en&text=
Можно и в текущей версии в настройках поменять параметр friendly_alias_ytranslit_url с
на
Ключ получать здесь api.yandex.ru/key/form.xml?service=trnsl
Видимо из за https.
CURL установлен? Попробуйте после этой строчки github.com/bezumkin/yTranslit/blob/master/core/components/ytranslit/model/modx/ytranslit/modtransliterate.class.php#L53 добавить еще и
не понимаю почему возвращается пустой результат
Может детально ошибку опишет
2. Не подгружаются библиотеки openssl
3. curl для Denwer скомпилен без поддержки openssl, если такое возможно
Это первое что пришло в голову.
Думаю curl_error($ch) выдало бы информацию в чем проблема.
При попытки изменить Таймаут в секундах (у меня сервер в нидерландах, там 1 мало) у нас не дает изменить значение 1, кидает ошибки
Саппор хостинга уверяет что Curl скомпилирован с openssl, что подтверждается phpinfo()
но в логах при сохранении документа выводит:
как продиагностировать ошибку, от чего такое получается?
SSL certificate problem: unable to get local issuer certificate
Для отключения проверки сертификата
в файле core/components/ytranslit/model/modx/ytranslit/modtransliterate.class.php
сразу после:
добавить:
modx 2.2.6
Denver
Ключ от Яндекса получен
cURL support enabled
SSL Version OpenSSL/1.0.1c
translit — работает, а ytranslit — нет. Оставляет кириллицу как есть :(
Где копать?
Пробовал на хостинге на modx 2.2.13
Там SSL Version NSS/3.12.4.5
Но translit там не стоит (он нужен для ytranslit?)
В общем, тоже не работает.
Что я не сделал?