2012-03-08 25 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 
相關問題