Ткните меня плиз в каком месте в друпале происходит обратное преобразование из en/node/4 в node/4.
Нашел функцию language_url_rewrite (которая добавляет языковой префикс в зависимости от выбранной схемы работы с языком), а существует ли ее обратный вариант?
Комментарии
мда, сам спросил - сам отвечаю, пойдем простым путем
<?php
function language_url_derewrite($query) {
switch (variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE)) {
case LANGUAGE_NEGOTIATION_PATH_DEFAULT:
case LANGUAGE_NEGOTIATION_PATH:
$langs = language_list();
foreach ($langs as $language) {
$prefix = $language->language . '/';
if (drupal_substr($query, 0, drupal_strlen($prefix)) == $prefix) {
return drupal_substr($query, drupal_strlen($prefix));
}
}
break;
}
return $query;
}
?>
Почему то у меня было проще:
на русской части
<?php
$vars['select_language'] = '<div id="lang-ru" class="round">Русский</div>';
$vars['select_language'] .= '<div id="lang-en" class="round">'. l('English', 'en/'. $_GET['q']) .'</div>';
?>
на английской части
<?php
$vars['select_language'] = '<div id="lang-ru" class="round"><a href="'.$base_path.$_GET['q'].'">Русский</a></div>';
$vars['select_language'] .= '<div id="lang-en" class="round">English</div>';
?>
А можно пример использования
language_url_rewrite вызывается прямо из Функции url
такой код $GLOBALS['base_url'].url('gmap/'.$node->nid) выводит ссылку с префиксом, а мне надо в независимости языка без префикса