【发布时间】:2014-03-05 04:02:37
【问题描述】:
我正在创建应与相关插件一起安装的 Joomla 2.5 组件。因此我使用这里描述的“包”的概念:http://docs.joomla.org/Package
我的问题是:如何实现安装后显示的可翻译文本?
如果您查看我的 package-xml-file,我想翻译占位符 MY_PACKAGE_DESCRIPTION。
<?xml version="1.0" encoding="utf-8"?>
<extension version="2.5" type="package">
<name>My Package</name>
<author></author>
<creationDate>January 2014</creationDate>
<packagename>mycomponent</packagename>
<copyright>©2014</copyright>
<url></url>
<version>1.0.0</version>
<packager></packager>
<packagerurl></packagerurl>
<description>MY_PACKAGE_DESCRIPTION</description>
<update></update>
<scriptfile>installer.php</scriptfile>
<files folder="packages">
<file type="component" id="com_mycomponent" >com_mycomponent.zip</file>
<file type="plugin" id="myplugin" group="quickicon">plg_quickicon_myplugin.zip</file>
</files>
<languages folder="language">
<language tag="en-GB">en-GB.pkg_mypackage.sys.ini</language>
<language tag="de-DE">de-DE.pkg_mypackage.sys.ini</language>
</languages>
</extension>
我尝试为包创建专用语言文件,但在安装过程中既没有引用这些文件,也没有引用我的组件或插件的语言文件。
解决方案
我终于让一切都按预期工作了。您必须非常小心 XML 元素的命名以及文件的命名和位置。
像 cppl 指出包名需要反映在语言文件的名称中。此外,Joomla 似乎需要在确切位置(相对于您的 zipfile 中的根路径)中的语言文件:
language/[language tag]/[language file]
所以最后这确实奏效了:
<packagename>mypackage</packagename>
...
<languages folder="language">
<language tag="en-GB">en-GB/en-GB.pkg_mypackage.sys.ini</language>
<language tag="de-DE">de-DE/de-DE.pkg_mypackage.sys.ini</language>
</languages>
我也在努力让安装程序脚本在包安装期间运行。
<scriptfile>installer.php</scriptfile>
按照 Joomla 命名约定,安装程序类的正确命名必须是
class pkg_mypackageInstallerScript {
...
}
最后,可安装的ZIP-Package中对应的文件夹结构如下:
pgk_mypackage.xml
installer.php
packages/com_mycomponent.zip
packages/plg_quickicon_myplugin.zip
language/de-DE/de-DE.pkg_mypackage.sys.ini
language/en-GB/en-GB.pkg_mypackage.sys.ini
【问题讨论】:
标签: joomla package joomla-extensions