直接链接到OpenCart中的语言

时间:2015-03-13 11:21:05

标签: opencart multilingual

我有一个网站(使用OpenCart构建),有多种语言,例如英语,德语,法语。 用户可以使用OpenCart的默认功能更改语言 - 单击顶部的语言图标。

是否可以自动发送用户(因此他们不必点击标志): 德国到德国版的网站 法国到法国版的网站 (默认为英语)

如果默认页面是http://mystore.com,我是否可以使用这些语言的网址? (我注意到当我点击语言图标时,URL没有变化 - 所有语言都是一样的)

3 个答案:

答案 0 :(得分:0)

我认为语言是在会话变量中设置的

您提到的功能将以下列方式实现:

  1. 使用HTML5地理位置检测用户的位置
  2. 在opencart中研究设置语言功能
  3. 如果您想以正确的方式完成代码,请使用VQMOD完成代码 或者您也可以编辑核心opencart文件(不推荐)
  4. 如果浏览器不支持地理位置,或者他们拒绝共享其位置,则只需加载默认语言。

答案 1 :(得分:0)

现在opencart不支持此功能,但在过去,旧版本的Opencart确实具有此功能。

如果您想在自己的网站中加入此功能,则必须执行以下操作:

编辑此文件: 目录/控制器/模块/ language.php

找到这个:

    class ControllerModuleLanguage extends Controller {
        protected function index() {
            if (isset($this->request->post['language_code'])) {

在“if”之前,您必须包含以下内容:

if (isset($this->request->get['lang'])) {

    $this->session->data['language'] = $this->request->get['lang'];

    if (isset($_SERVER['HTTP_REFERER']) && (strpos($_SERVER['HTTP_REFERER'], $this->config->get('config_url')) !== false) ) {

        $this->redirect($_SERVER['HTTP_REFERER']);

    } else {

        $this->redirect($this->url->link('common/home'));

    }

} else  {

The source

使用此代码的网站示例:

http://incomingtospain.com/madrid&lang=de

http://incomingtospain.com/madrid&lang=ru

这个网站有8个成语,你可以通过不同的网址访问,这个变量“lang”& lang = es& lang = en ...& lang = de& lang = ru

答案 2 :(得分:-1)

使用OpenCart 2.0,您必须处理文件index.php(在您的网站根目录中)并放置此代码:

None
第155行和第157行之间的

第153至154行:

if (isset($request->get['lang']) && array_key_exists($request->get['lang'], $languages)) {

    $session->data['language'] = $request->get['lang'];

}

(你在这里添加新代码)

第157行:

foreach ($query->rows as $result) { $languages[$result['code']] = $result; }

第158行:

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages)) {