2013-12-12 81 views
2

我已經構建了一個發送電子郵件的簡單組件。在這個組件裏面,我有我的翻譯字符串存儲在ini中。下面是我做的一些示例代碼:joomla語言文件未加載其他語言

$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

您需要顯示代碼不工作。還要確保你已經啓動了調試模式,並且錯誤報告一直轉到開發。 – Craig

回答

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的官方網站下載多種語言的翻譯。

+0

你的建議與我剛剛使用'language'文件夾一樣。感謝您的迴應,但這並沒有幫助。 – Tom

+0

您應該使用標記而不是。確保當您將組件安裝到joomla時!安裝程序會將語言文件複製到正確的路徑中。 –

+0

我使用'語言'而不是文檔解釋是相同的。但無論如何,我嘗試了你的建議,但我仍然遇到同樣的問題。我有很多組件,除了這個,它們都翻譯得很好。我相信問題是我如何調用語言文件:'$ lang-> load('com_mycompnotify',JPATH_SITE,'pt-BR',true);'。這件事一定是錯的。 – Tom