我有一个多语言的网站(使用Smarty模板)。所有语言都在不同的lang.ini文件中。 例如。: lang / eng / lang.ini :(英文)
WELCOME = "Welcome"
lang / hun / lang.ini :(匈牙利语)
WELCOME = "Üdvözöllek"
然后在index.php中:
...
$error=array();
if($condition!=$condition2)
{
$error1 = "This is an error msg";
array_push($error, $error1);
}
...
$this->tpl->assign('error', $error);
$lang_file=parse_ini_file("lang/". $_SESSION["lang_folder"] ."/lang.ini",true);
$this->tpl->assignByref("lang",$lang_file);
$this->tpl->display('index.tpl');
最后在index.tpl:
...
{$lang.WELCOME}
<br />
{if isset($error) && $error ne "" }
{foreach $error as $error_list}
{$error_list}
{/foreach}
{/if}
...
现在欢迎可以以不同的语言显示(会话中存储的路径)。 但$ error只出现一种语言,只打印出它的值。 如何根据选择的语言打印出来?我应该在哪里为$ error添加值?
答案 0 :(得分:1)
检测到错误时,不要将英文字符串推入数组,而是从INI文件中推送要检索的代码:
if($condition!=$condition2)
{
array_push($error, 'ERROR_ONE');
}
然后在Smarty中,使用普通数组访问语法将其用作$lang
数组中的键:
{foreach $error as $error_code}
{$lang[$error_code]}
{/foreach}