Долго ковырял как все таки сделать выбор языка на WordPress + qTranslate по домену в брузере.
Domen.ru - Русский
Domen.com - Англ
и т.д.
Решение все таки нашлось в правке кода плагина qTranslate и wp-config.php:
И так:
Шаг 1:
Добавляем [ define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']); ] в файл wp-config.php это что бы Вордпресс не ругался. По умолчанию жестко привязывается.
Шаг 2: Добавляем проверку в конец функции qtrans_extractURL в файле qtranslate_core.php
$ccTLD = end(explode('.', $host));
if ($ccTLD == 'com')
$result['language'] = 'en';
else
$result['language'] = $ccTLD;
return $result;
Шаг 3: Заменяем функцию qtrans_convertURL в том же файле.
function qtrans_convertURL($url='', $lang='', $forceadmin = false) {можете вставить эту а ориганал переименовать в qtrans_convertURL2 дабы потом быстро все вернуть на место.
return $url;
}
Шаг 4: для использоватния виджета смены языков вставляем функцию в файлик qtranslate_widget.php:
function qtrans_domainURL($ignore, $language) {И заменяем вызов функции qtrans_convertURL в этом файле на qtrans_domainURL
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
$hostParts = explode(".", $_SERVER['SERVER_NAME']);
$ccTLD = "com";
if ($language != 'en')
$ccTLD = $language;
$hostParts[count($hostParts) - 1] = $ccTLD;
$host = implode(".", $hostParts);
// REQUEST_URI only works for Apache.
$domainURL = "http://" . $host . $port . $_SERVER['REQUEST_URI'];
return $domainURL;
}
В итоге получаем два идентичных сайта на разных языках, с единой базой и админкой.
Комментариев нет:
Отправить комментарий