我在实时服务器上安装了多种语言(英语,Duch,德语)的Opencart 1.5.4x。 Opencart应用程序可以正常使用这些语言。
当我点击语言链接并浏览整个网站时,网站的内容会以这种语言翻译,但是如何以编程方式查找哪种语言有效?
我需要向用户显示当前处于活动状态的语言。
答案 0 :(得分:4)
我猜你应该在控制器或模型中调用$this->config->get('config_language_id');
来获取当前活动语言的ID。
这意味着,如果您已实现自己的语言切换器,则在您的控制器中将语言设置为模板:
$this->data['active_language_id'] = $this->config->get('config_language_id');
然后在您的模板中执行以下操作:
<?php foreach($languages as $language) { ?>
<a href="..." class="lang-select <?php if $language['language_id'] == $active_language_id) echo ' active'; ?>"><?php echo $language['code']; ?></a>
<?php } ?>
我希望这是你需要解决的问题,这会有所帮助。
答案 1 :(得分:0)
opencart中的简单语言选择代码
<?php $lang = $this->config->get('config_language');
if($lang == 'ru'){
$locale = 'ru_RU';
} elseif($lang == 'en'){
$locale = 'en_US';
} ?>
和
<?php if ($locale) { echo $locale; } ?>
答案 2 :(得分:0)
在前面使用$language_code
,它由catalog / controller / module / language.php设置:
$this->data['language_code'] = $this->session->data['language'];
答案 3 :(得分:0)
我有一个类似的问题: 我想在产品页面上获取当前选择的语言,因此我可以显示不同的社交共享代码&#34;对于产品页面上的不同语言。
1)转到/catalog/controller/product/product.php 之后
$data['heading_title'] = $product_info['name'];
添加
$data['clanguage'] = $this->session->data['language'];
转到/catalog/view/theme/default/template/product/product.tpl
将以下代码添加到您希望显示的位置。
<?php echo $clanguage; ?>
现在,如果你选择&#34;英语&#34; ,它会显示&#34; en-gb&#34;,如果您选择&#34;简体中文&#34;,它将显示&#34; zh-cn&#34;。
然后我可以使用&#34;如果&#34;和&#34;这个值&#34;显示不同的社交共享代码&#34;用于不同的语言。
希望它会有所帮助, 它适用于opencart 2.3.02,我认为它适用于opencart2 +,3 +。