我尝试在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。
答案 0 :(得分:2)
确保在语言文件中提到了正确的MODID文本。
en-GB.mod_mymodname.ini ---> This file was used for declaring the text what we given in that module
MODID =“模块ID”
保存并检查模块..希望这会起作用....
答案 1 :(得分:2)
语言文件需要在joomla语言文件夹中。如果您已从admin安装模块,请检查语言文件夹并检查您的文件是否存在。
签入管理员/ languages / en-GB /
您也可能需要更改xml中提到的语言文件的方式。
请查看此链接以获取更详细的说明
答案 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')