我有一个网站(使用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