我已经在实时服务器上安装了openart 1.5.4x并以多种语言(英语,荷兰语,德语)为主题。Opencart应用程序可以在这些语言中正常工作。
当我点击语言链接并浏览整个网站时,网站的内容是用这种语言翻译的,但是如何通过编程来发现哪种语言是活跃的?
我需要向用户显示当前活动的语言
我猜你应该在控制器或模型中调用$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 } ?>
我希望这是你需要解决的问题,它会有所帮助。
简单语言选择代码
<?php $lang = $this->config->get('config_language');
if($lang == 'ru'){
$locale = 'ru_RU';
} elseif($lang == 'en'){
$locale = 'en_US';
} ?>
和
<?php if ($locale) { echo $locale; } ?>
使用$language_code
在您的前面,它是由catalog/controller/module/language.php设置:
$this->data['language_code'] = $this->session->data['language'];
我有一个类似的问题:我想在产品页面上获得当前选择的语言,这样我就可以在产品页面上显示不同语言的"社交共享代码"。
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; ?>
现在,如果你选择"English",它将显示"en-gb",如果你选择",它将显示"zh-cn"。
那么我可以使用"if "answers"this value"来显示不同语言的不同的"social share code"
希望它会有所帮助,它可以在opencart2.3.02上工作,我认为它可以在opencart2+,3+上工作。