Вы здесь

Шаблоны Pathauto для всех языков

-1

Добрый день!

Есть вопрос про генерацию алиасов (url) для типа материала (сайт многоязычный, но именно этот контент не переводиться). Настроено в шаблон для генерации. Все ок, но она генерит только для 1 го языка который стоит по умолчанию. А языков несколько. Например sitename/ru/material1 - доступно, а sitename/en/material1 - не доступно. Это видимо за того что контент отмечен как "не переводиться". Как быть тут? Или можно ли переопределить это поведение?

Версия Drupal: 
7.x
Связанные проекты: 
Pathauto
Вопрос задан 02.12.2015 - 14:43
Аватар пользователя Dulat
Dulat
-1

Пишите пожалуйста заголовки с сутью вопроса

Комментарий оставлен 02.12.2015 - 14:47

Ответы

0

drupal pathauto создаёт для материала на одном языке 1 алиас.
если вам нужно, чтобы материал имел алиасы на разных языках, вам нужно создать перевод этого материала (можете оставить его содержимое таким же, содержимое материала и его переводов не влияет на алиас)

Ответ дан 02.12.2015 - 14:59
0

Можно, в принципе, организовать перевод через Entity Translation, там этой проблемы не будет.

Там нода (и соответственно, её адрес) будет одинаковый для всех языков, а переводятся только отдельные поля.

Но у этого метода есть свои нюансы - например, если Вы будете делать поиск через Search API, то могут возникнуть проблемы.

Ответ дан 02.12.2015 - 16:54
0

Есть вот такое решение - https://www.drupal.org/project/pathauto_i18n
Ниже предыдущая версия ответа.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Недавно сталкивался с этим, вот что придумал

/**
 * Implements hook_path_insert().
 */
function mymodule_path_insert($path) {
  // We need to register node path alias for all languages.
  if (preg_match("!^node/(\d+)(/.+|)!", $path['source'], $matches) && $path['language'] != LANGUAGE_NONE) {
    $path['language'] = LANGUAGE_NONE;
    path_save($path);
  }
}

/**
 * Implements hook_path_update().
 */
function mymodule_path_update($path) {
  mymodule_path_insert($path);
}

Этот код зарегистрирует алиас не для одного языка, а для LANGUAGE_NONE - будет работать для всех языков.

Ответ дан 02.12.2015 - 21:01