我正在一个多语种网站上工作,我已经成功地建立了多语种的概念。
现在,我想根据IP地址或国家将用户重定向到相应的语言URL。例如,如果用户来自法国,我想将他们重定向到http://www.example.com/fr。
我找到了geoip_language_redirect模块,但我不知道如何使用它。
有人能帮我吗?
发布于 2016-05-11 12:59:01
正如项目页所述,安装模块后,您需要使用一个数组来设置geoip_redirect_mapping持久变量,该数组将国际标准化组织国家代码与该语言相关联。
variable_set('geoip_redirect_mapping', array(
'GB' => 'en',
'FR' => 'fr',
// …
));例如,将以下代码放在setup.php中,并将其保存在Drupal有其cron.php和index.php的同一个目录中。
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
variable_set('geoip_redirect_mapping', array(
'GB' => 'en',
'FR' => 'fr',
// …
));访问http://example.com/setup.php,变量将被设置。之后,您可以删除该文件。
如果您有Drush,则可以从站点目录(从终端)执行以下命令。
php -r "print json_encode(array('GB' => 'en', 'FR' => 'fr'));" | drush vset --format=json geoip_redirect_mapping -对于其余部分,模块会自动重定向用户。
项目页面有点混乱。还不清楚持久变量是geoip_mapping还是geoip_redirect_mapping。我没有在代码中找到对该变量的任何引用,因此我无法确定哪个变量是正确的。我会尝试geoip_redirect_mapping,因为这是从示例代码中使用的;如果不起作用,我将尝试geoip_mapping。如果它们都不起作用,我会打开一个模块的支持请求,如果还没有,我会要求更改项目页面以使其更清晰。
https://drupal.stackexchange.com/questions/200738
复制相似问题