input_translation.php
Die Datei input_translation.php nimmt die Eingaben vom Übersetzungsformular entgegen und speichert sie in Variablen und schreibt sie in die textdateien im Ordner languages.
Dateiname: templates/krl-3col-flex/config/input_translation.php
<?php
/*
* @category Template for CMSimple_XH Version 1.7+
* @package krl-3col-flex
* @version 3.2
* @file input_translation.php | Post-Werte von den Eingaben übernehmen und in die Dateien schreiben
* @last_modified 24.02.2024
* @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
Übernimmt die Eingaben aus dem Translation-GUI und schreibt sie in die entsprechende Datei.
*/
// ----------------------------------------------------------------------------------------------------------------------------
// Auswertung wenn $aktionswahl = $text["translation"] ist
if($aktionswahl == $text["translation"])
{
// für Datei-Liste im Ordner /userfiles/images/flags
$verzeichnis_inhalt = array();
// Ziel-Array für die Texte in der fremden Sprache
$foreign_language = array();
// Ziel-Array für die Texte in deutsche Sprache
$de_language = array();
// Zwischenspeicher-Array zum aufbewahren der aktuellen Anzeigesprache
$language_backup = array();
// Array für die Schlüssel der Sprachdateien
$lang_keys = array();
// Array mit den Schlüsseln der Sprachdateie laden
$lang_keys = array_keys($text);
// Verzeichnis einlesen
$verzeichnis_inhalt = scandir($pth['folder']['flags']);
// Für jeden Schlüssel der Sprachdatei das Ziel-Array und das Sicherungs-Array mit dem Wert aus der aktuellen Anzeigesprache füllen
foreach ($lang_keys as $i) {
$language_backup[$i] = $text[$i];
}
// Wenn noch keine Datei der Zielsprache existiert, eine neue Datei erzeugen und mit den Werten der deutschen Sprache füllen
if (!is_readable($pth['folder']['template'] . 'languages/' . $zielsprache . '.php')) {
$foreign_language = file($pth['folder']['template'] . 'languages/de.php');
file_put_contents($pth['folder']['template'] . 'languages/' . $zielsprache . '.php', $foreign_language);
}
// Einlesen der deutschen Textte (als Ausgangsbasis der Übersezung)
include $pth['folder']['template'] . 'languages/de.php';
// Für jeden Schlüssel der deutschen Sprachdatei den Wert in das $de_language - Array einlesen
foreach ($lang_keys as $i) {
$de_language[$i] = $text[$i];
}
// Durch includieren der Zielsprachen-Datei deren Werte einlesen. Dadurch wird das Array für die aktuelle Anzeigesprache überschrieben.
include $pth['folder']['template'] . 'languages/' . $zielsprache . '.php';
// Für jeden Schlüssel den Wert der Zielsprachendatei (sind z.Zt. in $text[]) in das Array der Zielspache übernehmen
// und sofort das Array der aktuellen Anzeigesprache mit der Sicherung füllen.
foreach ($lang_keys as $i) {
$foreign_language[$i] = $text[$i];
$text[$i] = $language_backup[$i];
}
// Für jeden Schlüssel der Sprachdatei den Wert/String des Zielsprachen-Arrays abholen
foreach ($lang_keys as $i) {
// POST-Namen aus 'foreign_language_' und Schlüssel der Sprachdatei zusammensetzen
$foreign_language_key = 'foreign_language_'. $i;
// Wenn ein Wert für den POST gesetz ist, diesen Abholen
if(isset($_POST[$foreign_language_key])){
$foreign_language[$i] = DisarmSpecialCharacters($_POST[$foreign_language_key]);
}
}
// Überschreiben der vorhandenen Sprachdatei ($zielsprache) mit den aktualisierten Werten
$fp = fopen($pth['folder']['template'] . 'languages/' . $zielsprache . '.php', 'w');
fputs($fp, '<?php'."\n");
fputs($fp, "\n");
foreach ($lang_keys as $i) {
$line = '$text[\'' .$i. '\']=\'' . $foreign_language[$i] . '\';'."\n";
fputs($fp, $line);
}
fputs($fp, '?>' . "\n");
fclose($fp);
}
?>