$语言 - >语言获取默认语言不是当前语言[Drupal 7]

问题描述:

我有一个自定义模块,并在其控制器上,当我尝试获取当前的界面语言。我得到默认语言'en'。

有人能告诉我为什么

<?php 
    function module_controller_my_function(){ 
     global $language; 
     var_dump($language->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/regional/language/configure中进行语言检测来解决。 – Camoflame

+0

添加您的解决方案作为答案。否则你的答案将被标记为不是答案。 – Shell

+0

增加了一个解决方案。 – Camoflame