直接链接到OpenCart中的语言

直接链接到OpenCart中的语言,opencart,multilingual,Opencart,Multilingual,我有一个网站(用OpenCart构建),有多种语言,如英语、德语、法语。 用户可以使用OpenCart的默认功能更改语言-单击顶部的语言图标 是否可以从以下位置自动发送用户(这样他们就不必点击标志): 德国到德国版本的网站 法国到法国版本的网站 (默认为英语) 例如,如果默认页面为,是否有可以用于这些语言的URL? (我注意到,当我点击语言图标时,URL没有改变——所有语言都是一样的)我认为语言是在会话变量中设置的 对于您提到的功能,将通过以下方式实现: 使用HTML5地理位置来检测用户的位置

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

是否可以从以下位置自动发送用户(这样他们就不必点击标志): 德国到德国版本的网站 法国到法国版本的网站 (默认为英语)

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

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

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

  • 使用HTML5地理位置来检测用户的位置
  • opencart中设置语言函数的研究
  • 如果您希望以正确的方式执行代码,请在完成所有操作后使用VQMOD放置代码 或者您也可以编辑核心opencart文件(不推荐)
  • 如果浏览器不支持地理位置或拒绝共享位置,只需加载默认语言即可

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

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

  • 使用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 (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  {
    

    具有此代码的网站示例:


    这个网站有8个习惯用法,你可以通过不同的url访问,使用变量“lang”&lang=es&lang=en&lang=de&lang=ru

    现在opencart不支持此功能,但在过去,opencart的旧版本确实有此功能

    如果要在网站中包含此功能,必须执行以下操作:

    编辑此文件: catalog/controller/module/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  {
    

    具有此代码的网站示例:


    这个网站有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_存在($session->data['language',$languages)){

    第158行:

    $code = $session->data['language'];
    

    使用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_存在($session->data['language',$languages)){

    第158行:

    $code = $session->data['language'];
    
    我发现至少有一个这样做,但我对OpenCart专家的答案感兴趣。我发现至少有一个这样做,但我对OpenCart专家的答案感兴趣。