新增系统函数
DISCUZ_PLUGIN()
X5.0 中新增了DISCUZ_PLUGIN() 函数,代替类似”/source/plugin/xxx”目录的写法,例如:
DISCUZ_TEMPLATE()
X5.0 中新增了DISCUZ_TEMPLATE() 函数,代替类似”/template/xxx”目录的写法,例如:
新增系统常量
DISCUZ_DATA
X5.0 中新增了DISCUZ_DATA 常量,代替类似”/data”目录的写法,例如:
DISCUZ_DATA 目录禁止写入永久文件,否则审核员有权将应用打回。
DISCUZ_ROOT_STATIC
对于 Discuz!,由于/data 目录禁止写入,您可以把永久文件写入到此目录中,它有以下特性:
- 此目录与
DISCUZ_ROOT意义相同,但只有存放的静态文件(md、txt、js、css、json、xml、图片等)可对外展示。 - 如保存的文件和实际产品文件及路径相同,不会产生覆盖效果,也不会对外展示。
- 此目录占用的空间将计算到 Discuz! 用户的平台存储中。
DISCUZ_ROOT 相等。
多语言
Discuz! 原生支持多语言内核,您只需自定义多语言 key 并设置此 key 对应的语言包文件路径即可。设置自定义语言
mylang 的语言包文件路径为 DISCUZ_ROOT.'/i18n/en' 目录,支持插件路径。
读取设置的自定义语言列表
$_G['cookie']['i18n'] 即可实时切换语言。
语言包文件
X5.0 的插件文件中可以直接写语言包文件,而不必写在 XML 中。之前写在 XML 中的语言包在更新缓存后会自动写入到语言包文件中。 语言包文件位于/source/plugin/myplugin/i18n/SC_UTF8/lang_plugin.php:
name、license、description、intro、copyright、version、var.title、var.description、var.extra、modules.menu 可以写进 $installlang 中。
同时,语言包也兼容 i18n,可以针对相应的 i18n 语言定制额外语种的语言包。兼容 i18n 的语言包文件位为 /source/plugin/myplugin/i18n/en/lang_plugin.php。我们统一约定用 2 个字母的缩写代表各个语言,例如 en、de、fr 等等。
JS 语言包
JS 语言包为 X5.0 新增的语言包类型,文件名为lang_js.php,默认语言包位于 /source/plugin/myplugin/i18n/SC_UTF8/ 目录下。
语言包内容参考以下格式:
common.js 的页面中,在您的 JS 文件中通过 $L('jslang') 方式调用 JS 语言包: