将 link 定向到 OpenCart 中的语言

Direct link to language in OpenCart

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

是否可以自动发送用户(这样他们就不必点击标志)来自: 德文版网站 法文版网站 (默认为英语)

如果默认页面是 http://mystore.com,是否有我可以用于这些语言的 URL? (我注意到当我点击语言图标时 URL 没有改变——所有语言都一样)

我认为语言是在会话变量中设置的

您提到的功能将通过以下方式实现:

  1. 使用HTML5地理定位检测用户的位置
  2. 研究opencart中设置语言功能
  3. 完成后,如果您想以正确的方式执行代码,请使用 VQMOD 放置您的代码 或者您也可以编辑您的核心 opencart 文件(不推荐)
  4. 如果浏览器不支持地理定位或者他们拒绝分享他们的位置,只需加载默认语言。

现在的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  {

The source

使用此代码的网站示例:

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'];