老宋的地盘

 找回密码
 我要加入
搜索
老宋 首页 文章 技术 查看内容

创建插件语言包

2021-7-20 20:36| 发布者: herosrx| 查看: 460| 评论: 0

摘要: 自己的理解:插件读取字段名称时,通过语言包和数据库字典两种方式读取。1、语言包可随时读取,一般只在开发时使用,正式使用时没有语言包,2、语言包的内容会放在插件根目录的xml文件中,安装时写入数据库,程序从 ...
自己的理解:
插件读取字段名称时,通过语言包和数据库字典两种方式读取。
1、语言包可随时读取,一般只在开发时使用,正式使用时没有语言包,
2、语言包的内容会放在插件根目录的xml文件中,安装时写入数据库,程序从数据库中读取。
因此,如果xml文件中没有语言包相关内容,安装后,页面上会出现很多乱码。

创建语言包
  • 给插件创建语言包首先需要创建一个 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 文件不必在插件发布的时候导出,此文件仅供插件设计者模式时使用。



路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

歌名 - 歌手
0:00

    QQ|手机版|小黑屋|老宋 ( 备案中... )

    GMT+8, 2024-3-29 04:59 , Processed in 0.052366 second(s), 27 queries , Gzip On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    返回顶部