joomla 2.5 standalone php JText :: _()无效

时间:2013-01-15 13:24:03

标签: php joomla module

我有一个生成图像的独立文件,我包含了joomla框架。该文件在页面上显示为图像。 $ _SESSION为空,getUser返回NULL。 JText不知道要加载什么module.language文件,并且知道用户的默认语言。如何访问此信息/对象?

我的代码:

//define constant
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR ); 

//joomla installation
define( 'JPATH_BASE', '../..' );

//include joomla core files
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );

$echo = JText::_("MOD_MYMODULE_TEXT");

header("Content-type: image/png");
Graph::render($echo);

2 个答案:

答案 0 :(得分:1)

使用它:

$lang =& JFactory::getLanguage();
$lang->load('mod_sample',JPATH_ROOT,'fa-IR');

或起诉,自动检测郎:

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

$lang =& JFactory::getLanguage();
$lang->load('mod_sample',JPATH_ROOT);

答案 1 :(得分:0)

如果您一直在使用某个组件并且已成功使用JText::,并且最近您创建了一个插件,并且令您惊讶JText::课程无法正常工作,请阅读以下内容。< / p>

插件使用自己的语言文件。要根据Joomla! 3.x中的系统语言自动加载语言文件,您需要使用以下代码。

$this->loadLanguage('', JPATH_BASE);

此外,您需要有一个基于插件名称的语言文件,如下所示。

<Language>.plg_<Plugin Type>_<Plugin name>.ini

因此,假设您的插件名称为coolblue,而您正在编写英语(en-GB)语言,此插件的类型为authentication。所以你的文件名是......

en-GB.plg_authentication_coolblue.ini

您可以在那里存储语言字符串。 Joomla!将为您加载语言文件,无需谨慎指定任何语言或文件。