【发布时间】:2013-12-12 13:54:58
【问题描述】:
我已经构建了一个发送电子邮件的简单组件。在该组件内部,我的翻译字符串存储在 ini 中。这是我所做的一些示例代码:
$body = $this->getDetails["name"]." ".JText::_('COM_MYCOMPNOTIFY_MAIL_BODY1')."\n\n".
JText::_('COM_MYCOMPNOTIFY_MAIL_BODY2')." ".$this->getDetails["name"]."\n\n".
JText::_('COM_MYCOMPNOTIFY_MAIL_BODY3')." http://".$this->getDetails["domain"]."\n";
我的组件的这个目录结构有
language
en-GB
en-GB.com_mycompnotify.ini
pt-BR
pt-BR.com_mycompnotify.ini
我的安装 xml 文件有这个:
<files folder="site">
<filename>index.html</filename>
...
<folder>helpers</folder>
<folder>language</folder>
</files>
这适用于en-GB 语言。但我无法将其翻译为pt-BR。我认为问题在于我有一个调用我的组件的外部 php 文件。所以它不会知道加载 pt-BR 语言文件(我认为)。
所以我试图强制它加载:
$lang = JFactory::getLanguage();
$lang->load('com_mycompnotify', JPATH_BASE, 'pt-BR'); //also tried JPATH_SITE
但无论我尝试什么,我总是会英语。
【问题讨论】:
-
您需要在代码不起作用的地方显示代码。还要确保你已经打开了调试模式,并且错误报告一直向上到 dev。