PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keine Umlaut nach Import von Sprachpaket deutsch


netspy
08.01.2005, 15:56
Nach dem Importieren des Sprachpakets werden leider keine Umlaute mehr richtig dargestellt. Alle Umlaute wurden offensichtlich als UTF-8 kodiert gespeichert - es steht bspw. Nützliche Links da.

Da die Sprachdatei ja korrekt ISO-8859-1 kodiert ist, nehme ich an, dass der Fehler im Import-Module liegt. Es wird wohl nicht berücksichtigt, dass neuere PHP-Versionen (bspw. PHP 5.0.3) XML-Daten intern jetzt immer UTF-8 kodiert behandeln - unabhängig von der ursprünglichen Kodierung der XML-Datei. Beim Auslesen der Daten muss jetzt also immer utf8_decode() angewandt werden.

Mal schauen, wie ich das jetzt wieder rückgängig machen. Der Import einer älteren Sprachdatei hilft leider nicht und ein altes PHP will ich auch nicht wieder aufspielen.

Mario

Mystics
08.01.2005, 16:08
Die Lösung findest du hier:

http://www.vbulletin-germany.com/forum/showpost.php?p=90581&postcount=6

netspy
08.01.2005, 16:09
Als Workaround für alle, denen das gleiche passiert ist, hier ein kleiner Patch zum richtigen Importieren des Sprachpakets. In der Datei includes/adminfunctions_language.php ab Zeile 329 folgendes ändern ($data wird mit utf8_decode() behandelt):

// ###################### Start xml_cdata_language #######################
function xml_parse_language_cdata($parser, $data)
{
global $arr, $phraseType, $phraseName, $insettings, $settingname, $langinfo;

if ($phraseName)
{
$arr["$phraseType"]["$phraseName"] .= utf8_decode($data);
}
else if ($insettings AND $settingname)
{
$langinfo["$settingname"] .= utf8_decode($data);
}
}
Dann das Sprachpaket dann einfach noch mal importieren.

Mario

netspy
08.01.2005, 16:11
Die Lösung findest du hier:

http://www.vbulletin-germany.com/forum/showpost.php?p=90581&postcount=6 Danke, der Patch ist natürlich noch besser :).

Mario