smarty 注册函数使用初体验

最近有一个把系统通过语言包转换成越南语的需求,之前系统没做过任何多语言的支持,为了简化工作量,尝试把中文作为smarty的key
来传递值,调用方式为{$测试},发现这样不行,查看了smarty的help,发现可以有个注册函数的方法,试验了一下,
<?
require_once SYSDIR."global.inc.php";
//把php语言翻译函数translater注册为smarty函数lang
$smarty-> register_function("lang",'translater');
/**
*语言转换
*/
function translater($word){
    global $LANGUAGE_CONFIG;
    $cnt = "";
    extract($word);//处理参数,word从smarty过来会是一个数组,内容为lang的属性k-v结构
    $lang = $cnt;
    $result = $LANGUAGE_CONFIG[$lang];
    if(empty($result)){
        $result = $cnt;
    }
    echo $result;
}
 
=======================================
TPL调用:
<title>{lang cnt="这里是个测试标题"}</title>
 
=======================================
语言包结构:
<?
global $LANGUAGE_CONFIG;
$LANGUAGE_CONFIG['这里是个测试标题']="this is the test title";




原文地址:https://www.cnblogs.com/firmy/p/2782021.html