2015-03-13 106 views
2

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

是否可以automaticaly用户发送(所以他们没有点击该标志)来源: 德国网站的德语版 法国法语版网站 的(英语是默认设置)

如果默认页面是例如http://mystore.com,是否有可用于这些语言的URL? (我注意到,当我点击语言图标的网址没有改变 - 这是相同的所有语言)

+0

至少有一个[延伸](http://www.opencart.com/index.php?route=extension/extension/info&extension_id=18641),我发现,这是否,但我会对OpenCart专家的回答感兴趣。 – Revent 2015-03-13 19:56:36

回答

0

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

如果你想在你的网站这个功能你必须做到以下几点:

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

找到这个:

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

之前的 “如果”,你必须包括以下内容:

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个成语,你可以通过不同的URL访问,这个变量 “郎” &郎= es & lang = en ... & lang = de & lang = ru

0

我认为语言是在会话变量

设置你提到将在achive功能下列方式:

  1. 使用HTML5地理位置,以检测用户
  2. 研究Opencart的位置设置语言功能
  3. 毕竟做过场所使用VQMOD如果你的代码想要以正确的方式做 或者你也可以编辑你的核心opencart文件(不推荐)
  4. 如果浏览器不支持地理位置,或者他们拒绝分享他们的位置只是加载默认语言。
-1

使用OpenCart 2.0时,您必须处理文件索引。PHP的(在您的网站根目录),并把这个代码:

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

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

} 

线155和线157

线之间153到154:

foreach ($query->rows as $result) { 

$languages[$result['code']] = $result; 

} 

(你在这里添加新的代码)

157线:

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

158行:

$code = $session->data['language'];