将转换添加到JS中的脚本选项行作为变量

时间:2018-05-21 06:46:39

标签: javascript html prestashop smarty

我正在使用Prestashop,我需要在JS文件中添加可翻译文本。在TPL文件中,我添加了以下内容:

{strip}
{addJsDefL name=showmore}{l s='Show all' d='Shop.Theme.Actions' js=1}{/addJsDefL}
{addJsDefL name=showless}{l s='Show less' d='Shop.Theme.Actions' js=1}{/addJsDefL}
{/strip}

根据Prestashop的说法,我相信上面的代码会产生这样的结果: var showmore ='显示全部'; var showless ='显示更少';

然后在JS文件中,我这样做是为了在下面的“text”选项中包含可翻译文本:

$('.demo').curtail({
  limit: 140,
  toggle: true,
  text: ['" + showless + "', '" + showmore + "']
});

我怀疑我在方括号中添加var的方式犯了一个错误,text: ['" + showless + "', '" + showmore + "']它不起作用。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果您的文本参数需要数组,请使用此text: [showless, showmore]。您不需要使用任何引号,因为您已经获得了字符串。

答案 1 :(得分:0)

我能够通过在TPL文件中添加以下内容来解决这个问题:

<script type="text/javascript">
// <![CDATA[
    // Translations
    var showmore = '{l s='Show all' d='Shop.Theme.Actions' js=1}';
    var showless = '{l s='Show less' d='Shop.Theme.Actions' js=1}';
//]]>
</script>

然后我将其添加到JS文件的选项

text: [(showless), (showmore)]