Разделы

  
 

ЧПУ в TransAlias

Необходимо настроить TransAlias так, чтобы он переводил русские сиволы в английские (транслитировал). Никак не удается это сделать. Умеющие, помогите пожалуйста.

pix.am/bLMe/, pix.am/GKPz/ — вот мои настройки.
  • 0
  • 1 апреля 2012, 20:55
  • leshiy
  • 2

Как убрать из TransAlias знаки препинания

Если у вас псевдонимы генерируются автоматически с помощью плагина TransAlias, то такие знаки препинания, как "!", ":", "," и т.д. автоматически появятся и в вашем псевдониме, если они присутствуют в заголовке. Но если запятая или восклицательный знак не влияют на работоспособность псевдонима, тем не менее, их присутствие вряд ли его украсит. К счастью, это легко исправляется.

Для этого, нам понадобится отредактировать файл assets\plugins\transalias\transliterations\russian.php — в этом файле находится таблица с символами для автоматической замены. Добавляем в нее через запятую знаки препинания:

,','=>'','?'=>'','!'=>'','"'=>'','@'=>'','%'=>'','$'=>'',
'#'=>'',';'=>'',':'=>'','&'=>'','='=>'','('=>'',')'=>'','+'=>'','/'=>'','}'=>'','{'=>'',']'=>'',
'['=>'','*'=>'','`'=>'','~'=>'','№'=>''


Теперь, если в заголовке встретятся эти знаки, они не будут отображаться в псевдониме.

Проблема с TransAlias

При включении TransAlias получаю ошибку при загрузке файла:

syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING in /Users/kalina/Sites/gorbunoff.gk/manager/includes/document.parser.class.inc.php(790): eval()'d code on line 5


Кто нибудь сталкивался в подобным?
  • -1
  • 24 октября 2011, 03:22
  • kalina
  • 3

Альтернатива TransAlias с переводом строки

В очередном проекте наконец то дошли руки до, того, о чем долго думал. Вся идея реализовалась десяткой строчек кода)
Решение представляет из себя генерацию алиаса страницы путем перевода русского заголовка в его английский аналог с допиливанием мелких деталей. Возможно позже со временем дополню функционал, пока того, что уже есть мне хвататет с головой.


function translate($s_text, $s_lang, $d_lang){
$post_data['q']=$s_text;
$post_data['langpair']=$s_lang.'|'.$d_lang;
$query=http_build_query($post_data);
$url = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0';
$b=file_get_contents($url.'&'.$query);
$json = json_decode($b, true);
if ($json['responseStatus'] != 200)return false;
return $json['responseData']['translatedText'];
}
global $alias;
if($alias==''){
$alias = translate($_POST['pagetitle'],  'ru', 'en');
$alias = html_entity_decode($alias);
$alias = strtolower($alias);
$patterns = array(' ', ',', '.', '!', '?', '"', '& #39;',  '%');
$replacements = array ('_', '', '', '', '', '', '',  'percent');
$alias = str_replace($patterns, $replacements, $alias);
}

из строчки $patterns = убрать пробел после '&'
Событие OnBeforeDocFormSave. На здоровье)

UPD
По просьбе сообщества, примеры алиасов:
Главная страница — home
Каталог товаров — catalog
топ товары — top_favorites
Вопрос-ответ — faq
Контакты — contact

в общем все, что нужно для средних размеров сайта получается очень даже не плохо.

UPD2
если для исходной строки не будет найден перевод она будет заменена на транслит, таким образом полностью заменяя весь функционал родного TransAlias
Будут предложения по улучшению?

Настройка TransAlias для авто транслита псевдонимов

Проблема с авто транслитом (авто созданием) псевдонимов для документов. Не как не выходит настроить…
  • 0
  • 21 декабря 2009, 13:55
  • chus
  • 12

Хочу озадачить transalias

Друзья, а как вы думаете, реально сделать так, чтобы значение tv-параметра (русский текст) перед выводом на страницу (ну или куда я захочу), предварительно обрабатывалось штатным плагином TransAlias, по тем же самым правилам, по которым обрабатывается алиас каждой страницы?

Поскольку php я так и не удосужился освоить, буду очень признателен за более развернутый ответ :))))))))))
  • 0
  • 4 сентября 2009, 11:51
  • banev
  • 17