WordPress: Umlaute in Dateinamen automatisch ersetzen

von Sebastian Klammer am Februar 10, 2017

Umlaute in WordPress automatisch ersetzen

Welcher Web-Entwickler kennt das nicht: man baut seinem Kunden (oder seiner Kundin) eine einfach bedienbare Website, bei der so gut wie nichts mehr schief gehen kann und erhält dennoch irgendwann einen hektischen Anruf, dass Links zu hochgeladenen Dateien nicht mehr funktionieren – und ob das gewählte CMS denn wirklich die richtige Wahl gewesen sei. Bei den anschließenden Nachforschungen stellt sich dann nicht selten heraus, dass die Links deshalb nicht funktionieren, weil die hochgeladenen Dateien Umlaute und Sonderzeichen enthalten, mit denen der Webserver nicht zurande kommt. Das Ergebnis ist, dass das Content Management System die Datei „nicht finden“ kann, obwohl sie physisch auf dem Server vorhanden ist.

Nicht alle Dateinamen funktionieren überall gleich gut

Der technische Hintergrund der Probleme, die sich aus Umlauten und Sonderzeichen in Dateinamen ergeben, ist schon beinahe historischer Natur – und erfordert einen kleinen Exkurs in die graue Vorzeit der Bits und Bytes. Aus denen nämlich bestehen alle Zeichen, mit denen ein Computer arbeiten kann. Alle Buchstaben, Zahlen und Satzzeichen bestehen aus einer Reihe von Bits. Jeder Buchstabe und jedes Zeichen besitzt eine andere Bitfolge – klassischer Weise sind es acht. Diese acht Bits definieren, um welches Zeichen es gerade geht. Welche Bitreihenfolge welches Zeichen darstellt, wird in so genannten Code Tabellen definiert.

Die ersten Heimcomputer – und mit ihnen auch die ersten Heimcomputer-Betriebssysteme – wurden ausschließlich in englischer Sprache ausgeliefert. Und mit sehr, sehr wenig Arbeitsspeicher. Diese beiden Umstände hatten zur Folge, dass man sich bei der Entwicklung der ersten Code Tabellen auf die wichtigsten Zeichen fokussierte. Das waren alle Zeichen, die im englischen Alphabet vorkamen, nebst Ziffern, Sonder- und Steuerzeichen. Umlaute und nicht-lateinische Zeichen (z.B. chinesische oder kyrillische Buchstaben) kamen nicht vor und konnten daher vom Computer auch nicht verarbeitet werden. Das hatte den Vorteil, dass die Code Tabellen im Arbeitsspeicher nur sehr wenig Platz und bei der Verarbeitung durch den Prozessor nur sehr wenig Bandbreite (eben 8 Bit) erforderten.

Als die Computer und die Betriebssysteme leistungsfähiger wurden und in mehr und mehr heimischen Wohnzimmern Einzug hielten, erweiterten sich auch ihre Fähigkeiten. Betriebssysteme wurden mehrsprachig, was es notwendig machte, mehr Zeichen darstellen zu können – zum Beispiel auch Umlaute wie ä, ö, ü oder ß. Diese Zeichen waren allerdings nicht in der Standard Codetabelle definiert, sondern in jeweils eigenen Tabellen – etwa in Sonder-Codetabellen für bestimmte Sprachen. Das Problem mit diesen Code-Tabellen war, dass viele Hersteller ihre eigenen entwickelten. So gab es Code-Tabellen speziell für Windows, Linux oder Macintosh. Und wie üblich waren diese nicht miteinander kompatibel. Dateien, die auf einem Computer mit einer bestimmten Codierung geschrieben wurden, konnten von einem Computer mit einer anderen Codierungseinstellung oft nicht gelesen werden. Umlaute und Sonderzeichen wurden zu Hieroglyphen, die der Computer nicht verstand.

Das änderte sich erst, als 1992 der UTF-8-Standard entwickelt wurde. UTF-8 ist eine universelle Code-Tabelle, die von allen Systemen gleichermaßen verstanden wird – und die auch alle wichtigen Umlaute und Sonderzeichen enthält. Mit UTF-8 codierte Dateien (und Dateinamen) können von jedem Betriebssystem gleichermaßen gelesen werden. Allerdings wird nicht auf allen Systemen UTF-8 verwendet – die Probleme mit nicht lesbaren Dateinamen besteht also weiter. Was kann man tun?

Option 1: Kundenschulung in korrekter Syntax

Ob es sich um Dateinamen, Dateiformate oder Dateigrößen handelt: eine kleine Schulung der eigenen Kunden im Umgang mit dem neuen CMS dürfte sich in jedem Fall als nützlich erweisen. Immerhin werden auch heute gerne Bilddateien in Postergröße und mit einem Umfang von mehreren Megabyte auf Webserver geladen. Oder Dateien in Formaten, die in HTML einfach nicht darstellbar sind und unweigerlich zu Fehlermeldungen führen. Allerdings sollte man dabei im Hinterkopf behalten, dass wir Menschen Gewohnheitstiere sind und es nicht ausgeschlossen werden kann, dass nicht doch der eine oder andere Umlaut seinen Weg in den Namen einer Datei findet, die als Download auf einer Website eingebunden werden soll. Zum Glück gibt es für solche Fälle …

Option 2: Umlaute in Dateinamen automatisch konvertieren

Frank Bültge hat für WordPress ein überaus nützliches Script geschrieben, dass Dateinamen beim Upload in WordPress automatisch optimiert. So nimmt WordPress schwierige Dateinamen in Zukunft weniger übel – und es gibt weniger hektische Anrufe vom Kunden. Dabei ersetzt das Script nicht nur Umlaute wie ü, ö oder ä in „ue“, „oe“ oder „ae“, sondern füllt auch problematische Freizeichen mit Bindestrichen aus. So wird aus der Datei „Freches Früchtchen.JPG“ ganz automatisch die Webserver-freundliche Version „freches-fruechtchen.jpg“. Problem gelöst.

