chris_blues: Sonderzeichen-Umwandlung ohne html-tags zu verändern?

Beitrag lesen

Erstmal Danke fürs beruhigen :)

Was ist denn das eigentliche Ziel? Die Anwender sollen dir beim Übersetzen von Texten helfen und am Ende soll PHP-Code herauskommen, der ein Array mit den Übersetzungen erstellt? Die Idee mit dem Array ist nicht verkehrt, alles andere wird weniger performant werden. Was macht darin das HTML? Dinge hervorheben à la <b>fett</b>? Dann kannst du nur entweder eine Pseudosyntax (BBCode oder anderes) verwenden, die in korrektes HTML übersetzt wird, ansonsten aber unschädlich ist. Oder du nimmst alle Texte per Hand entgegen und kontrollierst sie, bevor du die fertige Datei einbindest. Dabei musst du zumindest auch alle < und & im Text beachten und HTML-gerecht notieren.

Genau, Anwender sollen sozusagen mithelfen, die ganze Anwendung zu übersetzen (es handelt sich um einen selbstgestrickten Webshop). Dazu habe ich alle Textbausteine in eine sprache.php ausgelagert, in der nur das Array steht, angeführt von <?php und abschließend ?>. Dazwischen ist eine inzwischen ganz schön lange Liste von $loc_lang["name_des_bausteins"] = "irgendein text";. Das ist alles was da drin steht. Nachdem alles übersetzt ist wirds in eine neu Datei 'neue_sprache.php' geschrieben. Wenn ich das dann von Hand in einem $conf["lang"]["n"] = "neuesprache"; eintrage, steht es auch tatsächlich zur Auswahl.

htmlspecialchars() reicht, htmlentities() verunstaltet unnötigerweise Umlaute und andere Zeichen. Nachdem <, >, & und " als &lt;, &gt;, &amp; und &quot; beim Browser ankommen, wirken diese Zeichen literal und haben keine auführende Wirkung mehr. Das heißt, der Anwender sieht das als den Text, als der er eingegeben wurden.

Gut! Das beruhigt! Aber, besonders bei fremden Sprachen brauch ich doch eine gute Sonderzeichen-Kodierung oder? Wenn ich da an russisch denke, oder französisch...