node.tpl.php & deutsche Sonderzeichen
am 03.08.2010 - 23:38 Uhr in
Hallo!
Ich arbeite gerade an der Anpassung eines Themes und habe Probleme mit deutschen Sonderzeichen.
Konkret möchte ich in die node.tpl.php folgenden Text hinzufügen „Bitte wählen Sie“.
Diesen Text habe ich normal und als PHP-Ausgabe in die node.tpl.php eingefügt (2x um zu testen, ob eines davon geht):
Bitte wählen Sie
<?php print "Bitte wählen Sie" ?>
Ausgegeben wird er beides mal als:
Bitte w�hlen Sie
(ein Kästchen mit kleinen Buchstaben drinnen).
Zusätzliche Infos:
- Seitenkodierung: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- Die Ausgabe von Sonderzeichen, die über das Drupal-System eingegeben wurden (node/add) funktionieren korrekt.
- Wenn ich auf meinem Webspace manuell eine Datei erstellen und
Bitte wählen Sie
<?php print "Bitte wählen Sie" ?>
eingebe, wird das ebenfalls korrekt gezeigt.
Das Problem existiert also nur bei einer Eingabe in node.tpl.php / page.tpl.php
Hat jemand eine Idee wo hier das Problem liegt?
- Anmelden oder Registrieren um Kommentare zu schreiben
UTF8
am 04.08.2010 - 07:15 Uhr
Hallo,
welchen Editor benutzt Du denn für die .tpl-Dateien ? Du mußt dabei explizit darauf achten, daß die Dateien auch wirklich als UTF-8 gespeichert werden. Wenn Du zum Beispiel Notepadd++ verwendest, kannst Du im Menü "Format" auf "UTF-8 ohne BOM" umstellen oder auch anders formatierte Dateien zu UTF umwandeln. Danach dann nochmal schauen, ob die Umlaute in der Datei auch erhalten bleiben und nicht vielleicht Fehler bei der Umwandlung aufgetreten sind. Wenn dann die Dateien auf den Webspace kopiert werden, sollte Drupal auch die Umlaute korrekt darstellen.
Alternativ kannst Du die Umlaute natürlich auch einfach mit den entsprechenden HTML-Umschreibungen darstellen, also z.B.
"Bitte wählen Sie"
.Gruß,
Sven
Texte
am 04.08.2010 - 08:49 Uhr
Hallo.
Nur nochmal kurz als Ergänzung zu der bisherigen Anwort ... Texte werden für gewöhnlich in Drupal nicht einfach so ausgegeben, sondern mit Hilfe der [api:t] Funktion.
Das heisst in Deinem Fall:
<?php
print t('Please choose');
?>
Diesen Text kannst Du dann über die Oberfläche (admin/build/translate oder so ähnlich) übersetzen. Damit bist Du dann auf jeden Fall auf der sicheren Seite.
hth,
Stefan
Bin der Ursache gerade auf
am 04.08.2010 - 13:17 Uhr
Bin der Ursache gerade auf die Spur gekommen:
Ich habe die Dateien online mit einem Online-File-Manager (basierend auf Java) bearbeitet / neu angelegt. Und dieser File Manager hat die Dateien dann scheinbar falsch codiert.
Wenn ich die Dateien lokal mit einem Editor bearbeite, als UTF-8 speichere und per FTP hochlade funktioniert es.
Werde es aber auch mal mit der t () Funktion probieren.
Also danke!