Joomla |模块国际化|新开发者

时间:2012-08-31 07:47:20

标签: joomla joomla-extensions

我尝试在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”而不是“Module ID”

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

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

4 个答案:

答案 0 :(得分: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”

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

答案 1 :(得分:2)

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

签入管理员/ languages / en-GB /

您也可能需要更改xml中提到的语言文件的方式。

请查看此链接以获取更详细的说明

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

答案 2 :(得分:1)

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

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

答案 3 :(得分: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 =“这是我的mod”

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