我已经在实时服务器上安装了 Opencart 1.5.4x 并以多种语言(英语、荷兰语、德语)为主题。Opencart 应用程序可以与这些语言一起正常工作。
当我点击语言链接并浏览整个网站时,网站的内容被翻译成这种语言,但是如何以编程方式找出哪种语言处于活动状态?
我需要向用户显示当前处于活动状态的语言。
我已经在实时服务器上安装了 Opencart 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 } ?>
我希望这是您需要解决的问题,并且会有所帮助。
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; } ?>
在你前面使用$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”和“this value”为不同的语言显示不同的“社交分享代码”。
希望它会有所帮助,因为它适用于 opencart 2.3.02,我认为它适用于 opencart2+,3+。