2017-07-16 360 views
1

我試圖翻譯Magento 2中的「新」標籤,但現在它顯示Http錯誤500.例如,我在下面的代碼中將<span>new</span>更改爲<span data-bind="i18n: 'new'"></span>。我做錯了什麼?PHP解析錯誤:語法錯誤,意外的'新'(T_NEW)

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

哪條線導致錯誤? –

+1

無法複製。在給定的代碼中沒有語法錯誤。 – GordonM

+0

如果您更改爲''您將報價搞亂了。 '''在這種情況下。 – colburton

回答

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> ...'; 
+0

它的工作原理,非常感謝! – Peter

+0

我需要編輯我的評論...這不適用於翻譯magento 2. 1.我試圖把翻譯.csv文件文本:新的,第二語言。 2.我嘗試使用也翻譯內聯工具,但在ssh命令升級和編譯後,翻譯的文本丟失。任何想法如何我可以得到它的作品? – Peter

相關問題