2010-10-05 94 views
2

我使用smarty在我的網站上允許不同的語言,到目前爲止工作正常。我將文本存儲在不同部分的配置文件中。是否可以將變量放入配置文件中?

但隨後有句話是這樣的:

你有6個新郵件!」,這將是德國

現在有文本之前 「SIE haben 6抵達Neue郵件!」數字後面的數字,從數據庫中加載。我想把它放到配置文件中,並自己加載數字。

所以我有這個在我的 「text.conf」

[en] 
mail_count = "You have $NUMBER new mails!" 
[de] 
mail_count = "Sie haben $NUMBER neue Mails!" 

,這在我的 「show_text.php」

$smarty->assign('NUMBER', 6); 

是這樣的可能嗎?也許與Smarty 3.0?

由於提前, BH

回答

0

我沒有Smarty的現在來測試這個權利,但它應該工作,如果你正確地在你的配置項聲明變量,如:

ail_count = "You have {$NUMBER} new mails!" 
+0

不,可悲的是沒有。我已經試過了,輸出結果是「你有{NUMBER}封新郵件!」 – bastiandoeen 2010-10-05 11:55:16

1

你可以使用sprintf sintax。這個例子來自一個類似尋呼機的事情:

results = "Results %s to %s of %s total" 

{#results#|sprintf:$start:$end:$total} 
+0

這是一種有效的方法,但它仍然不是所期望的效果:您仍然需要添加此sprintf內容,並且不能直接將該變量賦予smarty。我已經找到的解決方案接近這個,但會使用「替換」而不是「sprintf」。不管怎麼說,還是要謝謝你! – bastiandoeen 2010-10-07 13:50:49

1

我只是想這和它的作品,但它是相當醜陋......

  • 創建文件「number.tpl」,其中包含

{$ NUMBER}

  • 在你的conf文件是這樣的

mail_count = 「您{包括 文件= 'number.tpl'}新郵件!」

我想這是因爲smarty變量只能在tpl文件中工作。

+0

這對我來說根本不起作用,內在包含不會被執行,而是獲取文本 「您有{include file ='number.tpl'}新郵件!」 – bastiandoeen 2010-10-11 07:48:07

+0

我正在做的是在firefox瀏覽器中運行show_text.php文件。你在做那個嗎? – Riki 2010-10-11 20:14:29

1

當讀取配置文件,您需要使用

$cfg = $smarty->fetch('path/to/file'); 

之後,你把整個文件內容IND完$ cfg變量,用{$ NUMBER}代替打開它。

相關問題