Как использовать файл языкового интерфейса из пользовательского компонента во внешнем интерфейсе

скучно, что необходимо создать много кода в компоненте Joomla для бэкэнд, а также в интерфейсе. Поэтому я хотел бы использовать файл языка администратора моего настраиваемого компонента для моего интерфейса. Я нашел этот полезный код:

$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, 'en-GB', true);

Но где я должен включить этот фрагмент кода? Я пробовал это в файле index.html моего шаблона frontend. Но это не сработает!

Я также пробовал в начале шаблонов index.html:

$language = JFactory::getLanguage();
$extension = 'com_yourcomponentname';
$base_dir = JPATH_ADMINISTRATOR . DS . 'components' . DS . $extension;
$language_tag = $language->getTag(); // loads the current language-tag

$language->load($extension, $base_dir, $language_tag, true);
$paths = $language->getLanguagePath();

$ paths показывает мне массив со всеми загруженными компонентами, включая мой пользовательский компонент. Последняя запись массива моего настраиваемого компонента относится к моему языку управления моим компонентом.

D:\htdocs\test\language\en-GB\en-GB.com_yourcomponentname
D:\htdocs\test\language\de-DE\de-DE.com_yourcomponentname
D:\htdocs\test\components\com_yourcomponentname\language\en-EN\en-EN.com_yourcomponentname
D:\htdocs\test\components\com_yourcomponentname\language\de-DE\de-DE.com_yourcomponentname
D:\htdocs\test\administrator\components\com_yourcomponentname\language\en-EN\en-EN.com_yourcomponentname
D:\htdocs\test\administrator\components\com_yourcomponentname\language\de-DE\de-DE.com_yourcomponentname

Но перевод переменных по-прежнему не производится. Перевод в бэкэнд отлично работает с тем же файлом.

2 голоса | спросил Perino 11 Jpm1000000pmMon, 11 Jan 2016 19:10:52 +030016 2016, 19:10:52

1 ответ


1

Настройка инструкций в точке входа вашего сайта yourcomponent.php сделает!

Поместите эти команды в файл yourcomponent.php:

$language = JFactory::getLanguage();
$extension = 'com_yourcomponentname';
$base_dir = JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . $extension;
$language_tag = $language->getTag(); // loads the current language-tag
$language->load($extension, $base_dir, $language_tag, true);

Если вы хотите загрузить из administrator/languages, используйте этот код:

$language = JFactory::getLanguage();
$extension = 'com_yourcomponentname';
$language_tag = $language->getTag(); // loads the current language-tag
$base_dir = JPATH_ADMINISTRATOR;
$language->load($extension, $base_dir, $language_tag, true);
ответил Perino 16 Jam1000000amSat, 16 Jan 2016 11:31:26 +030016 2016, 11:31:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132