将 link 定向到 OpenCart 中的语言
Direct link to language in OpenCart
我有一个多语言网站(用 OpenCart 构建),例如英语、德语、法语。
用户可以使用 OpenCart 的默认功能更改语言 - 单击顶部的语言图标。
是否可以自动发送用户(这样他们就不必点击标志)来自:
德文版网站
法文版网站
(默认为英语)
如果默认页面是 http://mystore.com,是否有我可以用于这些语言的 URL?
(我注意到当我点击语言图标时 URL 没有改变——所有语言都一样)
我认为语言是在会话变量中设置的
您提到的功能将通过以下方式实现:
- 使用HTML5地理定位检测用户的位置
- 研究opencart中设置语言功能
- 完成后,如果您想以正确的方式执行代码,请使用 VQMOD 放置您的代码
或者您也可以编辑您的核心 opencart 文件(不推荐)
- 如果浏览器不支持地理定位或者他们拒绝分享他们的位置,只需加载默认语言。
现在的opencart不支持这个功能,但是以前老版本的Opencart是有这个功能的
如果您想在您的网站中包含此功能,您必须执行以下操作:
编辑此文件:
catalog/controller/module/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 {
使用此代码的网站示例:
http://incomingtospain.com/madrid&lang=de
http://incomingtospain.com/madrid&lang=ru
这个网站有8个成语,你可以通过不同的url访问,用这个变量"lang" &lang=es &lang=en ... &lang=de &lang=ru
使用 OpenCart 2.0,您必须处理文件 index.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'];
我有一个多语言网站(用 OpenCart 构建),例如英语、德语、法语。 用户可以使用 OpenCart 的默认功能更改语言 - 单击顶部的语言图标。
是否可以自动发送用户(这样他们就不必点击标志)来自: 德文版网站 法文版网站 (默认为英语)
如果默认页面是 http://mystore.com,是否有我可以用于这些语言的 URL? (我注意到当我点击语言图标时 URL 没有改变——所有语言都一样)
我认为语言是在会话变量中设置的
您提到的功能将通过以下方式实现:
- 使用HTML5地理定位检测用户的位置
- 研究opencart中设置语言功能
- 完成后,如果您想以正确的方式执行代码,请使用 VQMOD 放置您的代码 或者您也可以编辑您的核心 opencart 文件(不推荐)
- 如果浏览器不支持地理定位或者他们拒绝分享他们的位置,只需加载默认语言。
现在的opencart不支持这个功能,但是以前老版本的Opencart是有这个功能的
如果您想在您的网站中包含此功能,您必须执行以下操作:
编辑此文件: catalog/controller/module/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 {
使用此代码的网站示例:
http://incomingtospain.com/madrid&lang=de
http://incomingtospain.com/madrid&lang=ru
这个网站有8个成语,你可以通过不同的url访问,用这个变量"lang" &lang=es &lang=en ... &lang=de &lang=ru
使用 OpenCart 2.0,您必须处理文件 index.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'];