$语言 - >语言获取默认语言不是当前语言[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的方式)的更好的方法。
在我的情况下,问题是我正在做一个不包含语言前缀的AJAX请求。这可以通过将语言信息传递给JS或使用其他方法在Drupal的admin/config/regional/language/configure中进行语言检测来解决。 – Camoflame
添加您的解决方案作为答案。否则你的答案将被标记为不是答案。 – Shell
增加了一个解决方案。 – Camoflame