Opencart的语言切换器

时间:2013-04-19 00:36:14

标签: opencart language-switching

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

{en}text shown only on English site{/en}
{de}text shown only on German site{/de}

类似的扩展在Joomla中广泛使用,并且非常受欢迎。

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

1 个答案:

答案 0 :(得分:2)

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

{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,分别为英语和俄语):

//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;