如何在Opencart中通过URL设置语言

7

我希望通过URL更改语言,这样我的网站就可以在搜索引擎中以不同的语言出现。
例如:我希望用户通过以下链接更改语言:
www.mysite.com/lang=ar

我正在使用Opencart 3.0.2
目前用户是通过提交POST请求的表单菜单更改语言,所以搜索引擎无法索引其他语言。
我该怎么做?


你确定搜索引擎不会索引其他语言吗? - yoda
是的,这就是我的网站发生的情况,因为没有其他语言的URL链接,只有一个带有POST方法的表单列表框! - Behiry
1个回答

5
我成功地实施了以下步骤:
1- 打开catalog/controller/startup/startup.php文件
在以下代码行之后:
$languages = $this->model_localisation_language->getLanguages();

请添加以下代码:

if(isset($this->request->get['lng'])){
  $this->session->data['language'] = $this->request->get['lng'];
}

2- 将以下行添加到 .htaccess 文件中:

RewriteRule ^en/([^?]*) index.php?_route_=$1&lng=en [L,QSA]
RewriteRule ^ar/([^?]*) index.php?_route_=$1&lng=ar [L,QSA]

3- 在模板文件中添加了语言标志:

<div class="languageFlags">
 {% for language in languages %}
  <a href="/{{ language['code'] }}">
   <img src="catalog/language/{{ language['code'] }}/{{ language['code'] }}.png" alt="{{ language['name'] }}" title="{{ language['name'] }}" />
  </a>
 {% endfor %}
</div>

现在,当我浏览www.mysite.com/en时,它会显示英语,并且对于其他语言也是如此。现在搜索引擎可以索引其他语言的页面。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接