
代码function lang($file, $langvar = null, $vars = array(), $default = null) {
echo $file.':'.$langvar.':';
global $_G;
$fileinput = $file;
list($path, $file) = explode('/', $file);
if(!$file) {
echo('1-');
$file = $path;
$path = '';
}
if(strpos($file, ':') !== false) {
echo('2-');
$path = 'plugin';
list($file) = explode(':', $file);
}
if($path != 'plugin') {
echo('3-');
$key = $path == '' ? $file : $path.'_'.$file;
if(!isset($_G['lang'][$key])) {
echo('31-');
include DISCUZ_ROOT.'./source/language/'.($path == '' ? '' : $path.'/').'lang_'.$file.'.php';
var_dump(DISCUZ_ROOT.'./source/language/'.($path == '' ? '' : $path.'/').'lang_'.$file.'.php');
$_G['lang'][$key] = $lang;
}
if(defined('IN_MOBILE') && !defined('TPL_DEFAULT')) {
echo('32-');
include DISCUZ_ROOT.'./source/language/mobile/lang_template.php';
$_G['lang'][$key] = array_merge($_G['lang'][$key], $lang);
}
if($file != 'error' && !isset($_G['cache']['pluginlanguage_system'])) {
echo('33-');
loadcache('pluginlanguage_system');
}
if(!isset($_G['hooklang'][$fileinput])) {
echo('34-');
if(isset($_G['cache']['pluginlanguage_system'][$fileinput]) && is_array($_G['cache']['pluginlanguage_system'][$fileinput])) {
$_G['lang'][$key] = array_merge($_G['lang'][$key], $_G['cache']['pluginlanguage_system'][$fileinput]);
}
$_G['hooklang'][$fileinput] = true;
}
$returnvalue = &$_G['lang'];
} else {
echo('4-');
if(empty($_G['config']['plugindeveloper'])) {
loadcache('pluginlanguage_script');
} elseif(!isset($_G['cache']['pluginlanguage_script'][$file]) && preg_match("/^[a-z]+[a-z0-9_]*$/i", $file)) {
if(@include(DISCUZ_ROOT.'./data/plugindata/'.$file.'.lang.php')) {
$_G['cache']['pluginlanguage_script'][$file] = $scriptlang[$file];
} else {
loadcache('pluginlanguage_script');
}
}
$returnvalue = & $_G['cache']['pluginlanguage_script'];
$key = &$file;
}
$return = $langvar !== null ? (isset($returnvalue[$key][$langvar]) ? $returnvalue[$key][$langvar] : null) : $returnvalue[$key];
$return = $return === null ? ($default !== null ? $default : $langvar) : $return;
$searchs = $replaces = array();
if($vars && is_array($vars)) {
echo('5-');
foreach($vars as $k => $v) {
$searchs[] = '{'.$k.'}';
$replaces[] = $v;
}
}
if(is_string($return) && strpos($return, '{_G/') !== false) {
echo('6-');
preg_match_all('/\{_G\/(.+?)\}/', $return, $gvar);
foreach($gvar[0] as $k => $v) {
$searchs[] = $v;
$replaces[] = getglobal($gvar[1][$k]);
}
}
$return = str_replace($searchs, $replaces, $return);
echo('7</br>');
return $return;
}

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2016-10-31 SQL Server2008 with(lock)用法
2016-10-31 SQL Server2008 MERGE指令用法
2016-10-31 SQL Server2008 表旋转(pivot)技术