2014-01-08 6 views
0

У меня есть пользовательский модуль и его контроллер, когда я пытаюсь получить текущий язык интерфейса. Я получаю по умолчанию язык «en».

Кто-то может сказать мне, почему

<?php 
    function module_controller_my_function(){ 
     global $language; 
     var_dump($language->language); 
    } 
?> 

это дает язык по умолчанию вместо текущего языка интерфейса

ответ

0

У меня есть один и тот же вопрос. Узлы переводятся правильно, но глобальный $ language в настраиваемом модуле всегда является языком по умолчанию для сайта.

Вы можете пройти мимо этого с помощью некоторого кода. Например, чтение языка из переменной $ _SERVER. Пример:

function _my_module_get_language() { 
    $referer_part_list = explode('/', $_SERVER['HTTP_REFERER']); 

    return $referer_part_list[3]; 
}

Обратите внимание, что, скорее всего, есть лучший способ сделать это (путь Drupal).

+0

В моем случае проблема заключалась в том, что я выполнял запрос AJAX, который не содержал префикс языка. Это может быть разрешено путем передачи языковой информации в JS или использования других методов определения языка в Drupal в admin/config/region/language/configure. – Camoflame

+0

добавьте свое решение в качестве ответа. в противном случае ваш ответ будет отмечен как не ответ. – Shell

+0

Добавлено решение. – Camoflame

Смежные вопросы