我试图翻译&#34; new&#34; Magento 2中的标签,但现在它显示Http错误500.例如,我在下面的代码中将<span>new</span>
更改为<span data-bind="i18n: 'new'"></span>
。我做错了什么?
function newLabel($_product) {
$output='';
$now = date("Y-m-d");
$newsFrom = substr($_product->getNewsFromDate(), 0, 10);
$newsTo = substr($_product->getNewsToDate(), 0, 10);
$new = false;
if (!empty($newsFrom) && !empty($newsTo)) {
if ($now >= $newsFrom && $now <= $newsTo) $new = true;
} elseif (!empty($newsFrom) && empty($newsTo)) {
if ($now >= $newsFrom) $new = true;
} elseif (empty($newsFrom) && !empty($newsTo)) {
if ($now <= $newsTo) $new = true;
}
// I'm trying to change this line:
if ($new) $output='<div class="product_holder__label product_holder__label--right product_holder__label--new"> <span>new</span> </div>';
return $output;
}
在error_log
中,如果我尝试翻译,我可以看到这一点:
PHP Parse error: syntax error, unexpected 'new' (T_NEW) in /home/.../.../app/code/vendor/module/Helper/Data.php
答案 0 :(得分:0)
你没有注意正确的引用。据我所知,你正在取代这一行:
if ($new)$output='... <span>new</span> ...';
直接与此:
if ($new)$output='... <span data-bind="i18n: 'new'"></span> ...';
这是一个问题,因为new
周围的单引号被误解为字符串'... <span data-bind="i18n: '
的结尾,另一个作为字符串'"></span> ...'
的开头。
您需要使用反斜杠转义单引号:
if ($new)$output='... <span data-bind="i18n: \'new\'"></span> ...';