2013-12-12 4 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

Вам необходимо показать код в том виде, в котором он не работает. Также убедитесь, что у вас включен режим отладки, а отчет об ошибках превратился в dev. – Craig

ответ

0

для определения языковых файлов в компоненте файла XML, вы должны добавить Somthing так:

<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

Смежные вопросы