Sprachplatzhalter und Joomla.JText._ in JavaScript
Ähnlich der PHP-Methode
echo JText::_('TPL_BEEZ3_ALTCLOSE');
kann man In Joomla-Javascript mit JText
und Sprachplatzhaltern aus *.ini-Dateien arbeiten. Am Beispiel eines alert
s:
alert(Joomla.JText._('TPL_BEEZ3_ALTCLOSE'));
Grundbedingung ist das Laden der
/media/system/js/core.js
in Joomla:
JHtml::_('behavior.core');
DAS LADEN DER core.js ERLEDIGT JOOMLA IN NEUEREN VERSIONEN OHNE ZUTUN, WENN MAN FOLGENDE script()-Methode verwendet.
Nun muss man die Sprachplatzhalter in's JavaScript laden. man verwendet in PHP-Umgebung die Joomla-Methode
JText::script('TPL_BEEZ3_ALTOPEN');
JText::script('TPL_BEEZ3_TEXTRIGHTOPEN');
Siehe bspw. im Beez3-Template Zeile
require __DIR__ . '/jsstrings.php';
und den Inhalt der Datei (Zeilen 13-25):
Im Quelltext der HTML-Seite findet man dadurch automatisch Folgendes, also Sprachplatzhalter versus Übersetzung wie in den INI-Sprachdateien gefunden, die nun via Joomla.JText._('TPL_BEEZ3_ALTCLOSE')
in JavaScript verwendet werden können
FOLGENDER AUTOMATISCH GENERIERTER JAVASCRIPT-CODE HAT SICH IN NEUEREN JOOMLA-VERSIONEN GEÄNDERT! TROTZDEM FINDET MAN IM SEITEN-QUELLTEXT DIE SPRACHPLATZHALTER FÜR JAVASCRIPT.
(function() {
var strings = {"TPL_BEEZ3_ALTCLOSE":"Mach dies","TPL_BEEZ3_TEXTRIGHTOPEN":"Mach das"};
if (typeof Joomla == 'undefined') {
Joomla = {};
Joomla.JText = strings;
}
else {
Joomla.JText.load(strings);
}
})();
Für Debugzwecke kann man in PHP-Umgebung das Array aller zuvor geladener, in Javascript verfügbaren Strings so erhalten:
$allAvailable = JText::getScriptStrings();
echo 'DEBUG ' . print_r($allAvailable,true); exit;
Folgender früher üblicher Aufruf dafür wird ab Joomla 4 nicht mehr funktionieren
$allAvailable = JText::script();