it-swarm.com.de

Verwendung der Backend-Sprachdatei aus einer benutzerdefinierten Komponente im Frontend

es ist langweilig, dass in einer Joomla-Komponente viel Code für das Backend und auch das Frontend erstellt werden muss. Daher möchte ich die Administrator-Sprachdatei meiner benutzerdefinierten Komponente für mein Front-End verwenden. Ich habe diesen nützlichen Code gefunden:

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

Aber wo soll ich diesen Code einfügen? Ich habe es in der index.html-Datei meiner Frontend-Vorlage ausprobiert. Das geht aber nicht!

Ich habe es auch am Anfang der Vorlagen index.html versucht:

$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();

$ path zeigt mir ein Array mit allen geladenen Komponenten einschließlich meiner benutzerdefinierten Komponente. Der letzte Eintrag im Array meiner benutzerdefinierten Komponente bezieht sich korrekt auf meine Verwaltungssprachendatei meiner Komponente.

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

Die Übersetzung der Variablen wird aber noch nicht vorgenommen. Die Übersetzung im Backend funktioniert einwandfrei mit der gleichen Datei.

2
Perino

Das Setzen der Anweisungen im Einstiegspunkt der yourcomponent.php-Site reicht aus!

Fügen Sie diese Befehle in die yourcomponent.php ein:

$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);

Wenn Sie von administrator/languages Laden möchten, verwenden Sie diesen Code:

$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);
1
Perino