Discuz!X/插件语言文件
开发中的插件语言文件
给插件创建语言包首先需要创建一个 data/plugindata/identifier.lang.php 文件,文件内容中包含 3 个数组,如下
<?php $scriptlang['identifier'] = array( 'english' => 'chinese', ... ); $templatelang['identifier'] = array( 'english' => 'chinese', ... ); $installlang['identifier'] = array( 'english' => 'chinese', ... ); ?>
$scriptlang 为程序脚本文件的语言包,$templatelang 为模版文件的语言包,$installlang 为安装、升级、卸载脚本用的语言包。 如果插件不涉及某些类型的语言文字,变量可忽略。然后在插件基本设置中开启语言包选项后即可。
插件语言包调用语言包
模版中调用模板文件语言包,通过 {lang identifier:english} 方式调用。 程序脚本中调用脚本文件语言包,通过 lang('plugin/identifier', 'english') 方式调用。 安装脚本中调用安装脚本文件语言包,通过 $installlang 变量直接获取。如 $installlang['english']。
插件语言包导出 创建好的语言包在插件导出后会自动导出到 XML 文件中,供插件作者转码后发放多编码版本的插件。如上例中导出的 XML 中会包含以下内容:
<item id="language"> <item id="scriptlang"> <item id="english"><![CDATA[chinese]]></item> </item> <item id="templatelang"> <item id="english"><![CDATA[chinese]]></item> </item> <item id="installlang"> <item id="english"><![CDATA[chinese]]></item> </item> </item>
data/plugindata/identifier.lang.php 文件不必在插件发布的时候导出,此文件仅供插件设计者模式时使用。
插件模板
插件的模板统一放置到 source/plugin/identifier/template 目录下,程序脚本通过以下语句调用插件模板文件,如下例,调用 source/plugin/identifier/template/test.htm include template('identifier:test'); 模版中调用插件模版通过以下方法: {template identifier:test}
已经安装的插件怎么修改语言文件
在 common_syscache 表里,有几个 cname 为 pluginlanguage_* 的记录,记录了各个插件的安装、脚本、模板、系统的语言文件,如果需要修改,就需要修改中间的值。