joomla(2.5)系统插件安装时加载语言文件

2024-01-05

在安装系统插件(在 Joomla 2.5 中)期间,我很难显示本地化字符串。 xml 文件中本地化字符串的“正常”方式似乎不起作用(请参阅另一个问题:基于语言的安装描述 https://stackoverflow.com/questions/11601867/language-based-installation-description).

我现在尝试了那里提出的方法,通过安装脚本显示描述。这种工作原理(我可以成功回显文本),但是,我也无法在那里本地化 - 调试语言时,它显示plugin.sys.ini尚未加载;我尝试手动加载该文件,但加载任何插件语言文件都没有成功。 这是我到目前为止得到的(在名为 setupscripts.php 的文件中):

<?php // no direct access
defined('_JEXEC') or die('Restricted access');

class plgsystemmyplgnameInstallerScript {

    static function loadLanguage() {
        $lang =& JFactory::getLanguage();
        $lang->load('plg_system_myname', JPATH_ADMINISTRATOR);
    }

    function install($parent)
    {
        self::loadLanguage();
        echo JTEXT::_("PLG_MYNAME_TEST_TEXT");
    }
    function uninstall($parent)
    {
        self::loadLanguage();
        echo JText::_('PLG_MYNAME_UNINSTALL_TEXT');
    }
    function update($parent)
    {
        self::loadLanguage();
        echo JText::_('PLG_MYNAME_UPDATE_TEXT');
    }
    function preflight($type, $parent) {}
    function postflight($type, $parent) {
        self::loadLanguage();
        echo JText::_('PLG_MYNAME_INSTALL_TEXT');
    }
}

但我只得到??PLG_MYNAME_TEST_TEXT?? ??PLG_MYNAME_INSTALL_TEXT?? (语言调试已打开)在安装过程中...奇怪的是,页面底部“未翻译的字符串”下的语言调试功能显示“无”(如果不是来自尝试但失败的问号来自哪里)翻译???)。

尝试了它的一些变体(插件名称末尾带有 .sys,因为我实际上认为设置字符串应该位于 .sys.ini 文件中,没有第二个参数(保留默认值),但没有运气 - 没有错误,日志中没有任何内容(事实上我的日志文件不存在,可能还没有条目?可以用 Joomla 设置日志级别吗?)。但从来没有加载任何文件(“加载的语言文件”下没有任何变化) 。

有人知道如何正确加载语言吗?

在安装过程中加载语言时有什么特别需要考虑的吗?为什么加载语言失败没有错误信息?我是否必须将语言文件安装到特殊位置才能在安装过​​程中识别它们?我当前的 xml 如下所示:

<extension version="2.5" type="plugin" group="system" method="upgrade">
<name>PLG_MYNAME</name>
<!-- ... author, copyright, version, .. --> 
<scriptfile>setupscripts.php</scriptfile>
<files>
    <filename plugin="myname">myname.php</filename>
    <filename>setupscripts.php</filename>
    <filename>index.html</filename>
    <folder>sql</folder>
</files>
<!-- ... install->sql->file ... -->
<!-- ... uninstall->sql->file ... -->
<!-- ... update->schemas->schemapath ... -->
<languages [folder="admin"]>
   <language tag="en-GB">en-GB.plg_system_myname.ini</language>
   <language tag="en-GB">en-GB.plg_system_myname.sys.ini</language>
   <!-- ... other languages ... -->
</languages>
<!-- ... config->fields->fieldset->field ... -->
</extension>

(文件夹=“admin”周围的方括号应该表明我尝试过使用和不使用此属性。它不会改变任何内容)。


仅当您还将文件复制到管理语言文件夹时,它才适用于安装。如果您查看核心扩展,您会发现它们两者兼而有之。这确实是一个错误,但这就是解决方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

joomla(2.5)系统插件安装时加载语言文件 的相关文章