2015-03-13 104 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'];