Die Awendung des Scriptes ist denkbar einfach. Man kann es wahlweise als Drop-In oder als Plug-In verwenden.

Verwendung als Drop-In

Bei dieser Variante wird die Script-Datei „de_DE.php“ einfach in den Sprachenordner von WordPress gelegt. Standardmäßig ist das der Ordner wp-content/languages. Das Script ist in diesem Falle sofort aktiviert, sobald der Sprachschlüssel (Konstante: WPLANG) in der wp-config.php auf de_DE gesetzt ist oder (seit WordPress Version 4.0) die Sprache „Deutsch“ in den WordPress-Einstellungen gesetzt wurde.

Verwendung als Plugin

Wer das Script lieber als Plugin einsetzen möchte, muss nichts weiter tun als die Datei „de_DE.php“ in den Plugin-Ordner der WordPress-Installation zu legen. Das ist üblicher Weise der Ordner wp-content/plugins. Nun kann es im WordPress-Administrationbereich unter „PLUGINS“ aktiviert werden.

Das macht de_DE.php

Das Sprachenscript ersetzt automatisch Umlaute und Sonderzeichen in Dateinamen, um saubere Permalinks zu erzeugen.

Beispiel: Ein Titel wie „Das häßliche Entlein kostet 1 €“ wird im Permalink zu „das-haessliches-entlein-kostet-1-eur“.
Der Dateiname „Häßliches Entlein.png“ wird automatisch zu „haessliches-entlein.png“. Darüber hinaus setzt das Script die Rechtschreibkorrektur des visuellen Editors auf Deutsch und den Sprachwert des Feeds auf „de“.

Wichtiger Hinweis zu Germanix

Wenn das Plugin Germanix in WordPress aktiviert wurde, funktioniert dieses Sprachscript nicht.

Entwickelt wurde dieses Script von Frank Bültge, auf dessen GitHub ihr es kostenlos herunterladen könnt. Als Fallback-Lösung (man weiß ja nie) gibt es das Script in der Version 0.7.10 vom 2016-11-24 auch hier zum Herunterladen. Bitte beachtet: Das Script ist © 2009-2016 Frank Bültge (frank@bueltge.de) und wird mit einer MIT License zur Verfügung gestellt.

WordPress Umlaut-Script herunterladen …

Gefällt dir dieser Post? Sag es weiter!
Share on FacebookTweet about this on TwitterShare on Google+Pin on PinterestShare on LinkedInBuffer this pageShare on RedditShare on StumbleUponEmail this to someone

5 Kommentare

Bei mir macht er aus:
ä – a?
ö – o?
ü – ü?

Eine Idee, woran das liegen kann?

### WordPress Environment ###
WP Version: 4.7.3
WP Multisite: –
WP Memory Limit: 256 MB
WP Debug Mode: –
Language: de_DE

### Server Environment ###
Server Info: Apache
PHP Version: 7.0.15
PHP Post Max Size: 50 MB
PHP Time Limit: 300
PHP Max Input Vars: 1620
SUHOSIN Installed: –
ZipArchive: ✔
MySQL Version: 5.6.35
Max Upload Size: 50 MB
DOMDocument: ✔
WP Remote Get: ✔
WP Remote Post: ✔
GD Library: bundled (2.1.0 compatible)

### Active Plugins (15) ###
Advanced Custom Fields: von Elliot Condon
Autoptimize: von Frank Goossens (futtta)
Broken Link Checker: von Janis Elsts, Vladimir Prelovac
Contact Form 7: von Takayuki Miyoshi
Credit Tracker: von Labs64
de_DE: von Frank Bültge, Heiko Rabe
Download Monitor: von Never5
Duplicate Post: von Enrico Battocchi
Fusion Builder: von ThemeFusion
Fusion Core: von ThemeFusion
Redirector: von Ralf Hortt
Slider Revolution: von ThemePunch
Yoast SEO: von Team Yoast
WP-Mail-SMTP: von Callum Macdonald
WP Media folder: von Joomunited

by Christian on 9. März 2017 at 09:09. Antworten #

Hmm, ich hab’s auch gerade noch mal probiert – im Dateinamen wird ä in ae, ö in oe und ü in ue geändert. Unabhängig von der eingestellten Sprache. Zumindest bei Bilddateien. Was für eine Datei wolltest Du denn hochladen?

by Sebastian Klammer on 10. März 2017 at 08:24. Antworten #

Bin gerade mit Frank Bültge dran den Fehler einzugrenzen. Problem tritt nur bei der Nutzung des Mac auf. Arbeite ich mit Windows, geht es problemlos auf dem selben Server.

by Christian on 10. März 2017 at 13:02. Antworten #

Hey Christian, habt ihr das Problem schon gelöst? ich habe das Plugin auch soeben hochgeladen und bei mir passieren die gleichen Fehler. Sitze auch am MAC. Wäre super, wenn du kurz Bescheid gibst, ob ihr dafür schon eine Lösung gefunden habt. Danke!

by fastnormal on 2. Juni 2017 at 19:11. Antworten #

Hey Sebastian,
kannst Du bitte kurz Feedback geben, wie ihr das Problem gelöst habt?
Vielen Dank, C.

by fastnormal on 9. Juni 2017 at 09:33. #

Sag etwas zu diesem Beitrag.

Pflichtfeld.

Required. Wird nicht gezeigt.

Wenn vorhanden.