2014-01-08 247 views
0

我有一個自定義模塊,並在其控制器上,當我嘗試獲取當前的界面語言。我得到默認語言'en'。

有人能告訴我爲什麼

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

給它的默認語言,而不是當前的界面語言

回答

0

我有同樣的問題。節點已正確翻譯,但自定義模塊中的全局$語言始終是網站默認語言。

你可以通過一些代碼來得到它。例如從$ _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