несколько лицевых панелей на нескольких языках

У меня есть многоязычный (3) сайт Drupal 7. Я установил модуль интернационализации (7.x-1.0-beta2).

Я создал для каждого языка страницу и перевел ее на два других языка.

Теперь вот что я хочу сделать: установить интеллектуальную "переднюю страницу", чтобы узнать, какой язык выбран, и задать первую страницу (которую я выбираю) на этом языке.

Как я могу это сделать? Я знаю, что в модуле интернационализации такого типа нет, правда? Если я установил на первой странице ничто, я получаю это сообщение: "Пока не создано ни одного содержимого главной страницы". что нормально, потому что Drupal просит меня установить одну переднюю страницу, однако я хочу, чтобы для каждого языка была первая страница.

Ответ 1

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

Для Drupal 7:

1- Убедитесь, что вы включили модули Переменные и Переменные Переводы.
2- Goto admin/config/региональный/i18n/переменная
3- Выберите вкладку "Информация о сайте" и установите флажок "Начальная страница по умолчанию", сохраните настройки.
4-Goto admin/config/system/site-information, вы увидите блок текста, в котором говорится о некоторых ваших настройках, которые являются многоязычными переменными и списком ссылок для языков, на которых вы работаете, которые позволяют вам устанавливать настройки для каждого языка.

Теперь, когда появляется реальный GOTCHA... нажатие этих ссылок и изменение настроек ничего не делает. Ваши левые с теми же настройками все еще для всех языков. Как это сделать?

Проверьте URL-адрес, в котором вы сейчас находитесь, и все, что-то вроде: http://www.example.com/en/admin/config/system/site-information/

Обратите внимание на префикс языка там до /admin?? Чтобы изменить настройки для других языков, которые вы хотите использовать, установите префикс в URL-адрес и внесите изменения. И теперь, словно по волшебству, несколько фронт-страниц, правильно изменяющихся на основе языка.

Это должно быть ошибка в Drupal, мне нужно открыть билет. Но пока, если кто-то еще сталкивается с этим, я надеюсь, что он решает и вашу проблему.

Ответ 3

После продолжения разрывания моих волос, я узнал, что эта функция несовместима с анонимным кэшированием страниц!

Перейдите в /admin/config/development/performance и отключите кеширование страниц для анонимных пользователей.

Ответ 4

Может быть, есть лучший способ, но в конце концов он так и сделал.

Я добавил в template.php следующий код:

/**
 * Implements hook_preprocess_page().
 */
function aelius_preprocess_page(&$vars) {
    if ($vars['is_front']) {
        $langcode = $GLOBALS['language']->language;

        if ($langcode == "en") {
            drupal_goto('home');
        } elseif ($langcode == "fr") {
            drupal_goto('accueil');
        }
    }
}

Ответ 5

Я еще не работал с Drupal 7 i18n, но в Drupal 6 вы добавили переменную site_frontpage в $conf ['i18n_variables'] в settings.php, а затем переключитесь на каждый язык по очереди и установите переднюю страницу на страницу с информацией о сайте.

В качестве альтернативы вы можете указать условие в своей теме front-page.tpl.php как это