下面分享我的方法,如果你有更好的,也感谢您的分享!
14-02-12 15:28 根据官方git版本改进:多语言文件变量写法由{format}改成{$format}
-------------------------------------------------------------------------------
先附注模板使用方法:
{:L('FILE_FORMAT',array('format' => 'Jpeg, Jpg','maximum' => '3MB'))}Lang文件夹多语言文件写法:中文
'FILE_FORMAT' => '文件格式要求: {$format}; 最大文件大小: {$maximum}'英文'FILE_FORMAT' => 'File Format: {$format}; Maximum File Size: {$maximum}'得到的结果

接下来最主要的是更改的L函数了
/**
* 获取和设置语言定义(不区分大小写)
* @param string|array $name 语言变量
* @param string $value 语言值
* @return mixed
*/
function L($name=null, $value=null) {
static $_lang = array();
// 空参数返回所有定义
if (empty($name))
return $_lang;
// 判断语言获取(或设置)
if(is_array($value)){
$replace = array_keys($value);
foreach($replace as &$v){
$v = '{$'.$v.'}';
}
return str_replace($replace,$value,(isset($_lang[$name]) ? $_lang[$name] : $name));
}else{
// 若不存在,直接返回全大写$name
if (is_string($name)) {
$name = strtoupper($name);
if (is_null($value))
return isset($_lang[$name]) ? $_lang[$name] : $name;
$_lang[$name] = $value; // 语言定义
return;
}
}
// 批量定义
if (is_array($name))
$_lang = array_merge($_lang, array_change_key_case($name, CASE_UPPER));
return;
}简单吗? 最佳答案