2010-10-05 79 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}代替打开它。

相关问题