我已经构建了一个发送电子邮件的简单组件。在该组件内部,我将翻译字符串存储在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
但无论我尝试什么,我总能得到英语。
答案 0 :(得分:0)
要在组件xml文件中指定语言文件,您应该添加如下内容:
<languages folder="admin">
<language tag="en-GB">language/en-GB/en-GB.com_NAME.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_NAME.sys.ini</language>
<language tag="pt-BR">language/pt-BR/pt-BR.com_NAME.ini</language>
<language tag="pt-BR">language/pt-BR/pt-BR.com_NAME.sys.ini</language>
</languages>
如果您只开发组件Not just for administrator
,则可以添加以下网站语言文件:
<languages folder="site">
<language tag="en-GB">language/en-GB/en-GB.com_NAME.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_NAME.sys.ini</language>
<language tag="pt-BR">language/pt-BR/pt-BR.com_NAME.ini</language>
<language tag="pt-BR">language/pt-BR/pt-BR.com_NAME.sys.ini</language>
</languages>
并且要让joomla使用非英语的语言文件,您应该将网站的语言更改为您的母语。您可以从joomla的官方网站下载多种语言的翻译。