如何加载第三方Joomla扩展的语言文件?

时间:2013-07-02 04:13:05

标签: joomla

加载位于管理员应用中的语言文件的常规方法如下:

$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR);

并从网站应用加载语言文件:

$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_SITE);

这些方法分别从/administrator/language/language加载语言文件。

目前,我需要从一个模块加载一个语言文件,该模块在/modules/mod_foo/language找到它的语言文件。我该怎么做?

3 个答案:

答案 0 :(得分:5)

好的,就像将JPATH_SITE替换为模块的完整路径一样简单:

$language = JFactory::getLanguage();
$language->load('mod_foo', JPATH_SITE.'/modules/mod_foo');

这当然假定您要加载的语言文件位于:

/modules/mod_foo/language/xx-XX/xx-XX.mod_foo.ini

在发布问题之前我曾经尝试过这个问题,但由于愚蠢的错误而无法正常工作。

答案 1 :(得分:0)

也许版本或文件位置不同,但在Joomla3.8.x中,Mark Simpson的回答对我来说并不适用于组件。以下做了:

$lang = JFactory::getLanguage();
$extension = 'com_example';
$base_dir = JPATH_SITE;
$language_tag = 'en-GB';
$reload = true;
$lang->load($'com_example', $base_dir, $language_tag, $reload);

答案 2 :(得分:0)

$language = JFactory::getLanguage();
$boolan = $language->load('filename', JPATH_SITE);

我使用3.9.14版进行了测试,它可以工作,因为所有语言都在路径语言中。

文件名是com_name, mod_name, lib_nametpl_name,文件名的第一部分带有语言标签。语言标签将通过加载功能添加。

所以我的组件使用两种语言文件。 com_namecom_name_specialcom_name应该由系统加载,但是我的com_name_special需要由额外的加载功能加载。