Blog

Code Snippet: Französische Satzzeichen-Regeln

(2020)

Inhalt

Einführung

Im Französischen gibt es, vermutlich abweichend vom ganzen Rest der Welt, interessante Regeln bei Satzzeichen: Vor Doppelpunkt, Strichpunkt, Fragezeichen und Ausrufezeichen (:;?!) steht immer ein Leerzeichen.
Franzosen kennen diese Regeln natürlich und schreiben brav das Leerzeichen vor diese Satzzeichen. So weit, so gut.

Lustig wird es dann im Browser auf dem Smartphone: Der Browser bricht bei Bedarf um und orientiert sich dabei unter anderem an Leerzeichen. Mit ein bisschen Pech zieht dann das Satzzeichen alleine in die nächste Zeile um.

Lösung

Mit meinem Code Snippet versuche ich, eine möglichst einfache Lösung zu schaffen:
Wenn die Seite im Browser geladen ist, durchsuche ich den gesamten Text nach Leerzeichen mit nachfolgendem Satzzeichen (:;?!) und ersetze das Leerzeichen durch ein geschütztes Leerzeichen. Der Browser trennt dann hier nicht mehr.

Standard
Korrigiert

Ich bedanke mich ganz herzlich bei Isabelle de Maublanc für die konzeptionelle Unterstützung und die zahlreichen Tests.

Download

Das Code Snippet steht hier zum Download zur Verfügung:

french-punctuation.code-snippets.json
Version 1.0.0, 2020-12-29

Zur Installation und Nutzung dieser JSON Datei wird das Plugin Code Snippets benötigt.
Dort kann diese JSON Datei mit der Funktion "Import" hochgeladen und anschließend aktiviert werden.

Alternativ: Am Ende dieser Seite kann der vollständige Source Code des Snippets eingesehen und kopiert werden.

Im Change Log sind neue Funktionalitäten und Fehlerbehebungen dokumentiert.

Disclaimer

Das Code Snippet habe ich nach bestem Wissen und Gewissen unter WordPress 5.6 entwickelt und getestet.
Ich stelle das Code Snippet zur freien Verwendung zur Verfügung.
Eine Garantie für die Funktionalität in allen denkbaren WordPress Umgebungen kann ich nicht geben. 
Download und Nutzung dieses Code Snippets erfolgen auf eigene Gefahr und Verantwortung.

Change Log

  • Version 1.0.0 (2020-12-29)
    • Erstveröffentlichung

Source Code

<?php
add_action('wp_footer',function(){
	?>
<script id="maltmann-french-punctuation-script">
(function($){
	$('body :not(script,style)').contents().filter(function() {
		return this.nodeType === 3; // text nodes
	}).replaceWith(function() {
		return this.nodeValue.replace(/ +([\:\;\!\?])/g, ' $1');
	});
})(jQuery);
</script>

<?php
});

magnifier