找回密码
 立即注册
搜索
查看: 8|回复: 0

[插件机制] Discuz! 的插件机制- 模板和插件语言包

[复制链接]

59

主题

0

回帖

196

积分

管理员

积分
196
发表于 4 天前 | 显示全部楼层 |阅读模式
插件语言包创建语言包
给插件创建语言包首先需要创建一个 data/plugindata/identifier.lang.php 文件,文件内容中包含 4 个数组,如下:
  • <?php
  • $scriptlang['identifier' = array(
  •   'english' => 'chinese',
  •   ...
  • );
  • $templatelang['identifier' = array(
  •   'english' => 'chinese',
  •   ...
  • );
  • $installlang['identifier' = array(
  •   'english' => 'chinese',
  •   ...
  • );
  • $systemlang['identifier' = array(
  •   'file' => array(
  •      'english' => 'chinese',
  •      ...
  •   ),
  •   ...
  • );
  • ?>
  • $scriptlang 为程序脚本文件的语言包。
  • $templatelang 为模版文件的语言包。
  • $installlang 为安装、升级、卸载脚本用的语言包。
  • $systemlang 为系统语言包(Discuz! X3 新增)。
  • 如果插件不涉及某些类型的语言文字,变量可忽略。
然后在插件基本设置中开启语言包选项后即可。
调用语言包
模版中调用模板文件语言包,通过 {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 id="systemlang">
  •         <item id="file">
  •             <item id="english"><![CDATA[chinese]]></item>
  •         </item>
  •     </item>
  • </item>
data/plugindata/identifier.lang.php 文件不必在插件发布的时候导出,此文件仅供插件设计者模式时使用。
插件模板
插件的模板统一放置到 source/plugin/identifier/template 目录下,程序脚本通过以下语句调用插件模板文件,如下例,调用 source/plugin/identifier/template/test
  • include template('identifier:test');
模版中调用插件模版通过以下方法:
  • {template identifier:test}
模板的编写详见:模板创建、解析原理详解


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|徐闹闹 ( 苏ICP备2024071704号-4|苏公网安备32108402000796号 | 电子营业执照亮照 )

GMT+8, 2025-7-17 22:43 , Processed in 0.134084 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表