foreign-language.php
Im Template und dessen Konfiguration werden Worte ausgegeben, die nicht in der Sprachdatei des CMSimple_XH enthalten sind und daher nicht aus dem Text-Array des CMS entnommen werden können.
Damit diese Worte dennoch bei mehrsprachigen Websites in den jeweiligen Sprachen ausgegeben werden können, ist im Template eine eigene Funktion eingebaut, welche die Texte aus einer Sprachdatei einliest.
Die Sprachdateien liegen im Ordner /templates/krl-3col-flex/languages/. Wird eine Sprache aktiviert, für die noch keine Sprachdatei vorhanden ist, wird die Datei für die englische Sprache (ersatzweise die deutsche Sprache) kopiert und mit dem neuen Länderkürzel als Namen gespeichert. Der User kann diese Datei dann selbst in die Zielsprache übersetzen.
Da diese Funktion nur sehr selten benötigt wird, habe ich sie aus der template.htm ausgelagert und als eigene Datei gespeichert.
Dateiname: templates/krl-3col-flex/foreign-language.php
<?php
/*
* @category Template for CMSimple_XH Version 1.7+
* @package krl-3col-flex
* @version 3.2
* @file foreign-language.php
* @last_modified 17.12.2021
* @author Karl Richard Lembach | https://lembach-cmsimple.de/?Home
* @copyright 2021 - 2024 Karl Richard Lembach <https://lembach-cmsimple.de>
* @license https://www.gnu.org/licenses/gpl-3.0 GNU GPLv3
* @link https://template.lembach-cmsimple.de/?Template-krl-3col-flex
* @contact https://lembach-cmsimple.de/?Home/Kontakt-Formular | webmaster@lembach-cmsimple.de
Dieses Programm ist freie Software.
Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht,
weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE,
sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe <https://www.gnu.org/licenses/gpl-3.0>.
Deutsche Übersetzung (kein rechtskräftiger Ersatz des Originals): http://www.gnu.de/documents/gpl.de.html
***
Falls für die aktive Landessprache keine Sprachdatei existiert
wird für diese Sprache eine neue Datei mit dem Inhalt der englischen
Sprachdatei erstellt. Gibt es keine englische Sprachdatei, wird die
deutsche Sprachdatei als Quelle verwendet.
Für die aktuelle Sprache eine Kopie der Quell-Sprachdatei erzeugen:
1. das Sprach-Array der englischen Sprache einlesen,
wenn diese nicht existiert, dann die deutsche Sprache einlesen.
2. das Spracharry in die Datei der neuen Sprache schreiben
3. die neue Sprache einlesen
*/
if (is_readable($pth['folder']['template'].'languages/en.php')) {
$new_language = file($pth['folder']['template'].'languages/en.php');
} else {
if (is_readable($pth['folder']['template'].'languages/de.php')) {
$new_language = file($pth['folder']['template'].'languages/de.php');
} else {
echo '<p style="color: black; background-color: white; border: 2px solid red; padding:1ex;">Das Template "krl-3col-flex" kann die Sprachen-Datei languages/de.php nicht finden.</p>'."\n";
}
}
file_put_contents($pth['folder']['template'].'languages/'.$sl.'.php', $new_language);
include $pth['folder']['template'].'languages/'.$sl.'.php';
?>