Discuz! X3.4加载语言包lang()函数,实例代码解析

1900

作者可信度 可信 不可信 举报

当前可信0%暂未有人投票/暂未有人投票(人数)

收藏(0) (0)

查看: 19|回复: 0
打印 上一主题 下一主题

[函数详解说明] Discuz! X3.4加载语言包lang()函数,实例代码解析

[复制链接]

34

主题

48

帖子

874

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
874
跳转到指定楼层
楼主
//lDiscuz! X 加载语言包 lang() 函数,上个简单的例子,可能你找了很久都没找到,我也是。
函数构造:
function lang($file, $langvar = null, $vars = array(), $default = null)

参数说明:


/**
* 加载语言
* @param $file - 语言文件,可包含路径如 forum/xxx home/xxx
* @param $langvar - 语言文字索引
* @param $vars - 变量替换数组
* @return 语言文字
*/


此函数可加载 Discuz! X 中的所有语言包。
$file 如果写成不包含路径的文件,则代表 source/language 目录下的文件。

如果包含目录,如 'forum/misc',则代表 source/language/forum/lang_misc.php 文件。
如果写成 plugin/插件id,则会读取插件的语言包文件,即 data/plugindata/lang_plugin.php,此文件是根据安装并启用的插件缓存后生成的。



任何语言内容均可增加可替换的变量
如语言包内容为“你好 {username}”
那么 $vars = array('username' => $username) 时,{username} 会显示成 $username 变量的值。
当插件语言包文件(data/plugindata/lang_plugin.php)内容为:







  1. $lang = array (
  2. ??'test' =>
  3. ??array (
  4. ? ? 'name' => '创牛网',
  5. ??),
  6. );
  7. ?>
复制代码

以下代码可调用“创牛网”三字
  1. echo lang(‘plugin/test’, ‘name’);
复制代码

比如我要加载一个语言包在source/language/lang_cnzaz.php 这个 lang_cnzaz.php是我自定义的。(注意到基本上语言包文件全部在主目录的source/language这个文件夹里)
在需要加载的PHP文件加写入以下代码
  1. lang(‘cnzaz’);
  2. $lang = & $_G['lang']['cnzaz];
  3. print_R($lang);
复制代码
这样就可以打印出$lang所有数组值。希望能解决你的问题。

下面讲讲lang() 这个函数在哪里

  1. \source\function\function_core.php
复制代码


查找
  1. function lang($file, $langvar = null, $vars = array(), $default = null) {
复制代码


就可以找到这个函数了。



温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
这里是快捷回复,赶紧试试哦:感谢 支持 不错 无奈 一般 生气 回帖 路过 顶帖
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

!ctb_pusthd! !ctb_last! !ctb_next! 快速回复 !ctb_sctz! !ctb_rtlist! !ctb_kfzx! 搜索 !ctb_qqq!
快速回复 返回顶部 返回列表