2016-07-21 67 views
0

在模板(Drupal的)php.tpl文件我有以下幾點:如何翻譯這個日期格式

但是,當該網站是在外語它不打印翻譯。我如何翻譯?使用t()函數?如果是這樣,我如何重寫它以包含它?

任何和所有的幫助表示讚賞。 :)

更新:

Isemi的第2個解決方案如下工作除外打印一年Ÿ而不是一年就好了。隨着微調的代碼變成:

$dateF = t(date('F', $comment->created)); 
$datej = t(date('j', $comment->created)); 
$dateY = t(date('Y', $comment->created)); 
print "{$datej} {$dateF} {$dateY}" . t(' at ') . date('H:i', $comment->created); 

的「AT」是容易翻譯,因爲它成爲一個獨立的翻譯的字符串。注意「a」之前和「t」之後的空格。

+0

關於語言翻譯,只需要消除「at」這個詞,因爲日期和時間的顯示自然就表明了評論的時間。 –

+0

此外,我建議使用JavaScript來顯示日期/時間,因爲客戶端知道它自己的語言環境。所有服務器必須做的是傳遞內部時間值。 –

回答

1

date()函數使用,我相信,服務器的語言環境。你應該改變它在當前的過程中,這可能是尷尬的,並不能在所有配置中工作。

你應該檢索所需的語言環境字符串,然後:

setlocale(LC_TIME, 'it_IT'); // Depends on the client. 

$datel = strftime("%F %j, %Y at %H:%i:%s", $comment->created); 

但除了正確的代碼(我不是太肯定%F和%j)的,你仍然有翻譯的問題'at',我想。

或者你可以得到的日期分段和部分翻譯一下:

$dateF = t(date('F', $comment->created)); 
$datej = t(date('j', $comment->created)); 
$dateY = date('Y', $comment->created); // Numeric year not translated. 

print "{$dateF} {$datej}, {$dateY} " . t('at') 
     . date('h:i', $comment->created); 

你也可以使用國際擴展,見this answer

+1

我用你的第二個選項,因爲它運作良好。我在Y(年份)上遇到了問題,因爲它會打印「Y」而不是年份。因此,通過這個小調整,它變成:$ dateF = t(date('F',$ comment-> created)); $ datej = t(日期('j',$ comment-> created)); $ dateY = t(日期('Y',$ comment-> created)); 打印「{$ datej} {$ dateF} {$ dateY}」。 t('at')。日期('H:i',$ comment->創建); – user14666

+0

是的,對不起,我忘了發送'Y'到date()函數。糾正。 – LSerni