0

我尝试在 Joomla 中创建一个非常简单的模块。虽然我的整个代码是正确的,并且模块工作正常,但我不能让它支持 I18n 功能。

更具体地说,我的模块目录是这样的:

mod_mymodname:
    languages:
        en-GB.mod_mymodname.ini
    mod_mymodname.php
    mod_mymodname.xml

然后在我的 mod_mymodname.xml 我有那个代码:

<?xml version="1.1" encoding="utf-8"?>
<extension type="module" version="2.5.0" client="site">
    <name>MyModName</name>
    ... Other Options ...
    <files>
        <filename module="mod_mymodname">mod_mymodname.php</filename>
        <filename>mod_mymodname.xml</filename>
    </files>
    <languages folder="languages">
        <language tag="en-GB">en-GB.mod_mod_mymodname.ini</language>
    </languages>
    <config>
        <fields name="params">
            <fieldset name="basic">
                <field name="modid" size="50" type="text" label="MODID" description="Description here" />
            </fieldset>
        </fields>
    </config>
</extensions>

我的 en-GB.mod_mymodname.ini 里面有那个内容

MODID=Module ID

问题是在我的管理部分中,字段标签的值是“MODID”而不是“模块 ID”

这有什么问题吗?是我的第一个 Joomla 模块,我不确定一切是否正确。

注意:该模块不需要在前端进行任何翻译。管理部分只需要I18n。

4

4 回答 4

2

确保您在语言文件中提到了正确的 MODID 文本。

en-GB.mod_mymodname.ini ---> This file was used for declaring the text what we given in that module
  • 只需在en-GB.mod_mymodname.ini这个语言文件中添加以下行。

MODID="模块ID"

保存并检查模块..希望这会工作....

于 2012-08-31T07:53:04.980 回答
2

语言文件需要在 joomla 语言文件夹中。如果您从管理员安装了模块,请检查语言文件夹并检查您的文件是否存在。

签入管理员/语言/en-GB/

此外,您可能必须更改在 xml 中提到语言文件的方式。

看看这个链接以获得更详细的描述

http://docs.joomla.org/Specification_of_language_files#Language_file_naming_conventions_and_precedence

于 2012-08-31T08:26:11.670 回答
1

确保您还有 en-GB.mod_mymodname.sys.ini 用于翻译来自 xml 的文本。

我也想到了别的东西。似乎确实存在一个已知问题,只有当语言文件位于主语言文件夹而不是扩展语言文件夹中时,才会翻译 xml 中的某些字符串。所以我通常把副本放在两个地方,即使将扩展文件放在核心文件夹中被认为是不好的做法。

于 2012-08-31T10:11:17.890 回答
1

首先添加你的 module.xml 语言标签

<languages folder="languages">
    <language tag="fr-FR">fr-FR.mod_mod_mymodname.ini</language>
    <language tag="fr-FR">fr-FR.mod_mod_mymodname.sys.ini</language>
</languages>

然后在您的模块语言文件夹中创建两个新文件 fr-FR.mod_mod_mymodname.ini fr-FR.mod_mod_mymodname.sys.ini 在 .ini 文件中添加要翻译的文本,例如 MOD_MYMODULE_USERNAME="this is my mod"

然后将此常量值添加到您的模块 default.php 文件中,例如
JText::_ ('MOD_MYMODULE_USERNAME')

于 2012-10-05T04:09:17.410 回答