Joomla模块:如何从XML模块文件中读取ini语言字符串?

时间:2013-08-22 16:09:38

标签: joomla joomla1.5 joomla-extensions

mod_modulo.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
    <name>**EXTNAME**</name> 
    <description>**EXTDESCR**</description>
    <files>
    .
    .
    .
    </files> 
    <languages>
        <language tag="en-US">languages/en-US.mod_modulo.ini</language>
        <language tag="es-ES">languages/es-ES.mod_modulo.ini</language>
    </languages>
</install>

ES-ES.mod_modulo.xml:

EXTNAME=Mi modulo
EXTDESCR=Descripcion de mi modulo va aqui

我正在使用Joomla!1.5来开发模块,因为我认为较新版本的Joomla与较旧的模块兼容。无论如何,问题是:如何将mod_module.xml中 name description 的值设置为相应语言文件中的字符串?

2 个答案:

答案 0 :(得分:1)

Joomla 1.5的组件安装清单定义包括管理员界面语言文件的一节:

...
<administration>
    <languages folder="administrator/language/">
        <language tag="en-GB">en-GB/en-GB.com_my.ini</language>
        <language tag="es-ES">es-ES/es-ES.com_my.ini</language>
    </languages>
</administration>
...

但是,此规范不适用于该版本的模块。

不再提供J1.5清单文件使用的文档类型定义。

Thant之所以我不确定是否将语言文件复制到admin部分的文件夹是一个错误或是否由设计完成。在卸载过程中删除它们表明它确实是一个错误。

的Joomla! v1.5模块安装由libraries/joomla/installer/adapters/module/php执行。

此文件在安装期间未访问此节点,但在卸载期间将其删除,删除它:

$this->parent->removeFiles($root->getElementByPath('administration/languages'), 1);

你能做什么?

2.5和3.x中的旧版程序包支持需要妥协。我个人会反对它,因为它削弱了你的设计。

有了,你可以写一个Joomla! 2.5+模块,或者你可以尝试破解你的方式,这不会很漂亮。模块没有事件具有安装脚本,因此您甚至无法在模块安装过程中复制语言文件。

首先想到的是在第一次调用控制器时将语言文件复制到管理员文件夹。

希望所有这一切都能说服你(和任何阅读这篇文章的人)切换到现在的Joomla!版本

答案 1 :(得分:0)

试试这个,

在您的xml文件中

<languages>
    <language tag="en-US">languages/en-US.mod_modulo.ini</language>
    <language tag="es-ES">languages/es-ES.mod_modulo.ini</language>
</languages>
你的mod_modulo.ini文件中的

EXTNAME="Mi modulo"
EXTDESCR="Descripcion de mi modulo va aqui"
你的default.php文件中的

有。

echo "Name :".JText::_('EXTNAME');
echo "Description:".JText::_('EXTDESCR');

希望它能帮到你..