Ich möchte Übersetzungen aus einer json-Datei laden, und diese Übersetzungen dann mittels eines Hook-Scripts in ein ein Frontend-Template einfügen.
Die json-Datei:
Code:
[
{"de":"hallo","es":"ola","en":"hello"},
{"de":"du","es":"tu","en":"you"}
]
Das FE-Template:
HTML-Code:
<h1>{xxx}, {xxx}!</h1>
Das Hook-Script:
Code:
public function myOutputFrontendTemplate($strContent, $strTemplate)
{
// Get the contents of the JSON file
$strJsonFileContents = file_get_contents("files/test/text.json");
$my_array = json_decode($strJsonFileContents, true);
$ln = $GLOBALS['TL_LANGUAGE'];
$placeholder = '{xxx}';
foreach($my_array as $value){
$string = preg_replace($placeholder, $value[$ln], $strContent,-1);
}
return $string;
}
... obiger Code liefert mir folgendenes Resultat im Frontend:
... gewünschtes Ergebnis wäre aber:
... was mache ich da falsch?
Der Grund für das ganze:
Eine Contao-Seite soll in 14 Sprachen übersetzt werden.
Die Übersetzungen werden sich gestalterisch und inhaltlich nicht unterscheiden.
Das Layout der einzelnen Seiten liegt als statischer HTML-Code vor.
Mein Plan wäre es nun den statischen HTML-Code mittels FE-Templates auszugeben.
(Also zb. 'fe_page_startseite.html5', 'fe_page_kontaktseite.html5', etc.)
In diesen FE-Templates werde alle zu übersetzenden Passagen mit "{xxx}" ersetzen.
Bei der Ausgabe soll dann obiges Hook-Script verwendet werden.
Für jede Seite gibt es dann eine eigene json-Datei.
(text-startseite.json, text-kontaktseite.json, etc.)
Das erspart das zeitintensive "nachbauen" der Seite mit Contao-Inhaltselementen.
... und trotzdem kann sie per Contao übersetzt werden.
Findet ihr das ist eine empfehlenswerte Vorgangsweise?
Denkt ihr es wird durch das Laden der json und dem PHP-replace ein Performance-Problem geben?
Bitte um eure Meinung bzw. Hilfe.
Vielen Dank!
lg
Lesezeichen