Smarty 是否可以将变量放入配置文件中?
我使用smarty允许在我的网站上使用不同的语言,到目前为止效果还不错。我将文本存储在不同部分的配置文件中 但也有这样的句子: “你有6封新邮件!”,这将是德语“Sie haben 6封新邮件!” 现在,数字前面和后面都有文本,这是从数据库中加载的。我想把它放到配置文件中,然后自己加载这个数字 所以我在我的“text.conf”中有这个 在我的“show_text.php”中 这样的事情可能吗?也许用Smarty 3.0 提前感谢,,Smarty 是否可以将变量放入配置文件中?,smarty,config,Smarty,Config,我使用smarty允许在我的网站上使用不同的语言,到目前为止效果还不错。我将文本存储在不同部分的配置文件中 但也有这样的句子: “你有6封新邮件!”,这将是德语“Sie haben 6封新邮件!” 现在,数字前面和后面都有文本,这是从数据库中加载的。我想把它放到配置文件中,然后自己加载这个数字 所以我在我的“text.conf”中有这个 在我的“show_text.php”中 这样的事情可能吗?也许用Smarty 3.0 提前感谢,, BH我现在没有Smarty来测试这一点,但是如果您在配置条目
BH我现在没有Smarty来测试这一点,但是如果您在配置条目中正确声明变量,它应该可以工作,例如:
ail_count = "You have {$NUMBER} new mails!"
您可以使用sprintf sintax。这个例子来自一个类似寻呼机的东西:
results = "Results %s to %s of %s total"
{#results#|sprintf:$start:$end:$total}
我刚试过这个,效果很好,但是很难看
- 创建一个文件“number.tpl”,其中包含
- 在conf文件中,如下所示
我猜这是因为smarty变量只在tpl文件中工作。读取配置文件时,需要使用
$cfg = $smarty->fetch('path/to/file');
在这之后,$cfg变量中的所有文件内容都被替换了{$NUMBER}。没有,遗憾的是没有。我已经试过了,输出是“youhave{$NUMBER}new mails!”这有点有效,但仍然没有达到预期效果:您仍然需要添加这个sprintf内容,并且不能直接将变量提供给smarty。我已经找到了一个与此类似的解决方案,但将使用“replace”而不是“sprintf”。无论如何谢谢你!这对我来说根本不起作用,内部include没有执行,我得到的是文本“youhave{include file='number.tpl'}new mails!”我正在firefox浏览器中运行show_text.php文件。你在这么做吗?
results = "Results %s to %s of %s total"
{#results#|sprintf:$start:$end:$total}
$cfg = $smarty->fetch('path/to/file');