2012-03-08 51 views

回答

0

的JText类有一个静态方法“_”,其将传递到它到另一个字符串中的字符串参数,使用语言文件和设置适当的上下文。如果你想看到的是正在传递什么setMessage你可以只尝试:

echo 'DEBUG setMessage argument: "'.JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS').'"'; 

如果你发现这表明_正在恢复什么的话,那很可能是一种迹象表明,没有对“COM_USERS_REGISTRATION_ACTIVATE_SUCCESS条目'正在使用的语言文件中。

编辑:

如果需要追加$email则只是这样做:

$this->setMessage(JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS').$email); 
+0

没有我需要追加$电子邮件还用它,让出放必须是JText +中存储的电子邮件的价值$ email – 2012-03-08 10:06:10

+0

thnks纠正它是 – 2012-03-08 10:15:22

0

COM_USERS_REGISTRATION_ACTIVATE_SUCCESS正在由消息的语言定义替换。如果你打破了这一点,Joomla不会承认它。

您可以将变量追加到消息,如果你想:

$this->setMessage(JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS') . $email); 

甚至忽略JText如果你需要

$this->setMessage('some message, email: ' . $email); 
6

如果你想在字符串中使用变量或几个变量,这里有一个例子:

$this->setMessage(JText::sprintf('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS', $name, $email); 

而在语言文件中:

COM_USERS_REGISTRATION_ACTIVATE_SUCCESS="Hello %s, your email is: %s" 

所以最终输出的外观($ name和$电子邮件将通过给定的变量值替换):

Hello $name, your email is: $email 
相关问题