如何在prestashop中将模块中的翻译传递给smarty模板?

时间:2016-02-02 17:19:40

标签: module smarty translation prestashop

我正在构建一个模块,并且有类似的东西:

$custom_menu = '<ul class="main-menu custom-menu">'.
  '<li class="collections">' . $this->l("Collections") . $this->get_collections_menu($collections) . '</li>'.
  '<li class="styles">' . $this->l("Styles") . $this->get_styles_menu($collections) . '</li>'.
  '<li class="pearls">' . $this->l("Pearls") . $this->get_pearls_menu($collections_category_link) . '</li>'.
  '<li class="prices">' . $this->l("Prices") . $this->get_prices_menu($collections_category_link) . '</li>'.
  '<li class="categories hide-for-large-up">' . $this->l("Categories") . $this->get_categories_menu() . '</li>'.
'</ul>';

$this->context->smarty->assign('custom_menu', $custom_menu);

一切顺利,菜单会显示出来。我的问题是翻译:我无法在后台找到它们进行编辑。这段代码出了什么问题?

2 个答案:

答案 0 :(得分:1)

好的我刚刚找到了解决方案:字符串必须用单引号分隔,而不是双引号。所以不要这样:

'<li class="collections">' . $this->l("Collections") . $this->get_collections_menu($collections) . '</li>'

使用它:

'<li class="collections">' . $this->l('Collections') . $this->get_collections_menu($collections) . '</li>'

换句话说:$this->('your string')没问题。

然后,您将在“模块翻译”翻译类型下的后台翻译面板上找到要翻译的字段。

无论模块中的哪个位置,您都会放置l()函数。构造函数,钩子,字符串连接,到处都可以。

答案 1 :(得分:0)

翻译php

$this->l('Text')

翻译tpl

{l s='Text' mod='Name Module'}

在你的情况下

'<li class="collections">{l s='Collections' mod='Name Module'}'