Archiv:

Latest photoblog

photoblog

Blog » Fight Typofehler!

Fight Typofehler!

Ich glaube im Netz gibt es mehr Texte in denen die Typografie, speziell die Nutzung von Sonderzeichen, falsch gemacht wird, als Texte in denen sie richtig gemacht wird. Ich finds schade, und in gewisser Weise auch irgendwie ekelig ;). Um dem ein wenig entgegen zu wirken habe ich mir eine kleine (sehr primitive, aber funktionierende) Funktion in mein kleines, im Bau befindlichen CMS eingebaut.

Angeregt durch ein Thema im Webkrautsforumboard, möchte ich dieses hier nun einfach mal zur Verfügung stellen, um den 10 häufigsten Publishing-Satzfehlern (und mehr …) immerhin ein kleines bisschen entgegen zu wirken.

function corr_q($text, $mode='deutsch') {
  switch($mode) {
  case 'deutsch':
    $text = str_replace(' "',' „',$text);
    $text = str_replace('" ','“ ',$text);
    break;
  case 'de_guillemets':
    $text = str_replace(' "',' »',$text);
    $text = str_replace('" ','« ',$text);
    break;
  case 'fr_guillemets':
    $text = str_replace(' "',' « ',$text);
    $text = str_replace('" ',' » ',$text);
    break;
  case 'englisch':
    $text = str_replace('" ','” ',$text);
    $text = str_replace(' "',' “',$text);
    break;
  }
    $text = str_replace('.....','…',$text);
    $text = str_replace('....','…',$text);
    $text = str_replace('...','…',$text);
    $text = str_replace("'",'’',$text);
    $text = str_replace(' & ',' & ',$text);
    $text = str_replace("--",'–',$text);
    $text = str_replace("---",'—',$text);
  return $text;
}

Der Funktionsaufruf lautet ganz einfach
<? echo corr_q($text); ?>
oder optional mit den Sprachparametern
<? echo corr_q($text,'englisch'); ?>

Ich habe mich dabei auf die (wie ich denke) vier gängigsten Varianten, nämlich den französischen Guillemets (fr_guillemets), den deutschen Guillemets (de_guillemets), den englischen 66/99 (englisch), und den normalen deutschen beschränkt.

Zusätzlich werden unabhängig von der gewählten Sprache werden Hochkommas (SHIFT+#) in korrekte Apostrophen ( ’ ), Punktpunktpunkte in korrekte Fortführungszeichen (…), 2 bzw 3 Bindestriche in Folge in n- bzw m-dashs, also Halbgeviert und Geviertstrich, und Kaufmanns-Unds in korrekt maskierte Ampersands (&) umgewandelt.

Wer möchte kann sich die Funktion natürlich so umschreiben, das mittels preg_match und lang-Attribut jeweils die richtigen Anführungszeichen gesetzt werden, war in meinem Fall jedoch nicht nötig.

5 Kommentare zu “Fight Typofehler!”

  1. Grafik: GravatarArne:

    Cool! Danke, das ist mal wirklich nützlich! Das kann ich auch sehr gut gebrauchen. Mich ärgert es vor allem in Foren und so. Das werde ich gleich mal in mein selbst geschriebenes Forum integrieren :).

  2. Grafik: GravatarSilentWarrior:

    $text = str_replace('.....','…',$text);
    $text = str_replace('....','…',$text);
    $text = str_replace('...','…',$text);

    Ginge das nicht einfacher hiermit? $text = preg_replace('/([\.]{2,})/', '…', $text);

  3. Grafik: GravatarManuel:

    klar. ginge auch.
    war aber zu faul mir die korrekte expression zu überlegen ;)

    ausserdem is str_replace eh schneller ;)

    aber wie gesagt, mit preg_replace kann man noch ganz andere sachen machen. Vielleicht bau ich das die Tage mal.

  4. Grafik: GravatarHorst Scheuer:

    Interessante Funktion. Ich hatte mir bisher noch gar keine Gedanken über dieses Problem gemacht.

  5. Grafik: GravatarCyberoog, die Insel im Web (Blog):

    Fight Typofehler!

    So ab und an kommt auch mal wieder was zur Typographie in dieses Blog und meistens ist Manuel Bieh der Grund dafür.
    Wie auch jetzt, herzlichen Dank dafür, eine wertvolle Hilfe!
    Angeregt durch ein Thema im Webkrautsforumboard, möchte ich dieses hie…

Die Trackback-URL lautet