我有一個網站(使用OpenCart構建)和多種語言,例如英文,德文,法文。 用戶可以使用OpenCart的默認功能更改語言 - 單擊頂部的語言圖標。直接鏈接到OpenCart中的語言
是否可以automaticaly用戶發送(所以他們沒有點擊該標誌)來源: 德國網站的德語版 法國法語版網站 的(英語是默認設置)
如果默認頁面是例如http://mystore.com,是否有可用於這些語言的URL? (我注意到,當我點擊語言圖標的網址沒有改變 - 這是相同的所有語言)
我有一個網站(使用OpenCart構建)和多種語言,例如英文,德文,法文。 用戶可以使用OpenCart的默認功能更改語言 - 單擊頂部的語言圖標。直接鏈接到OpenCart中的語言
是否可以automaticaly用戶發送(所以他們沒有點擊該標誌)來源: 德國網站的德語版 法國法語版網站 的(英語是默認設置)
如果默認頁面是例如http://mystore.com,是否有可用於這些語言的URL? (我注意到,當我點擊語言圖標的網址沒有改變 - 這是相同的所有語言)
現在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 {
與此代碼的網站的一個例子:
http://incomingtospain.com/madrid&lang=de
http://incomingtospain.com/madrid&lang=ru
這個網站有8個成語,你可以通過不同的URL訪問,這個變量 「郎」 &郎= es & lang = en ... & lang = de & lang = ru
我認爲語言是在會話變量
設置你提到將在achive功能下列方式:
使用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'];
至少有一個[延伸](http://www.opencart.com/index.php?route=extension/extension/info&extension_id=18641),我發現,這是否,但我會對OpenCart專家的回答感興趣。 – Revent 2015-03-13 19:56:36