我对所有内容进行了双重和三重检查,并对文档进行了双重和三重阅读,但我的Joomla插件拒绝从语言文件中读取。
我的xml文件配置如下:
<files>
<filename plugin="fruits">fruits.php</filename>
<folder>language</folder>
</files>
<languages>
<language tag="en-GB">language/en-GB/en-GB.plg_fruits.ini</language>
<language tag="de-DE">language/de-DE/de-DE.plg_fruits.ini</language>
</languages>
<config>
<fields name="params">
<fieldset name="basic">
<field
name="default_fruits"
type="integer"
default="An Integer"
label="JFIELD_PLG_FRUITS_DEFAULT_LABEL"
description="JFIELD_PLG_FRUITS_DEFAULT_DESC"
first="0"
last="10"
step="1"
/>
</fieldset>
</fields>
</config>
version
上的<extension>
属性设置为3.6。
在插件目录中,我有一个名为“language”的文件夹,其中包含两个子文件夹(“de-DE”和“en-GB”),这些文件夹包含文件de-DE.plg_fruits.ini
和en-GB.plg_fruits.ini
分别
在这些文件中,它分别表示:
JFIELD_PLG_FRUITS_DEFAULT_LABEL="Apple" // "Apfel"
JFIELD_PLG_FRUITS_DEFAULT_DESC="Text" // "Text"
正如我所说,我找不到错误。当我打开Joomla的语言调试器时,它告诉我:
**Not loaded** : JROOT/administrator/language/en-GB/en-GB.plg_fruits_fruits.ini
**Not loaded** : JROOT/plugins/age/age/language/en-GB/en-GB.plg_fruits_fruits.ini
我没有得到解析错误,但当我将文件重命名为en-GB.plg_fruits_fruits.ini
时,它为文件的每一行提供了一个解析错误,但同时告诉我文件还没有加载。
我还在php文件中尝试了protected $autoloadLanguage = true;
(对于基本的Joomla设置,它是空的)并且它不会影响任何东西。
答案 0 :(得分:1)
应使用UTF-8 encoding
保存Joomla语言文件。您必须使用支持UTF-8 without BOM
的文件编辑器,例如notepad++
(免费)或任何其他编辑器。 PHP ini解析器允许你省略值周围的双引号,但在Joomla中你不能省略双引号。这是强制性的。避免在语言文件中注释。此链接将为您提供良好的参考https://docs.joomla.org/Creating_a_language_definition_file