Opencart的语言切换器

Opencart的语言切换器,opencart,language-switching,Opencart,Language Switching,虽然我发现Opencart中的内置语言管理近乎完美,但我需要一个语言切换器扩展,用于站点上任何地方的任何文本,其工作原理如下: {en}text shown only on English site{/en} {de}text shown only on German site{/de} 类似的扩展在Joomla中被广泛使用,并且非常流行 有人知道Opencart的这种扩展吗?为什么不使用您提到的标签呢: {en}text shown only on English site{/en} {de

虽然我发现Opencart中的内置语言管理近乎完美,但我需要一个语言切换器扩展,用于站点上任何地方的任何文本,其工作原理如下:

{en}text shown only on English site{/en}
{de}text shown only on German site{/de}
类似的扩展在Joomla中被广泛使用,并且非常流行


有人知道Opencart的这种扩展吗?

为什么不使用您提到的标签呢:

{en}text shown only on English site{/en}
{de}text shown only on German site{/de}
然后在渲染之前在输出上添加preg_match

在system/engine/controller.php中找到以下行:

$this->output = ob_get_contents();
替换为(在我的示例中,英语和俄语的语言ID分别为1和2):


真正地这远远不是完美的:-D
gettext
只使用一个语言文件(每种语言)会更好。。。这种语言文件和短语重复是愚蠢的。。。我想你已经在谈论它了。。。不管怎样,你所要求的努力是什么?你不能用当前的语言系统做同样的事情吗。。。?我不确定我是否正确理解您的需求…通常,默认情况下,在编辑文章等时,有一种简单的方法可以在admin中切换语言(在admin中有文本字段的任何地方)。我在admin中有一个自定义模块,它有一个文本字段,不支持多种语言。所以,我需要这个神奇的插件,就像我描述的那样,它将为我节省大量的时间。如果它是你自己的扩展,那么编辑它以支持多语言(查看其他OpenCart管理部分以了解如何实现它)。如果是您购买的扩展,请联系开发人员/公司以添加多语言支持。。。或者,如果您想自己编辑第三方扩展,请直接进入它…查看
admin/controller/localization/order\u status.php
以获得简单的解决方案,或者查看
admin/controller/catalog/information.php
以获得使用WYSIWYG和制表符的解决方案…太棒了!我已经根据我的需要修改了我的模块,但这看起来更好!
//check for current language and do preg_replace on output

/* get current language ID */
$cur_lang_id = $this->config->get('config_language_id');

/* store buffer output in variable */
$html = ob_get_contents();
$tags = array('/\{en\}/','/\{\/en\}/','/\{ru\}/','/\{\/ru\}/');

/* do replacements */
if ($cur_lang_id == '2') {$html = preg_replace('/\{en\}.+\{\/en\}/','',$html);}
if ($cur_lang_id == '1') {$html = preg_replace('/\{ru\}.+\{\/ru\}/','',$html);}

/* remove tags */
$html = preg_replace($tags,'',$html);

//$this->output = ob_get_contents();
$this->output = $html;