#!/usr/bin/php 'Text' * ] */ function parseLangFile(string $filename): array { $lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $result = []; if (!empty($lines)) { $lines[0] = preg_replace('/^\xEF\xBB\xBF/u', '', $lines[0]); $lines[0] = preg_replace('/^\x{FEFF}/u', '', $lines[0]); } foreach ($lines as $line) { $line = trim($line); // Nur Zeilen im Format [key]Text if (preg_match('/^\[(.+?)\](.*)$/', $line, $matches)) { $key = trim($matches[1]); $value = trim($matches[2]); $result[$key] = $value; } } return $result; } $langA = parseLangFile($fileA); $langB = parseLangFile($fileB); $output = []; foreach ($langA as $key => $valueA) { // Übersetzung aus Datei B $valueB = $langB[$key] ?? ''; $output[] = "[{$key}_eng]$valueB"; // Original aus Datei A $output[] = "[$key]$valueA"; } $resultText = implode(PHP_EOL, $output) . PHP_EOL; // Ausgabe entweder in Datei oder auf Konsole if ($outputFile) { file_put_contents($outputFile, $resultText); echo "Fertig. Ausgabe geschrieben nach: $outputFile\n"; } else { echo $resultText; }