【问题标题】:Joomla Module: How to read ini language strings from XML module file?Joomla 模块:如何从 XML 模块文件中读取 ini 语言字符串?
【发布时间】:2013-08-25 11:52:34
【问题描述】:

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中的namedescription的值设置为对应语言文件中的字符串?

【问题讨论】:

  • 不要使用 Joomla 1.5 标准来开发。 Joomla 1.5 很旧,不受支持,人们应该继续使用它,语言文件也会发生变化

标签: joomla joomla1.5 joomla-extensions


【解决方案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 清单文件使用的 Document 类型定义。

这就是为什么我不确定无法将语言文件复制到管理部分的文件夹是错误还是设计使然。在卸载过程中删除它们表明它确实是一个错误。

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!版本。

【讨论】:

  • 那么,换句话说,J1.5 XML 清单文件是不可国际化的?
【解决方案2】:

试试这个,

在你的 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');

希望对你有所帮助..

【讨论】:

  • 您的代码在从 PHP 而不是清单 XML 调用时检索字符串
猜你喜欢
  • 2014-02-15
  • 2014-04-16
  • 2016-10-18
  • 2014-10-27
  • 1970-01-01
  • 2012-08-15
  • 2019-06-22
  • 2021-12-20
  • 1970-01-01
相关资源
最近更新 更多