Вопрос

Я использую Joomla с компонентом перевода Joomfish. Этот сайт имеет немецкие и китайские переводы. Я пытаюсь выяснить, как заставить домен .de по умолчанию в перевод немецкого языка (который будет загружаться, если он будет посещать как Domain.com/de или Domain.com/cn).

Кто -нибудь знает способ сделать это с, возможно, .htaccess (какой -то перенаправление)? Или, возможно, PHP? Может быть, установить какую -то переменную сеанса на основе домена (PHP_URL_HOST)?

Прямо сейчас у меня есть настройка Apache2 с wwww.domain.com в качестве основного виртуального хоста, а также .de и .cn как псевдонимы.

Это было полезно?

Решение

Добро пожаловать в это!

При условии, что ваш Apache mod_setenvif включено, добавьте это в свой .htaccess файл:

# Site accessed via "example.de" or "example.cn"
SetEnvIf Host "\.de$" SITE_LANGUAGE=de
SetEnvIf Host "\.cn$" SITE_LANGUAGE=zh

# URL dependent
SetEnvIf Request_URI "^/de/" SITE_LANGUAGE=de
SetEnvIf Request_URI "^/cn/" SITE_LANGUAGE=zh

Затем в вашем сценарии PHP вы можете запросить SITE_LANGUAGE:

switch($_SERVER['SITE_LANGUAGE']) {
   case 'de':
      // german stuff
   case 'zh':
      // chinese stuff
}

Другие советы

Благодарю вас! После добавления кода HTACCESS все, что мне нужно было сделать, это редактировать /plugins/system/jfrouter.php около 145:

if (isset($_SERVER['SITE_LANGUAGE'])) {
    switch($_SERVER['SITE_LANGUAGE']) {
        case 'de':
            $client_lang = 'de';
            $lang_known = true; 
            JRequest::setVar('lang', 'de' );
            break;
        case 'zh':
            $client_lang = 'zh';
            $lang_known = true;
            JRequest::setVar('lang', 'zh' );
            break;
    }
}

Что, если у вас был случай в PHP на основе запроса GET?

Что-то типа domain.com/?lang=de в сочетании с

$lang = "default";
if (isset($_GET['lang'])) {
    $lang = $_GET['lang'];
}   
if ($lang != "default") {
    if($lang == "de") {
        ....

в вашем коде. .... будет там, где вы загружаете свой переводчик или языковой ресурс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top